node-mavlink 1.6.0 → 2.0.0-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import { EventEmitter } from 'events';
4
+ import { MavLinkPacketSplitter, MavLinkPacketParser } from './mavlink';
4
5
  import { uint8_t, MavLinkData } from 'mavlink-mappings';
5
6
  export interface ConnectionInfo {
6
7
  ip: string;
@@ -16,7 +17,14 @@ export declare class MavEsp8266 extends EventEmitter {
16
17
  private ip;
17
18
  private sendPort;
18
19
  private seq;
19
- constructor();
20
+ /**
21
+ * @param splitter packet splitter instance
22
+ * @param parser packet parser instance
23
+ */
24
+ constructor({ splitter, parser, }?: {
25
+ splitter?: MavLinkPacketSplitter | undefined;
26
+ parser?: MavLinkPacketParser | undefined;
27
+ });
20
28
  /**
21
29
  * Start communication with the controller via MAVESP8266
22
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mavesp.d.ts","sourceRoot":"","sources":["../../lib/mavesp.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAOrC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,GAAG,CAAY;;IAmBvB;;;;;OAKG;IACG,KAAK,CAAC,WAAW,GAAE,MAAc,EAAE,QAAQ,GAAE,MAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAmB3F;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;;;;;OAMG;IACG,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,GAAE,OAAgC,EAAE,MAAM,GAAE,OAAiC,GAAG,OAAO,CAAC,MAAM,CAAC;IAOjI;;;;;;;OAOG;IACG,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAW,EAAE,KAAK,GAAE,OAAgC,EAAE,MAAM,GAAE,OAAiC,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzK;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASjD,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,qBAAqB;CAI9B"}
1
+ {"version":3,"file":"mavesp.d.ts","sourceRoot":"","sources":["../../lib/mavesp.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAIrC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAA0B,MAAM,WAAW,CAAA;AAG9F,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,GAAG,CAAY;IAEvB;;;OAGG;gBACS,EACV,QAAsC,EACtC,MAAkC,GACnC;;;KAAK;IAiBN;;;;;OAKG;IACG,KAAK,CAAC,WAAW,GAAE,MAAc,EAAE,QAAQ,GAAE,MAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAmB3F;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;;;;;OAMG;IACG,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,GAAE,OAAgC,EAAE,MAAM,GAAE,OAAiC,GAAG,OAAO,CAAC,MAAM,CAAC;IAOjI;;;;;;;OAOG;IACG,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAW,EAAE,KAAK,GAAE,OAAgC,EAAE,MAAM,GAAE,OAAiC,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzK;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASjD,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,qBAAqB;CAI9B"}
@@ -16,7 +16,11 @@ class MavEsp8266 extends events_1.EventEmitter {
16
16
  ip = '';
17
17
  sendPort = 14555;
18
18
  seq = 0;
19
- constructor() {
19
+ /**
20
+ * @param splitter packet splitter instance
21
+ * @param parser packet parser instance
22
+ */
23
+ constructor({ splitter = new mavlink_1.MavLinkPacketSplitter(), parser = new mavlink_1.MavLinkPacketParser(), } = {}) {
20
24
  super();
21
25
  this.input = new stream_1.PassThrough();
22
26
  this.processIncomingUDPData = this.processIncomingUDPData.bind(this);
@@ -24,8 +28,8 @@ class MavEsp8266 extends events_1.EventEmitter {
24
28
  // Create the reader as usual by piping the source stream through the splitter
25
29
  // and packet parser
26
30
  const reader = this.input
27
- .pipe(new mavlink_1.MavLinkPacketSplitter())
28
- .pipe(new mavlink_1.MavLinkPacketParser());
31
+ .pipe(splitter)
32
+ .pipe(parser);
29
33
  reader.on('data', this.processIncomingPacket);
30
34
  }
31
35
  /**
@@ -196,6 +196,7 @@ export declare class MavLinkPacketSplitter extends Transform {
196
196
  protected readonly log: Logger;
197
197
  private buffer;
198
198
  private onCrcError;
199
+ private readonly magicNumbers;
199
200
  private timestamp;
200
201
  private _validPackagesCount;
201
202
  private _unknownPackagesCount;
@@ -205,7 +206,10 @@ export declare class MavLinkPacketSplitter extends Transform {
205
206
  * @param verbose print diagnostic information
206
207
  * @param onCrcError callback executed if there is a CRC error (mostly for debugging)
207
208
  */
208
- constructor(opts?: {}, onCrcError?: BufferCallback);
209
+ constructor(opts?: {}, { onCrcError, magicNumbers }?: {
210
+ onCrcError?: BufferCallback;
211
+ magicNumbers?: Record<string, number>;
212
+ });
209
213
  _transform(chunk: Buffer, encoding: string, callback: TransformCallback): void;
210
214
  protected findStartOfPacket(buffer: Buffer, offset?: number): number | null;
211
215
  private getPacketProtocol;
@@ -263,7 +267,10 @@ export declare class MavLinkPacketParser extends Transform {
263
267
  *
264
268
  * @param input input stream to read from
265
269
  */
266
- export declare function createMavLinkStream(input: Readable, onCrcError: BufferCallback): MavLinkPacketParser;
270
+ export declare function createMavLinkStream(input: Readable, { onCrcError, magicNumbers }?: {
271
+ onCrcError?: BufferCallback;
272
+ magicNumbers?: Record<string, number>;
273
+ }): MavLinkPacketParser;
267
274
  /**
268
275
  * Send a packet to the stream
269
276
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mavlink.d.ts","sourceRoot":"","sources":["../../lib/mavlink.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mavlink.d.ts","sourceRoot":"","sources":["../../lib/mavlink.ts"],"names":[],"mappings":"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"}
@@ -408,6 +408,7 @@ class MavLinkPacketSplitter extends stream_1.Transform {
408
408
  log = logger_1.Logger.getLogger(this);
409
409
  buffer = Buffer.from([]);
410
410
  onCrcError = null;
411
+ magicNumbers;
411
412
  timestamp = null;
412
413
  _validPackagesCount = 0;
413
414
  _unknownPackagesCount = 0;
@@ -417,9 +418,10 @@ class MavLinkPacketSplitter extends stream_1.Transform {
417
418
  * @param verbose print diagnostic information
418
419
  * @param onCrcError callback executed if there is a CRC error (mostly for debugging)
419
420
  */
420
- constructor(opts = {}, onCrcError = () => { }) {
421
+ constructor(opts = {}, { onCrcError = () => { }, magicNumbers = mavlink_mappings_2.MSG_ID_MAGIC_NUMBER } = {}) {
421
422
  super({ ...opts, objectMode: true });
422
423
  this.onCrcError = onCrcError;
424
+ this.magicNumbers = magicNumbers;
423
425
  }
424
426
  _transform(chunk, encoding, callback) {
425
427
  this.buffer = Buffer.concat([this.buffer, chunk]);
@@ -527,8 +529,7 @@ class MavLinkPacketSplitter extends stream_1.Transform {
527
529
  validatePacket(buffer, Protocol) {
528
530
  const protocol = new Protocol();
529
531
  const header = protocol.header(buffer);
530
- // @ts-ignore
531
- const magic = mavlink_mappings_2.MSG_ID_MAGIC_NUMBER[header.msgid];
532
+ const magic = this.magicNumbers[header.msgid];
532
533
  if (magic) {
533
534
  const crc = protocol.crc(buffer);
534
535
  const trim = this.isV2Signed(buffer)
@@ -669,9 +670,9 @@ exports.MavLinkPacketParser = MavLinkPacketParser;
669
670
  *
670
671
  * @param input input stream to read from
671
672
  */
672
- function createMavLinkStream(input, onCrcError) {
673
+ function createMavLinkStream(input, { onCrcError, magicNumbers } = {}) {
673
674
  return input
674
- .pipe(new MavLinkPacketSplitter({}, onCrcError))
675
+ .pipe(new MavLinkPacketSplitter({}, { onCrcError, magicNumbers }))
675
676
  .pipe(new MavLinkPacketParser());
676
677
  }
677
678
  exports.createMavLinkStream = createMavLinkStream;
@@ -9,7 +9,8 @@ async function main() {
9
9
  // start the communication
10
10
  // After this line we have received at least one heartbeat message so we
11
11
  // know what is the remote IP address to send the messages to
12
- await port.start()
12
+ const { ip, sendPort, receivePort } = await port.start()
13
+ console.log(`Connected to: ${ip}, send port: ${sendPort}, receive port ${receivePort}`)
13
14
 
14
15
  // log incoming messages
15
16
  port.on('data', (packet: MavLinkPacket) => {
@@ -7,6 +7,11 @@ import {
7
7
  asluav, development, ualberta,
8
8
  } from '..'
9
9
 
10
+ //
11
+ // Example how to register your own magic numbers:
12
+ //
13
+ // const splitter = new MavLinkPacketSplitter({}, { magicNumbers: { '0': 50 } })
14
+ //
10
15
  const splitter = new MavLinkPacketSplitter()
11
16
  const parser = new MavLinkPacketParser()
12
17
  const file = createReadStream(__dirname + '/GH-5.bin')
@@ -21,7 +21,7 @@ async function main() {
21
21
  // start the communication
22
22
  // After this line we have received at least one heartbeat message so we
23
23
  // know what is the remote IP address to send the messages to
24
- const { ip, sendPort, receivePort } = await port.start(14551)
24
+ const { ip, sendPort, receivePort } = await port.start()
25
25
  console.log(`Connected to: ${ip}, send port: ${sendPort}, receive port ${receivePort}`)
26
26
 
27
27
  // log incoming messages
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-mavlink",
3
- "version": "1.6.0",
3
+ "version": "2.0.0-alpha.0",
4
4
  "author": "Matthias Hryniszak <padcom@gmail.com>",
5
5
  "license": "LGPL",
6
6
  "description": "MavLink definitions and parsing library",