[CCF] TR-to-Cabrillo QSO-datakonvertteri
Jari Perkiömäki
jpe@UWasa.Fi
Sun, 5 Jan 2003 11:21:13 +0200 (EET)
Terve,
alla GAWK (GNU Awk)-ohjelmalla toimiva QSO-datakonvertteri TR:n
NRAU-lokiformaatista ehdotettuun Cabrillo-QSO-dataformaattiin. Toimii myös
TR:llä lokattuihin Kalakukkoon ja Viitosten Syysotteluun.
GAWK löytyy ainakin Linuxista ja ehkä muistakin käyttöjärjestelmistä.
Käyttö on muotoa:
gawk -f nrau.awk mycall myprovince mylog
mycall = kilpailussa käytetty kutsu
myprovince = kilpailussa annettu maakuntalyhenne
mylog = TR-lokin nimi
eli esimerkiksi:
gawk -f nrau.awk oh6bg po log.dat
Esimerkki (HUOM! Ohjelma käsittelee todellakin vain QSO-DATAN!)
---------------------------------------------------------------
TR-LOKI
80CW 05-Jan-03 10:39 4 OH6QU 599 599 90 Po Po 2
80SSB 05-Jan-03 10:40 5 OH7C 59 59 100 Km Km 2
40SSB 05-Jan-03 10:40 6 OH7C 59 59 99 Km Km 2
40SSB 05-Jan-03 10:40 7 OH3O 59 59 999 Pm Pm 2
40CW 05-Jan-03 10:41 8 OH3Y 599 599 0 Rk Rk 2
40CW 05-Jan-03 10:41 9 OH6GDX 599 599 111 Po Po 2
40CW 05-Jan-03 10:41 10 OH6QU 599 599 888 Po 2
MUUNNOKSEN JÄLKEEN
QSO: 3500 CW 2003-01-05 1039 OH6BG 599 004 PO OH6QU 599 090 PO
QSO: 3500 PH 2003-01-05 1040 OH6BG 59 005 PO OH7C 59 100 KM
QSO: 7000 PH 2003-01-05 1040 OH6BG 59 006 PO OH7C 59 099 KM
QSO: 7000 PH 2003-01-05 1040 OH6BG 59 007 PO OH3O 59 999 PM
QSO: 7000 CW 2003-01-05 1041 OH6BG 599 008 PO OH3Y 599 000 RK
QSO: 7000 CW 2003-01-05 1041 OH6BG 599 009 PO OH6GDX 599 111 PO
QSO: 7000 CW 2003-01-05 1041 OH6BG 599 010 PO OH6QU 599 888 PO
Ja tässä ohjelma. Kuten kaikki nykypäivän ohjelmat, tämä ohjelma ei
varmasti ole virheetön (tämä ei ole myöskään kovin esteettinen :)).
Käyttö on käyttäjän vastuulla. Mikäli löydätte isomman tai pienemmän
virheen ohjelmasta, ottanette yhteyttä.
Nyt kun joku vielä koodaisi hienon www-käyttöliittymän tähän päälle :)
# nrau.awk
#
# Quick-n-dirty TR to NRAU Cabrillo QSO data converter
# Suitable also for Kalakukko and Viitosten Syysottelu
#
# NOTE! At the moment, NRAU does not accept Cabrillo! See their rules.
#
# by Jari Perkiömäki OH6BG, oh6bg@sral.fi, 5 January 2003
#
# Usage: gawk -f nrau.awk mycall myprovince mylog
# e.g. gawk -f nrau.awk oh6bg po log.dat
#
BEGIN {
# checking command line arguments
if (ARGC > 1) {
if (ARGC > 2) {
CALL = ARGV[1]
P = ARGV[2]
FILE = ARGV[3]
delete ARGV[1]
delete ARGV[2]
}
else {
print "Usage: gawk -f nrau.awk mycall myprovince mylog"
exit 1
}
}
}
{
# processing time from XX:YY to XXYY
gsub(/:/,"")
$3 = " " $3
# processing date: reorganising
d = substr($2,1,2)
m = substr($2,4,3)
y = substr($2,8)
if (m == "Jan") m = "01"
if (m == "Feb") m = "02"
if (m == "Mar") m = "03"
if (m == "Apr") m = "04"
if (m == "May") m = "05"
if (m == "Jun") m = "06"
if (m == "Jul") m = "07"
if (m == "Aug") m = "08"
if (m == "Sep") m = "09"
if (m == "Oct") m = "10"
if (m == "Nov") m = "11"
if (m == "Dec") m = "12"
$2 = " " "20" y "-" m "-" d
# processing right lengths for the callsigns
u = substr(" ",length($5))
m = substr(" ",length(CALL))
ucall = " " toupper($5) u " "
mycall = " " toupper(CALL) m " "
# translating bands to frequencies
band = substr($1,1,2)
mode = substr($1,3)
if (band == 80) { band = 3500 }
if (band == 40) { band = 7000 }
if (mode == "SSB") { mode = "PH"}
band = " " band
mode = " " mode
# processing RST
if (length($6) == 2) { $6 = $6 " " }
if (length($7) == 2) { $7 = $7 " " }
# processing sent and received serial numbers with preceding zeros
if (length($4) == 1) { $4 = "00" $4 }
if (length($4) == 2) { $4 = "0" $4 }
if (length($8) == 1) { $8 = "00" $8 }
if (length($8) == 2) { $8 = "0" $8 }
$4 = " " $4
$8 = " " $8
# province sent and received
p = " " toupper(P)
$9 = " " toupper($9)
# print QSO lines
print "QSO:" band mode $2 $3 mycall $6 $4 p ucall $7 $8 $9
}