Socket
Book a DemoInstallSign in
Socket

mode-s-decoder

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mode-s-decoder

A library to decode a binary Mode S message to an easy to use JavaScript object

latest
Source
npmnpm
Version
1.0.1
Version published
Weekly downloads
59
555.56%
Maintainers
1
Weekly downloads
 
Created
Source

mode-s-decoder

A library to decode a binary Mode S message to an easy to use JavaScript object.

Mode S is an aviation transponder interrogation mode used by Secondary Surveillance Radar (SSR) and Automatic Dependent Surveillance-Broadcast (ADS-B) systems.

For an example of this module in use, see AirplaneJS.

Build status js-standard-style

Installation

npm install mode-s-decoder --save

Usage

const Decoder = require('mode-s-decoder')
const decoder = new Decoder()

const data = new Uint8Array([0x8f, 0x46, 0x1f, 0x36, 0x60, 0x4d, 0x74, 0x82, 0xe4, 0x4d, 0x97, 0xbc, 0xd6, 0x4e])
const message = decoder.parse(data)

console.log(message)

API

Decoder.UNIT_FEET

A constant indicating that the unit used is feet. Used to check the unit of the message using the message.unit property.

Decoder.UNIT_METERS

A constant indicating that the unit used is meters. Used to check the unit of the message using the message.unit property.

decoder = new Decoder([options])

Initialize a new decoder object.

Arguments:

  • options - An optional options object

The available options are:

  • fixErrors - Set to false to disable automatic error correction (default: true)
  • aggressive - Set to true to enable aggressive error correction algorithm. Only used if fixErrors is true (default: false)

message = decoder.parse(data[, crcOnly])

Parse a binary Mode S message into an easy to use JavaScript object.

Arguments:

  • data - A binary Mode S message (e.g. a Buffer or Uint8Array object)
  • crcOnly - Optional boolean indicating if the decoder should only validate the checksum. If true, the returned message object will only contain the properties msg, msgtype, msgbits, crc, and crcOk (default: false)

Returns a message object containing the decoded message.

It's recommended to use this module together with the mode-s-aircraft-store module. This allows you easy access to the decoded latitude and longitude as this information cannot be read from a single Mode S message, but needs multiple concurrent messages in order to be properly decoded:

const message = decoder.parse(data)

// store is an instance of AircraftStore from the mode-s-aircraft-store module
store.addMessage(message)

// ...

// later after storing multiple messages, output list of aircrafts:
store.getAircrafts().forEach(function (aircraft) {
  const unit = aircraft.unit === Decoder.UNIT_FEET ? 'feet' : 'meters'
  console.log('Aircraft:\n' +
    `  ID: ${aircraft.icao}\n` +
    `  Altitude: ${aircraft.altitude} ${unit}\n` +
    `  Speed: ${aircraft.speed}\n` +
    `  Heading: ${aircraft.heading}\n` +
    `  Latitude: ${aircraft.lat}\n` +
    `  Longitude: ${aircraft.lng}\n`)
})

License

MIT

Keywords

decode

FAQs

Package last updated on 11 Dec 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts