README
aprs-parser2
JavaScript library for parsing APRS packets. "aprs-parser2" is a fork of "npm-aprs-parser" originally written by adriann0
Code Example - Simple parsing
let aprs = require("aprs-parser2");
let parser = new aprs.APRSParser();
console.log(parser.parse("SQ7PFS-10>APRS,TCPIP*,qAC,T2SYDNEY:@085502h4903.50N/07201.75W-PHG5132Hello world/A=001234"));
console.log();
console.log(parser.parse("SQ7PFS-10>S32U6T,TCPIP*,qAC,T2SYDNEY:`(_fn\"Oj/>Hellov"));
Output:
APRSMessage {
from: Callsign { ssid: '10', call: 'SQ7PFS' },
to: Callsign { call: 'APRS' },
via:
[ Callsign { call: 'TCPIP*' },
Callsign { call: 'qAC' },
Callsign { call: 'T2SYDNEY' } ],
raw: 'SQ7PFS-10>APRS,TCPIP*,qAC,T2SYDNEY:@085502h4903.50N/07201.75W-PHG5132Hello world/A=001234',
data:
Position {
latitude: 49.05833333333333,
longitude: -72.02916666666667,
symbol: '/-',
symbolIcon: 'Home',
extension: PHG { heightFeet: 20, gaindB: 3, directivityDeg: 90, powerWatts: 25 },
altitude: 376.1232,
comment: 'Hello world',
timestamp: Mon Feb 27 2017 09:55:02 GMT+0100 (CET),
msgEnabled: true } }
APRSMessage {
from: Callsign { ssid: '10', call: 'SQ7PFS' },
to: Callsign { call: 'S32U6T' },
via:
[ Callsign { call: 'TCPIP*' },
Callsign { call: 'qAC' },
Callsign { call: 'T2SYDNEY' } ],
raw: 'SQ7PFS-10>S32U6T,TCPIP*,qAC,T2SYDNEY:`(_fn"Oj/>Hellov',
data:
MICEPosition {
latitude: 33.42733333333334,
longitude: -12.129,
mice: 'returning',
symbol: '/j',
symbolIcon: 'Jeep',
extension: CourseSpeed { courseDeg: 251, speedMPerS: 10.28888888 },
radio: 'Kenwood TH-D7A Mobile',
comment: 'Hello' } }
Code Example - APRS Stream
This library also supports connecting to the APRS "firehose". An amateur radio license is required to connect.
const aprs = require("aprs-parser2");
const stream = new aprs.APRSISConnector;
stream.connect('YOUR-AMATEUR-RADIO-CALLSIGN');
stream.on('aprs', (event)=>{
console.log(event)
});
Installation
$ npm install aprs-parser2 --save
Supported data types
- Position
- Objects
- Current MIC-E
- Telemetry
- Messages
- Weather
License
Library is licensed under the GNU Lesser General Public License.
Library originally by adriann0 and forked/enhanced by Kris Linquist in 2021.