1.0.4 • Published 3 years ago

aprs-parser2 v1.0.4

Weekly downloads
-
License
SEE LICENSE IN LI...
Repository
github
Last release
3 years ago

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.

1.0.4

3 years ago