Documentation
¶
Index ¶
Constants ¶
const InvalidCoordinate float64 = 360
InvalidCoordinate is a marker for an unset position
Variables ¶
var ToCallsJSONData = []byte(`{"micelegacy":{">^":{"features":["messaging"],"class":"ht","model":"TH-D74","vendor":"Kenwood","suffix":"^","prefix":">"},">":{"class":"ht","features":["messaging"],"prefix":">","model":"TH-D7A","vendor":"Kenwood"},">=":{"vendor":"Kenwood","model":"TH-D72","prefix":">","suffix":"=","class":"ht","features":["messaging"]},"]":{"features":["messaging"],"class":"rig","model":"TM-D700","vendor":"Kenwood","prefix":"]"},"]=":{"model":"TM-D710","vendor":"Kenwood","suffix":"=","prefix":"]","class":"rig","features":["messaging"]}},"mice":{"_#":{"vendor":"Yaesu","model":"VX-8G","class":"ht"},"_(":{"class":"ht","vendor":"Yaesu","model":"FT2D"},"_\"":{"model":"FTM-350","vendor":"Yaesu","class":"rig"},"|4":{"class":"tracker","model":"TinyTrak4","vendor":"Byonics"},"*v":{"model":"Tracker","vendor":"KissOZ","class":"tracker"},"_$":{"class":"ht","model":"FT1D","vendor":"Yaesu"},"_ ":{"model":"VX-8","vendor":"Yaesu","class":"ht"},"|3":{"class":"tracker","model":"TinyTrak3","vendor":"Byonics"},"^v":{"vendor":"HinzTec","model":"anyfrog"},"_)":{"class":"rig","vendor":"Yaesu","model":"FTM-100D"},"_%":{"model":"FTM-400DR","vendor":"Yaesu","class":"rig"}},"tocalls":{"APNW??":{"model":"WX3in1","os":"embedded","vendor":"SQ3FYK"},"APJI??":{"class":"software","model":"jAPRSIgate","vendor":"Peter Loveall, AE5PL"},"APU1??":{"os":"Windows","model":"UI-View16","vendor":"Roger Barker, G4IDE","class":"software"},"APAVT5":{"class":"tracker","vendor":"SainSonic","model":"AP510"},"APOA??":{"class":"app","vendor":"OpenAPRS","os":"ios","model":"app"},"APAG??":{"model":"AGate"},"APAX??":{"model":"AFilterX"},"APNKMP":{"model":"KAM+","vendor":"Kantronics"},"APIN??":{"model":"PinPoint","vendor":"AB0WV"},"APMI05":{"model":"PLXTracker","os":"embedded","vendor":"Microsat"},"APDF??":{"model":"Automatic DF units"},"APCLWX":{"model":"EYWeather","vendor":"ZS6EY","class":"wx"},"APHT??":{"vendor":"IU0AAC","model":"HMTracker","class":"tracker"},"APAM??":{"model":"AltOS","vendor":"Altus Metrum","class":"tracker"},"APZMAJ":{"vendor":"M1MAJ","model":"DeLorme inReach Tracker"},"AP1WWX":{"vendor":"TAPR","model":"T-238+","class":"wx"},"APCLEY":{"class":"tracker","model":"EYTraker","vendor":"ZS6EY"},"APYS??":{"class":"software","model":"Python APRS","vendor":"W2GMD"},"APDnnn":{"class":"software","os":"Linux/Unix","model":"aprsd","vendor":"Open Source"},"APDT??":{"model":"APRStouch Tone (DTMF)","vendor":"unknown"},"PSKAPR":{"vendor":"Open Source","model":"PSKmail","class":"software"},"APMI01":{"model":"WX3in1","os":"embedded","vendor":"Microsat"},"APOZ??":{"class":"tracker","model":"KissOZ","vendor":"OZ1EKD, OZ7HVO"},"APPT??":{"model":"KetaiTracker","vendor":"JF6LZE","class":"tracker"},"APMT??":{"vendor":"LZ1PPL","model":"Micro APRS Tracker","class":"tracker"},"APAW??":{"class":"software","os":"Windows","model":"AGWPE","vendor":"SV2AGW"},"APCL??":{"model":"maprs","vendor":"maprs.org","class":"app"},"APK0??":{"vendor":"Kenwood","model":"TH-D7","class":"ht"},"APDU??":{"os":"Android","model":"U2APRS","vendor":"JA7UDE","class":"app"},"APGO??":{"class":"app","vendor":"AA3NJ","model":"APRS-Go"},"APK1??":{"vendor":"Kenwood","model":"TM-D700","class":"rig"},"APRNOW":{"class":"app","vendor":"Gregg Wonderly, W5GGW","os":"ipad","model":"APRSNow"},"APMI02":{"os":"embedded","model":"WXEth","vendor":"Microsat"},"APY01D":{"class":"ht","model":"FT1D","vendor":"Yaesu"},"APAGW":{"os":"Windows","model":"AGWtracker","vendor":"SV2AGW","class":"software"},"APC???":{"class":"app","model":"APRS/CE","vendor":"Rob Wittner, KZ5RW"},"APZMDR":{"class":"tracker","vendor":"Open Source","os":"embedded","model":"HaMDR"},"APBPQ?":{"vendor":"John Wiseman, G8BPQ","os":"Windows","model":"BPQ32","class":"software"},"APZG??":{"class":"software","vendor":"OH2GVE","os":"Linux/Unix","model":"aprsg"},"APDS??":{"model":"dsDIGI","os":"embedded","vendor":"SP9UOB"},"APVE??":{"model":"EchoLink","vendor":"unknown"},"APK004":{"vendor":"Kenwood","model":"TH-D74","class":"ht"},"APECAN":{"model":"Pecan Pico APRS Balloon Tracker","vendor":"KT5TK/DL7AD","class":"tracker"},"APSTM?":{"model":"Balloon tracker","vendor":"W7QO","class":"tracker"},"APWW??":{"features":["messaging","item-in-msg"],"class":"software","vendor":"KJ4ERJ","os":"Windows","model":"APRSIS32"},"APN3??":{"vendor":"Kantronics","model":"KPC-3"},"APN9??":{"vendor":"Kantronics","model":"KPC-9612"},"APHK??":{"model":"Digipeater/tracker","vendor":"LA1BR"},"APIC??":{"vendor":"HA9MCQ","model":"PICiGATE"},"APXR??":{"model":"Xrouter","vendor":"G8PZT"},"APSAR":{"class":"software","model":"SARTrack","os":"Windows","vendor":"ZL4FOX"},"APS???":{"class":"software","model":"APRS+SA","vendor":"Brent Hildebrand, KH2Z"},"APSTPO":{"class":"software","vendor":"N0AGI","model":"Satellite Tracking and Operations"},"APZTKP":{"class":"tracker","vendor":"Nick Hanks, N0LP","os":"embedded","model":"TrackPoint"},"APR8??":{"class":"software","model":"APRSdos","vendor":"Bob Bruninga, WB4APR"},"APDG??":{"class":"dstar","model":"ircDDB Gateway","vendor":"Jonathan, G4KLX"},"APOT??":{"class":"tracker","model":"OpenTracker","vendor":"Argent Data Systems"},"APTR??":{"vendor":"Motorola","model":"MotoTRBO"},"APFI??":{"vendor":"aprs.fi","class":"app"},"APMI03":{"os":"embedded","model":"PLXDigi","vendor":"Microsat"},"APRX??":{"os":"Linux/Unix","vendor":"Kenneth W. Finnegan, W6KWF","model":"Aprx","class":"software"},"APK003":{"vendor":"Kenwood","model":"TH-D72","class":"ht"},"APWA??":{"class":"software","os":"Android","model":"APRSISCE","vendor":"KJ4ERJ"},"APBL??":{"model":"BeeLine GPS","vendor":"BigRedBee","class":"tracker"},"APB2MF":{"class":"software","vendor":"Mike, DL2MF","os":"Windows","model":"MF2APRS Radiosonde tracking tool"},"APAGW?":{"class":"software","os":"Windows","vendor":"SV2AGW","model":"AGWtracker"},"APY02D":{"class":"ht","vendor":"Yaesu","model":"FT2D"},"APFG??":{"class":"software","vendor":"KP4DJT","model":"Flood Gage"},"APWM??":{"class":"software","features":["messaging","item-in-msg"],"os":"Windows Mobile","model":"APRSISCE","vendor":"KJ4ERJ"},"APX???":{"class":"software","vendor":"Open Source","os":"Linux/Unix","model":"Xastir"},"APTW??":{"class":"wx","vendor":"Byonics","model":"WXTrak"},"APNT??":{"vendor":"SV2AGW","model":"TNT TNC as a digipeater","class":"digi"},"APZ19":{"class":"digi","vendor":"IW3FQG","model":"UIdigi"},"APNM??":{"model":"TNC","vendor":"MFJ"},"APERXQ":{"model":"PE1RXQ APRS Tracker","vendor":"PE1RXQ","class":"tracker"},"APNK01":{"class":"rig","features":["messaging"],"model":"TM-D700","vendor":"Kenwood"},"APZ247":{"vendor":"NR0Q","model":"UPRS"},"APRS":{"model":"Unknown","vendor":"Unknown"},"APN102":{"class":"app","model":"APRSNow","os":"ipad","vendor":"Gregg Wonderly, W5GGW"},"APMG??":{"class":"software","vendor":"Alex, AB0TJ","os":"Netduino","model":"MiniGate"},"APAF??":{"model":"AFilter"},"APRG??":{"class":"software","os":"Linux/Unix","vendor":"OH2GVE","model":"aprsg"},"APMI??":{"os":"embedded","vendor":"Microsat"},"APZ18":{"model":"UIdigi","vendor":"IW3FQG","class":"digi"},"AP4R??":{"class":"software","vendor":"Open Source","model":"APRS4R"},"APJID2":{"model":"D-Star APJID2","vendor":"Peter Loveall, AE5PL","class":"dstar"},"APVR??":{"model":"IRLP","vendor":"unknown"},"APAND?":{"class":"app","os":"Android","model":"APRSdroid","vendor":"Open Source"},"APJS??":{"model":"javAPRSSrvr","vendor":"Peter Loveall, AE5PL"},"APnnnU":{"model":"uSmartDigi Digipeater","vendor":"Painter Engineering","class":"digi"},"APSMS?":{"class":"software","model":"SMS gateway","vendor":"Paul Defrusne"},"APT2??":{"class":"tracker","model":"TinyTrak2","vendor":"Byonics"},"APCLEZ":{"class":"tracker","model":"Telit EZ10 GSM application","vendor":"ZS6EY"},"APFII?":{"class":"app","vendor":"aprs.fi","os":"ios"},"APDI??":{"model":"DIXPRS","vendor":"Bela, HA5DI","class":"software"},"APT4??":{"vendor":"Byonics","model":"TinyTrak4","class":"tracker"},"APRRT?":{"model":"RTrak","vendor":"RPC Electronics","class":"tracker"},"APW???":{"model":"WinAPRS","os":"Windows","vendor":"Sproul Brothers","class":"software"},"APZWKR":{"vendor":"GM1WKR","model":"NetSked","class":"software"},"APND??":{"model":"DIGI_NED","vendor":"PE1MEW"},"APNP??":{"model":"TNC","vendor":"PacComm"},"API???":{"vendor":"Icom","model":"unknown","class":"dstar"},"APAH??":{"model":"AHub"},"APHH?":{"vendor":"Steven D. Bragg, KA9MVA","model":"HamHud","class":"tracker"},"APDPRS":{"class":"dstar","vendor":"unknown","model":"D-Star APDPRS"},"APUDR?":{"vendor":"NW Digital Radio","model":"UDR"},"APY400":{"class":"ht","vendor":"Yaesu","model":"FTM-400"},"APNK80":{"model":"KAM","vendor":"Kantronics"},"APNU??":{"class":"digi","model":"UIdigi","vendor":"IW3FQG"},"APSK63":{"vendor":"Chris Moulding, G4HYG","os":"Windows","model":"APRS Messenger","class":"software"},"APJA??":{"vendor":"K4HG & AE5PL","model":"JavAPRS"},"APIE??":{"model":"PiAPRS","vendor":"W7KMV"},"APDST?":{"os":"embedded","model":"dsTracker","vendor":"SP9UOB"},"APCWP8":{"vendor":"GM7HHB","model":"WinphoneAPRS","class":"app"},"APDW??":{"vendor":"WB2OSZ","model":"DireWolf"},"APOLU?":{"class":"satellite","model":"Oscar","vendor":"AMSAT-LU"},"APT3??":{"class":"tracker","model":"TinyTrak3","vendor":"Byonics"},"APLM??":{"vendor":"WA0TQG","class":"software"},"APRHH?":{"model":"HamHud","vendor":"Steven D. Bragg, KA9MVA","class":"tracker"},"APDNO?":{"os":"embedded","vendor":"DO3SWW","model":"APRSduino","class":"tracker"},"APKRAM":{"class":"app","os":"ios","vendor":"kramstuff.com","model":"Ham Tracker"},"APNX??":{"vendor":"K6DBG","model":"TNC-X"},"APnnnD":{"class":"dstar","model":"uSmartDigi D-Gate","vendor":"Painter Engineering"},"APJY??":{"vendor":"KA2DDO","model":"YAAC","class":"software"},"APE???":{"model":"Telemetry devices"},"APHAX?":{"model":"SM2APRS SondeMonitor","os":"Windows","vendor":"PY2UEP","class":"software"},"APR2MF":{"class":"wx","os":"Windows","model":"MF2wxAPRS Tinkerforge gateway","vendor":"Mike, DL2MF"},"APU2*":{"vendor":"Roger Barker, G4IDE","os":"Windows","model":"UI-View32","class":"software"},"APDR??":{"class":"app","model":"APRSdroid","os":"Android","vendor":"Open Source"},"APJE??":{"vendor":"Gregg Wonderly, W5GGW","model":"JeAPRS"},"APTT*":{"class":"tracker","model":"TinyTrak","vendor":"Byonics"},"APMI04":{"model":"WX3in1 Mini","vendor":"Microsat","os":"embedded"},"APZ186":{"class":"digi","model":"UIdigi","vendor":"IW3FQG"},"APSC??":{"class":"software","vendor":"OH2MQK, OH7LZB","model":"aprsc"}},"classes":{"rig":{"description":"Mobile or desktop radio","shown":"Rig"},"app":{"shown":"Mobile app","description":"Mobile phone or tablet app"},"tracker":{"description":"Tracker device","shown":"Tracker"},"satellite":{"shown":"Satellite","description":"Satellite-based station"},"dstar":{"description":"D-Star radio","shown":"D-Star"},"software":{"shown":"Software","description":"Desktop software"},"digi":{"description":"Digipeater firmware","shown":"Digipeater"},"wx":{"shown":"Weather station","description":"Dedicated weather station"},"ht":{"shown":"HT","description":"Hand-held radio"}}}`)
ToCallsJSONData raw JSON source https://raw.githubusercontent.com/hessu/aprs-deviceid/master/generated/tocalls.pretty.json
Functions ¶
func ShortCallsign ¶
ShortCallsign returns a short version of the callsign as KK6NXK for KK6NXK-7
Types ¶
type Device ¶
type Device struct { Model string `json:"model"` Vendor string `json:"vendor"` Class string `json:"class"` Prefix string `json:"prefix"` Suffix string `json:"suffix"` }
Device stores the model information for a radio device
func (*Device) MiceLegacyMatch ¶
MiceLegacyMatch test for a matching device using Prefix & Suffix againt msg.Comment
type MiceLegacyJSON ¶
MiceLegacyJSON struct handle the tocalls Mice Legacy
type Packet ¶
type Packet struct { PacketType Timestamp int SourceCallsign string DestinationCallsign string Path []string Status string Symbol string Latitude float64 Longitude float64 Altitude float64 Speed float64 Course uint8 Weather *WeatherReport Telemetry *Telemetry RawPacket string MicE string Message string Comment string }
Packet describes an APRS packet
func (*Packet) Device ¶
Device return the Device describing the transceiver used to send this packet
func (*Packet) IncludePosition ¶
IncludePosition return true if the packet contains a Position
type PacketType ¶
type PacketType int
PacketType defines the packets type from libfap
const ( LocationPacketType PacketType = iota ObjectPacketType ItemPacketType MicePacketType NMEAPacketType WXPacketType MessagePacketType CapabilitiesPacketType StatusPacketType TelemetryPacketType TelemetryMessagePacketType DXSpotPacketType ExperimentalPacketType InvalidPacketType )
type Parser ¶
type Parser struct{}
Parser is an APRS Parser
func (*Parser) FillPacket ¶
FillPacket fille an existing packet with the decoded raw APRS message
type Telemetry ¶
type Telemetry struct {
Val1, Val2, Val3, Val4, Val5 float64
}
Telemetry describes the telemetry related part of an APRS packet
type ToCallsJSON ¶
ToCallsJSON struct to handle the tocalls file
type Trie ¶
type Trie struct {
// contains filtered or unexported fields
}
A Trie struct to handle the tocalls lookups