CloudlogUDP/qso/qso.go
Gregory Salaun 283264a261 first commit
2023-11-29 11:02:30 +07:00

57 lines
1.3 KiB
Go

package qso
import (
"strings"
)
type QSO struct {
Call string
Band string
Mode string
Freq string
QSODate string
TimeOn string
RSTR string
RSTS string
Country string
GridSquare string
StationCallsign string
}
func NewQSO() QSO {
return *&QSO{}
}
func (q *QSO) ExtractQSOData(msg []string) {
for _, entry := range msg {
entry = strings.Trim(entry, " ")
switch {
case strings.Contains(entry, "FREQ:"):
q.Freq = "<" + entry
case strings.Contains(entry, "CALL:"):
q.Call = "<" + entry
case strings.Contains(entry, "BAND:"):
q.Band = "<" + entry
case strings.Contains(entry, "MODE:"):
q.Mode = "<" + entry
case strings.Contains(entry, "QSO_DATE:"):
if q.QSODate == "" {
q.QSODate = "<" + entry
}
case strings.Contains(entry, "TIME_ON:"):
q.TimeOn = "<" + entry
case strings.Contains(entry, "RST_RCVD:"):
q.RSTR = "<" + entry
case strings.Contains(entry, "RST_SENT:"):
q.RSTS = "<" + entry
case strings.Contains(entry, "COUNTRY:"):
q.Country = "<" + entry
case strings.Contains(entry, "GRIDSQUARE:"):
q.GridSquare = "<" + entry
case strings.Contains(entry, "STATION_CALLSIGN:"):
q.StationCallsign = "<" + entry
}
}
}