Support WWFF and SOTA adif output

pull/2/head
Jean-Marc MEESSEN 4 years ago
parent 134489772b
commit b2648053d3

@ -2,4 +2,3 @@ package cmd
//VersionString is the version that will be displayed with the -v switch
const VersionString = "v0.0.0 2020-07-11"

@ -24,7 +24,8 @@ import (
)
var outputFilename string
var isWwff bool
var isWWFFcli bool
var isSOTAcli bool
var isOverwrite bool
// adifCmd is executed when choosing the adif option (load and generate adif file)
@ -42,7 +43,8 @@ var adifCmd = &cobra.Command{
func init() {
rootCmd.AddCommand(adifCmd)
adifCmd.PersistentFlags().BoolVarP(&isWwff, "wwff", "w", false, "Generates an ADIF file ready to be uploaded on WWFF")
adifCmd.PersistentFlags().BoolVarP(&isWWFFcli, "wwff", "w", false, "Generates a WWFF ready ADIF file.")
adifCmd.PersistentFlags().BoolVarP(&isSOTAcli, "sota", "s", false, "Generates a SOTA ready ADIF file.")
adifCmd.PersistentFlags().BoolVarP(&isOverwrite, "overwrite", "", false, "Overwrites the output file if it exisits")
adifCmd.PersistentFlags().StringVarP(&outputFilename, "output", "o", "", "Output filename")
}
@ -55,7 +57,8 @@ func processAdifCommand() {
fmt.Println("OutputFile: ", outputFilename)
fmt.Println("computed output: ", verifiedOutputFilename)
fmt.Println("Output filenameWasOK: ", filenameWasOK)
fmt.Println("wwff: ", isWwff)
fmt.Println("wwff: ", isWWFFcli)
fmt.Println("sota: ", isSOTAcli)
fmt.Println("isOverwrite: ", isOverwrite)
// if the output file could not be parsed correctly do noting
@ -69,15 +72,16 @@ func processAdifCommand() {
return
}
//TODO: There are more tests required here
//check if we have the necessary information for the type
if isWwff {
if isWWFFcli {
if loadedLogFile[0].MyWWFF == "" {
fmt.Println("Missing MY-WWFF reference. Aborting...")
return
}
}
outputAdif(verifiedOutputFilename, loadedLogFile)
outputAdif(verifiedOutputFilename, loadedLogFile, isWWFFcli, isSOTAcli)
}
}
}

@ -25,45 +25,58 @@ limitations under the License.
*/
// outputAdif generates and writes data in ADIF format
func outputAdif(outputFile string, fullLog []LogLine) {
func outputAdif(outputFile string, fullLog []LogLine, isWWFF bool, isSOTA bool) {
//TODO: validate input data for combination
//convert the log data to an in-memory ADIF file
adifData := buildAdif(fullLog)
adifData := buildAdif(fullLog, isWWFF, isSOTA)
//write to a file
writeAdif(outputFile, adifData)
}
// buildAdif creates the adif file in memory ready to be printed
func buildAdif(fullLog []LogLine) (adifList []string) {
func buildAdif(fullLog []LogLine, isWWFF bool, isSOTA bool) (adifList []string) {
//Print the fixed header
adifList = append(adifList, "ADIF Export for Fast Log Entry by DF3CB")
adifList = append(adifList, "<PROGRAMID:3>FLE")
adifList = append(adifList, "<ADIF_VER:5>3.0.6")
adifList = append(adifList, "<ADIF_VER:5>3.1.0")
adifList = append(adifList, "<EOH>")
for _, logLine := range fullLog {
adifLine := ""
adifLine = adifLine + adifElement("STATION_CALLSIGN", logLine.MyCall)
adifLine = adifLine + adifElement("CALL", logLine.Call)
adifLine = adifLine + adifElement("QSO_DATE", adifDate(logLine.Date))
adifLine = adifLine + adifElement("TIME_ON", logLine.Time)
adifLine = adifLine + adifElement("BAND", logLine.Band)
adifLine = adifLine + adifElement("MODE", logLine.Mode)
var adifLine strings.Builder
adifLine.WriteString(adifElement("STATION_CALLSIGN", logLine.MyCall))
adifLine.WriteString(adifElement("CALL", logLine.Call))
adifLine.WriteString(adifElement("QSO_DATE", adifDate(logLine.Date)))
adifLine.WriteString(adifElement("TIME_ON", logLine.Time))
adifLine.WriteString(adifElement("BAND", logLine.Band))
adifLine.WriteString(adifElement("MODE", logLine.Mode))
if logLine.Frequency != "" {
adifLine = adifLine + adifElement("FREQ", logLine.Frequency)
adifLine.WriteString(adifElement("FREQ", logLine.Frequency))
}
adifLine.WriteString(adifElement("RST_SENT", logLine.RSTsent))
adifLine.WriteString(adifElement("RST_RCVD", logLine.RSTrcvd))
if logLine.QSLmsg != "" {
adifLine.WriteString(adifElement("QSLMSG", logLine.RSTrcvd))
}
if isWWFF {
adifLine.WriteString(adifElement("MY_SIG", "WWFF"))
adifLine.WriteString(adifElement("MY_SIG_INFO", logLine.MyWWFF))
}
if isSOTA {
adifLine.WriteString(adifElement("MY_SOTA_REF", logLine.MySOTA))
if logLine.SOTA != "" {
adifLine.WriteString(adifElement("SOTA_REF", logLine.SOTA))
}
}
adifLine = adifLine + adifElement("RST_SENT", logLine.RSTsent)
adifLine = adifLine + adifElement("RST_RCVD", logLine.RSTrcvd)
adifLine = adifLine + adifElement("MY_SIG", "WWFF")
adifLine = adifLine + adifElement("MY_SIG_INFO", logLine.MyWWFF)
adifLine = adifLine + adifElement("OPERATOR", logLine.Operator)
adifLine.WriteString(adifElement("OPERATOR", logLine.Operator))
if logLine.Nickname != "" {
adifLine = adifLine + adifElement("APP_EQSL_QTH_NICKNAME", logLine.Nickname)
adifLine.WriteString(adifElement("APP_EQSL_QTH_NICKNAME", logLine.Nickname))
}
adifLine = adifLine + "<EOR>"
adifLine.WriteString("<EOR>")
adifList = append(adifList, adifLine)
adifList = append(adifList, adifLine.String())
}
@ -107,13 +120,13 @@ func checkFileError(e error) {
//adifDate converts a date in YYYY-MM-DD format to YYYYMMDD
func adifDate(inputDate string) (outputDate string) {
const RFC3339FullDate = "2006-01-02"
date, err := time.Parse(RFC3339FullDate, inputDate)
const FLEdateFormat = "2006-01-02"
date, err := time.Parse(FLEdateFormat, inputDate)
//error should never happen
if err != nil {
panic(err)
}
outputDate = fmt.Sprintf("%04d%02d%02d", date.Year(), date.Month(), date.Day())
return outputDate
const ADIFdateFormat = "20060102"
return date.Format(ADIFdateFormat)
}

@ -44,7 +44,7 @@ func Test_buildAdif(t *testing.T) {
expectedOutput1 := []string{
"ADIF Export for Fast Log Entry by DF3CB",
"<PROGRAMID:3>FLE",
"<ADIF_VER:5>3.0.6",
"<ADIF_VER:5>3.1.0",
"<EOH>",
"<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>S57LC <QSO_DATE:8>20200524 <TIME_ON:4>1310 <BAND:3>20m <MODE:2>CW <FREQ:6>14.045 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>",
"<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>ON4LY <QSO_DATE:8>20200524 <TIME_ON:4>1312 <BAND:3>20m <MODE:2>CW <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <OPERATOR:6>ON4KJM <EOR>",
@ -52,6 +52,8 @@ func Test_buildAdif(t *testing.T) {
type args struct {
fullLog []LogLine
isWWFF bool
isSOTA bool
}
tests := []struct {
name string
@ -59,14 +61,14 @@ func Test_buildAdif(t *testing.T) {
wantAdifList []string
}{
{
"Happy case",
args{fullLog: sampleFilledLog1},
"Happy case-WWFF",
args{fullLog: sampleFilledLog1, isWWFF: true, isSOTA: false},
expectedOutput1,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotAdifList := buildAdif(tt.args.fullLog); !reflect.DeepEqual(gotAdifList, tt.wantAdifList) {
if gotAdifList := buildAdif(tt.args.fullLog, tt.args.isWWFF, tt.args.isSOTA); !reflect.DeepEqual(gotAdifList, tt.wantAdifList) {
t.Errorf("buildAdif() = %v, want %v", gotAdifList, tt.wantAdifList)
}
})

@ -29,7 +29,7 @@ func SprintLogRecord(logLine LogLine) string {
output.WriteString("Operator " + logLine.Operator + "\n")
output.WriteString("MyWWFF " + logLine.MyWWFF + "\n")
output.WriteString("MySOTA " + logLine.MySOTA + "\n")
output.WriteString("QslMsg " + logLine.QslMsg + "\n")
output.WriteString("QslMsg " + logLine.QslMsgFromHeader + "\n")
output.WriteString("Nickname " + logLine.Nickname + "\n")
output.WriteString("Mode " + logLine.Mode + "\n")
output.WriteString("ModeType " + logLine.ModeType + "\n")

@ -33,7 +33,7 @@ type LogLine struct {
Operator string
MyWWFF string
MySOTA string
QslMsg string
QslMsgFromHeader string
Nickname string
Mode string
ModeType string

@ -0,0 +1,10 @@
ADIF file
created by SOTA2ADIF (http://www.on6zq.be/w/index.php/SOTA/SOTA2ADIF) on 2020/07/12 18:30:23 UTC
<ProgramID:9>SOTA2ADIF
<ProgramVersion:8>20200712
<ADIF_VER:4>3.0.4
<EOH>
<QSO_DATE:8>20010101 <TIME_ON:4>0101 <STATION_CALLSIGN:7>ON6ZQ/P <OPERATOR:7>ON6ZQ/P <Band:3>40M <MODE:2>CW <CALL:6>ON4XYZ <SOTA_REF:8>F/AB-001 <COMMENT:20>F/AB-001 comment 123 <EOR>
<QSO_DATE:8>20010102 <TIME_ON:4>0201 <STATION_CALLSIGN:7>ON6ZQ/P <OPERATOR:7>ON6ZQ/P <Band:3>40M <MODE:2>CW <CALL:6>ON4XYZ <SOTA_REF:8>F/AB-002 <COMMENT:20>F/AB-002 comment 456 <EOR>
<QSO_DATE:8>20010103 <TIME_ON:4>0301 <STATION_CALLSIGN:7>ON6ZQ/P <OPERATOR:7>ON6ZQ/P <MY_SOTA_REF:9>ON/ON-001 <Band:3>40M <MODE:2>CW <CALL:6>ON4XYZ <SOTA_REF:8>F/AB-003 <COMMENT:20>F/AB-003 comment 789 <EOR>

@ -0,0 +1,53 @@
ADIF Export for Fast Log Entry by DF3CB
<PROGRAMID:3>FLE
<ADIF_VER:5>3.1.0
<EOH>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>S57LC <QSO_DATE:8>20200524 <TIME_ON:4>1310 <BAND:3>20m <MODE:2>CW <FREQ:6>14.045 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>ON4LY <QSO_DATE:8>20200524 <TIME_ON:4>1312 <BAND:3>20m <MODE:2>CW <FREQ:6>14.045 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>ON6ZQ <QSO_DATE:8>20200524 <TIME_ON:4>1315 <BAND:3>20m <MODE:2>CW <FREQ:6>14.045 <RST_SENT:3>339 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>IW3IEE <QSO_DATE:8>20200524 <TIME_ON:4>1320 <BAND:3>20m <MODE:2>CW <FREQ:6>14.045 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>OE7HHW <QSO_DATE:8>20200524 <TIME_ON:4>1325 <BAND:3>20m <MODE:2>CW <FREQ:6>14.045 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:7>OL90CRK <QSO_DATE:8>20200524 <TIME_ON:4>1337 <BAND:3>20m <MODE:2>CW <FREQ:6>14.045 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>OE6JTD <QSO_DATE:8>20200524 <TIME_ON:4>1342 <BAND:3>20m <MODE:2>CW <FREQ:6>14.047 <RST_SENT:3>539 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:10>HB9FBG/QRP <QSO_DATE:8>20200524 <TIME_ON:4>1405 <BAND:3>20m <MODE:2>CW <FREQ:6>14.060 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>HB9IJC <QSO_DATE:8>20200524 <TIME_ON:4>1415 <BAND:3>30m <MODE:2>CW <FREQ:6>10.124 <RST_SENT:3>589 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>F6ACV <QSO_DATE:8>20200524 <TIME_ON:4>1425 <BAND:3>30m <MODE:2>CW <FREQ:6>10.124 <RST_SENT:3>579 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:8>DL5SFC/P <QSO_DATE:8>20200524 <TIME_ON:4>1427 <BAND:3>30m <MODE:2>CW <FREQ:6>10.124 <RST_SENT:3>559 <RST_RCVD:3>559 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>DL6TA <QSO_DATE:8>20200524 <TIME_ON:4>1429 <BAND:3>30m <MODE:2>CW <FREQ:6>10.124 <RST_SENT:3>449 <RST_RCVD:3>559 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>PA1TT <QSO_DATE:8>20200524 <TIME_ON:4>1432 <BAND:3>30m <MODE:2>CW <FREQ:6>10.124 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>IK4GBU <QSO_DATE:8>20200524 <TIME_ON:4>1435 <BAND:3>30m <MODE:2>CW <FREQ:6>10.124 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>OH6MPS <QSO_DATE:8>20200524 <TIME_ON:4>1438 <BAND:3>30m <MODE:2>CW <FREQ:6>10.124 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>YL2TN <QSO_DATE:8>20200524 <TIME_ON:4>1442 <BAND:3>30m <MODE:2>CW <FREQ:6>10.124 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>OH6NPJ <QSO_DATE:8>20200524 <TIME_ON:4>1444 <BAND:3>30m <MODE:2>CW <FREQ:6>10.124 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>DL5OE <QSO_DATE:8>20200524 <TIME_ON:4>1447 <BAND:3>30m <MODE:2>CW <FREQ:6>10.124 <RST_SENT:3>449 <RST_RCVD:3>559 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>I1ULJ <QSO_DATE:8>20200524 <TIME_ON:4>1500 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>589 <RST_RCVD:3>559 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>I1GIS <QSO_DATE:8>20200524 <TIME_ON:4>1506 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>ON5SY <QSO_DATE:8>20200524 <TIME_ON:4>1513 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>569 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>GB1PBL <QSO_DATE:8>20200524 <TIME_ON:4>1520 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>IK2ECC <QSO_DATE:8>20200524 <TIME_ON:4>1521 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:4>PA0B <QSO_DATE:8>20200524 <TIME_ON:4>1522 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>OM5HW <QSO_DATE:8>20200524 <TIME_ON:4>1523 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>HA0ML <QSO_DATE:8>20200524 <TIME_ON:4>1524 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>OM1AY <QSO_DATE:8>20200524 <TIME_ON:4>1525 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>SP8LEP <QSO_DATE:8>20200524 <TIME_ON:4>1526 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>EA2CIA <QSO_DATE:8>20200524 <TIME_ON:4>1528 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>SP5CCK <QSO_DATE:8>20200524 <TIME_ON:4>1529 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>9A4FM <QSO_DATE:8>20200524 <TIME_ON:4>1530 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>579 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>F5PSS <QSO_DATE:8>20200524 <TIME_ON:4>1531 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>SP8SV <QSO_DATE:8>20200524 <TIME_ON:4>1533 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>IS3SMB <QSO_DATE:8>20200524 <TIME_ON:4>1534 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>SM6CNX <QSO_DATE:8>20200524 <TIME_ON:4>1536 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>SQ2LKY <QSO_DATE:8>20200524 <TIME_ON:4>1537 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>ON4BB <QSO_DATE:8>20200524 <TIME_ON:4>1539 <BAND:3>40m <MODE:2>CW <FREQ:5>7.026 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>SP2YMX <QSO_DATE:8>20200524 <TIME_ON:4>1540 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>599 <RST_RCVD:3>559 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:4>SP2F <QSO_DATE:8>20200524 <TIME_ON:4>1542 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>F6EOC <QSO_DATE:8>20200524 <TIME_ON:4>1543 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>EA1DT <QSO_DATE:8>20200524 <TIME_ON:4>1545 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>2E0TTD <QSO_DATE:8>20200524 <TIME_ON:4>1546 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>SQ2EEY <QSO_DATE:8>20200524 <TIME_ON:4>1548 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>579 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>IW2BNA <QSO_DATE:8>20200524 <TIME_ON:4>1549 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>579 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>OH1XT <QSO_DATE:8>20200524 <TIME_ON:4>1551 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>579 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>ON4VT <QSO_DATE:8>20200524 <TIME_ON:4>1553 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>OZ9VO <QSO_DATE:8>20200524 <TIME_ON:4>1555 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>559 <RST_RCVD:3>559 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>G0TQT <QSO_DATE:8>20200524 <TIME_ON:4>1557 <BAND:3>40m <MODE:2>CW <FREQ:5>7.024 <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>
<STATION_CALLSIGN:8>ON4KJM/P <CALL:6>DL2RPS <QSO_DATE:8>20200524 <TIME_ON:4>1625 <BAND:3>80m <MODE:2>CW <FREQ:5>3.529 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <MY_SOTA_REF:9>ON/ON-001 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>

@ -0,0 +1,49 @@
V2,ON4KJM/P,ON/ON-001,24/05/20,1310,14MHz,CW,S57LC
V2,ON4KJM/P,ON/ON-001,24/05/20,1312,14MHz,CW,ON4LY
V2,ON4KJM/P,ON/ON-001,24/05/20,1315,14MHz,CW,ON6ZQ
V2,ON4KJM/P,ON/ON-001,24/05/20,1320,14MHz,CW,IW3IEE
V2,ON4KJM/P,ON/ON-001,24/05/20,1325,14MHz,CW,OE7HHW
V2,ON4KJM/P,ON/ON-001,24/05/20,1337,14MHz,CW,OL90CRK
V2,ON4KJM/P,ON/ON-001,24/05/20,1342,14MHz,CW,OE6JTD
V2,ON4KJM/P,ON/ON-001,24/05/20,1405,14MHz,CW,HB9FBG/QRP
V2,ON4KJM/P,ON/ON-001,24/05/20,1415,10MHz,CW,HB9IJC
V2,ON4KJM/P,ON/ON-001,24/05/20,1425,10MHz,CW,F6ACV
V2,ON4KJM/P,ON/ON-001,24/05/20,1427,10MHz,CW,DL5SFC/P
V2,ON4KJM/P,ON/ON-001,24/05/20,1429,10MHz,CW,DL6TA
V2,ON4KJM/P,ON/ON-001,24/05/20,1432,10MHz,CW,PA1TT
V2,ON4KJM/P,ON/ON-001,24/05/20,1435,10MHz,CW,IK4GBU
V2,ON4KJM/P,ON/ON-001,24/05/20,1438,10MHz,CW,OH6MPS
V2,ON4KJM/P,ON/ON-001,24/05/20,1442,10MHz,CW,YL2TN
V2,ON4KJM/P,ON/ON-001,24/05/20,1444,10MHz,CW,OH6NPJ
V2,ON4KJM/P,ON/ON-001,24/05/20,1447,10MHz,CW,DL5OE
V2,ON4KJM/P,ON/ON-001,24/05/20,1500,7MHz,CW,I1ULJ
V2,ON4KJM/P,ON/ON-001,24/05/20,1506,7MHz,CW,I1GIS
V2,ON4KJM/P,ON/ON-001,24/05/20,1513,7MHz,CW,ON5SY
V2,ON4KJM/P,ON/ON-001,24/05/20,1520,7MHz,CW,GB1PBL
V2,ON4KJM/P,ON/ON-001,24/05/20,1521,7MHz,CW,IK2ECC
V2,ON4KJM/P,ON/ON-001,24/05/20,1522,7MHz,CW,PA0B
V2,ON4KJM/P,ON/ON-001,24/05/20,1523,7MHz,CW,OM5HW
V2,ON4KJM/P,ON/ON-001,24/05/20,1524,7MHz,CW,HA0ML
V2,ON4KJM/P,ON/ON-001,24/05/20,1525,7MHz,CW,OM1AY
V2,ON4KJM/P,ON/ON-001,24/05/20,1526,7MHz,CW,SP8LEP
V2,ON4KJM/P,ON/ON-001,24/05/20,1528,7MHz,CW,EA2CIA
V2,ON4KJM/P,ON/ON-001,24/05/20,1529,7MHz,CW,SP5CCK
V2,ON4KJM/P,ON/ON-001,24/05/20,1530,7MHz,CW,9A4FM
V2,ON4KJM/P,ON/ON-001,24/05/20,1531,7MHz,CW,F5PSS
V2,ON4KJM/P,ON/ON-001,24/05/20,1533,7MHz,CW,SP8SV
V2,ON4KJM/P,ON/ON-001,24/05/20,1534,7MHz,CW,IS3SMB
V2,ON4KJM/P,ON/ON-001,24/05/20,1536,7MHz,CW,SM6CNX
V2,ON4KJM/P,ON/ON-001,24/05/20,1537,7MHz,CW,SQ2LKY
V2,ON4KJM/P,ON/ON-001,24/05/20,1539,7MHz,CW,ON4BB
V2,ON4KJM/P,ON/ON-001,24/05/20,1540,7MHz,CW,SP2YMX
V2,ON4KJM/P,ON/ON-001,24/05/20,1542,7MHz,CW,SP2F
V2,ON4KJM/P,ON/ON-001,24/05/20,1543,7MHz,CW,F6EOC
V2,ON4KJM/P,ON/ON-001,24/05/20,1545,7MHz,CW,EA1DT
V2,ON4KJM/P,ON/ON-001,24/05/20,1546,7MHz,CW,2E0TTD
V2,ON4KJM/P,ON/ON-001,24/05/20,1548,7MHz,CW,SQ2EEY
V2,ON4KJM/P,ON/ON-001,24/05/20,1549,7MHz,CW,IW2BNA
V2,ON4KJM/P,ON/ON-001,24/05/20,1551,7MHz,CW,OH1XT
V2,ON4KJM/P,ON/ON-001,24/05/20,1553,7MHz,CW,ON4VT
V2,ON4KJM/P,ON/ON-001,24/05/20,1555,7MHz,CW,OZ9VO
V2,ON4KJM/P,ON/ON-001,24/05/20,1557,7MHz,CW,G0TQT
V2,ON4KJM/P,ON/ON-001,24/05/20,1625,3.5MHz,CW,DL2RPS
1 V2 ON4KJM/P ON/ON-001 24/05/20 1310 14MHz CW S57LC
2 V2 ON4KJM/P ON/ON-001 24/05/20 1312 14MHz CW ON4LY
3 V2 ON4KJM/P ON/ON-001 24/05/20 1315 14MHz CW ON6ZQ
4 V2 ON4KJM/P ON/ON-001 24/05/20 1320 14MHz CW IW3IEE
5 V2 ON4KJM/P ON/ON-001 24/05/20 1325 14MHz CW OE7HHW
6 V2 ON4KJM/P ON/ON-001 24/05/20 1337 14MHz CW OL90CRK
7 V2 ON4KJM/P ON/ON-001 24/05/20 1342 14MHz CW OE6JTD
8 V2 ON4KJM/P ON/ON-001 24/05/20 1405 14MHz CW HB9FBG/QRP
9 V2 ON4KJM/P ON/ON-001 24/05/20 1415 10MHz CW HB9IJC
10 V2 ON4KJM/P ON/ON-001 24/05/20 1425 10MHz CW F6ACV
11 V2 ON4KJM/P ON/ON-001 24/05/20 1427 10MHz CW DL5SFC/P
12 V2 ON4KJM/P ON/ON-001 24/05/20 1429 10MHz CW DL6TA
13 V2 ON4KJM/P ON/ON-001 24/05/20 1432 10MHz CW PA1TT
14 V2 ON4KJM/P ON/ON-001 24/05/20 1435 10MHz CW IK4GBU
15 V2 ON4KJM/P ON/ON-001 24/05/20 1438 10MHz CW OH6MPS
16 V2 ON4KJM/P ON/ON-001 24/05/20 1442 10MHz CW YL2TN
17 V2 ON4KJM/P ON/ON-001 24/05/20 1444 10MHz CW OH6NPJ
18 V2 ON4KJM/P ON/ON-001 24/05/20 1447 10MHz CW DL5OE
19 V2 ON4KJM/P ON/ON-001 24/05/20 1500 7MHz CW I1ULJ
20 V2 ON4KJM/P ON/ON-001 24/05/20 1506 7MHz CW I1GIS
21 V2 ON4KJM/P ON/ON-001 24/05/20 1513 7MHz CW ON5SY
22 V2 ON4KJM/P ON/ON-001 24/05/20 1520 7MHz CW GB1PBL
23 V2 ON4KJM/P ON/ON-001 24/05/20 1521 7MHz CW IK2ECC
24 V2 ON4KJM/P ON/ON-001 24/05/20 1522 7MHz CW PA0B
25 V2 ON4KJM/P ON/ON-001 24/05/20 1523 7MHz CW OM5HW
26 V2 ON4KJM/P ON/ON-001 24/05/20 1524 7MHz CW HA0ML
27 V2 ON4KJM/P ON/ON-001 24/05/20 1525 7MHz CW OM1AY
28 V2 ON4KJM/P ON/ON-001 24/05/20 1526 7MHz CW SP8LEP
29 V2 ON4KJM/P ON/ON-001 24/05/20 1528 7MHz CW EA2CIA
30 V2 ON4KJM/P ON/ON-001 24/05/20 1529 7MHz CW SP5CCK
31 V2 ON4KJM/P ON/ON-001 24/05/20 1530 7MHz CW 9A4FM
32 V2 ON4KJM/P ON/ON-001 24/05/20 1531 7MHz CW F5PSS
33 V2 ON4KJM/P ON/ON-001 24/05/20 1533 7MHz CW SP8SV
34 V2 ON4KJM/P ON/ON-001 24/05/20 1534 7MHz CW IS3SMB
35 V2 ON4KJM/P ON/ON-001 24/05/20 1536 7MHz CW SM6CNX
36 V2 ON4KJM/P ON/ON-001 24/05/20 1537 7MHz CW SQ2LKY
37 V2 ON4KJM/P ON/ON-001 24/05/20 1539 7MHz CW ON4BB
38 V2 ON4KJM/P ON/ON-001 24/05/20 1540 7MHz CW SP2YMX
39 V2 ON4KJM/P ON/ON-001 24/05/20 1542 7MHz CW SP2F
40 V2 ON4KJM/P ON/ON-001 24/05/20 1543 7MHz CW F6EOC
41 V2 ON4KJM/P ON/ON-001 24/05/20 1545 7MHz CW EA1DT
42 V2 ON4KJM/P ON/ON-001 24/05/20 1546 7MHz CW 2E0TTD
43 V2 ON4KJM/P ON/ON-001 24/05/20 1548 7MHz CW SQ2EEY
44 V2 ON4KJM/P ON/ON-001 24/05/20 1549 7MHz CW IW2BNA
45 V2 ON4KJM/P ON/ON-001 24/05/20 1551 7MHz CW OH1XT
46 V2 ON4KJM/P ON/ON-001 24/05/20 1553 7MHz CW ON4VT
47 V2 ON4KJM/P ON/ON-001 24/05/20 1555 7MHz CW OZ9VO
48 V2 ON4KJM/P ON/ON-001 24/05/20 1557 7MHz CW G0TQT
49 V2 ON4KJM/P ON/ON-001 24/05/20 1625 3.5MHz CW DL2RPS
Loading…
Cancel
Save