2.0.0 • Published 3 months ago

live-icomera-position v2.0.0

Weekly downloads
2
License
ISC
Repository
github
Last release
3 months ago

live-icomera-position

Live vehicle geolocation, taken from the on-board Icomera WiFi system.

npm version ISC-licensed minimum Node.js version chat with me on Gitter support me on Patreon

Installation

npm install live-icomera-position

Usage

asStream() returns a readable stream in object mode.

import {pipeline} from 'node:stream/promises'
import {asStream} from 'live-icomera-position'
import ndjson from 'ndjson'

await pipeline(
	asStream(),
	ndjson.stringify(),
	process.stdout,
)

An individual data point will look like this:

{
	latitude: 50.9069,
	longitude: 7.0649,
	altitude: 36.9,
	speed: 97, // km/h
	nrOfSatellites: 8,
	mode: '3' // see below
}

You can also use the EventEmitter-based API:

import {asEventEmitter} from 'live-icomera-position'

const positions = asEventEmitter()
positions.on('error', console.error)
positions.on('data', data => console.log(data))

Mode

The mode value in a datapoint appears familiar with the one a widespread gps client called GPSD uses. We don't have any confirmation that the icomera system uses GPSD, but if it did the mode values would mean following: | Value | State | |-------|--------------------------------| | 0 | no value seen. | | 1 | no position. | | 2 | 2D position, no altitude. | | 3 | 3D position, altitude present. |

source: GPSD Documentation

Related

Contributing

If you have a question or need support using live-icomera-position, please double-check your code and setup first. If you think you have found a bug or want to propose a feature, use the issues page.