@signalk/streams 6.0.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mdns-ws.d.ts CHANGED
@@ -29,8 +29,10 @@ export default class MdnsWs extends Transform {
29
29
  private readonly dataDebug;
30
30
  private handleContext;
31
31
  private signalkClient?;
32
+ private fetchedMetaPaths;
32
33
  constructor(options: MdnsWsOptions);
33
34
  private connectClient;
35
+ private fetchMetaIfNeeded;
34
36
  _transform(chunk: unknown, encoding: BufferEncoding, done: TransformCallback): void;
35
37
  }
36
38
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"mdns-ws.d.ts","sourceRoot":"","sources":["../src/mdns-ws.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAErD,OAAO,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAElD,UAAU,aAAa;IACrB,GAAG,EAAE;QACH,MAAM,EAAE;YACN,mBAAmB,IAAI,MAAM,CAAA;YAC7B,eAAe,IAAI,MAAM,CAAA;SAC1B,CAAA;QACD,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAChD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAChD,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAOD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,aAAa,CAAC,CAAQ;gBAElB,OAAO,EAAE,aAAa;IAuDlC,OAAO,CAAC,aAAa;IA8ErB,UAAU,CACR,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,iBAAiB,GACtB,IAAI;CAGR"}
1
+ {"version":3,"file":"mdns-ws.d.ts","sourceRoot":"","sources":["../src/mdns-ws.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAGrD,OAAO,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAElD,UAAU,aAAa;IACrB,GAAG,EAAE;QACH,MAAM,EAAE;YACN,mBAAmB,IAAI,MAAM,CAAA;YAC7B,eAAe,IAAI,MAAM,CAAA;SAC1B,CAAA;QACD,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAChD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAChD,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAOD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,aAAa,CAAC,CAAQ;IAC9B,OAAO,CAAC,gBAAgB,CAAoB;gBAEhC,OAAO,EAAE,aAAa;IAuDlC,OAAO,CAAC,aAAa;IA6FrB,OAAO,CAAC,iBAAiB;IA0BzB,UAAU,CACR,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,iBAAiB,GACtB,IAAI;CAGR"}
package/dist/mdns-ws.js CHANGED
@@ -17,6 +17,7 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const stream_1 = require("stream");
19
19
  const client_1 = require("@signalk/client");
20
+ const signalk_schema_1 = require("@signalk/signalk-schema");
20
21
  class MdnsWs extends stream_1.Transform {
21
22
  options;
22
23
  selfHost;
@@ -26,6 +27,7 @@ class MdnsWs extends stream_1.Transform {
26
27
  dataDebug;
27
28
  handleContext;
28
29
  signalkClient;
30
+ fetchedMetaPaths = new Set();
29
31
  constructor(options) {
30
32
  super({ objectMode: true });
31
33
  this.options = options;
@@ -75,6 +77,7 @@ class MdnsWs extends stream_1.Transform {
75
77
  }
76
78
  }
77
79
  connectClient(client) {
80
+ this.fetchedMetaPaths.clear();
78
81
  client
79
82
  .connect()
80
83
  .then(() => {
@@ -135,6 +138,39 @@ class MdnsWs extends stream_1.Transform {
135
138
  });
136
139
  }
137
140
  this.push(data);
141
+ if (data?.updates) {
142
+ for (const update of data.updates) {
143
+ const values = update.values;
144
+ if (values) {
145
+ for (const pv of values) {
146
+ if (!this.fetchedMetaPaths.has(pv.path)) {
147
+ this.fetchedMetaPaths.add(pv.path);
148
+ this.fetchMetaIfNeeded(client, data.context, pv.path);
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ });
155
+ }
156
+ fetchMetaIfNeeded(client, context, path) {
157
+ if ((0, signalk_schema_1.getMetadata)('vessels.self.' + path)) {
158
+ return;
159
+ }
160
+ client
161
+ .API()
162
+ .then((api) => api.getMeta(`/vessels/self/${path.replace(/\./g, '/')}`))
163
+ .then((meta) => {
164
+ if (meta) {
165
+ this.debug(`fetched meta for ${path} from remote`);
166
+ this.push({
167
+ context,
168
+ updates: [{ meta: [{ path, value: meta }] }]
169
+ });
170
+ }
171
+ })
172
+ .catch((err) => {
173
+ this.debug(`failed to fetch meta for ${path}: ${err.message}`);
138
174
  });
139
175
  }
140
176
  _transform(chunk, encoding, done) {
@@ -1 +1 @@
1
- {"version":3,"file":"serialport.d.ts","sourceRoot":"","sources":["../src/serialport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAErD,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAEvD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE;QAEH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;QACrD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QAC7C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;QACrD,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAChD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAChD,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,cAAc,CAAO;IAC7B,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,gBAAgB,CAA6C;gBAEzD,OAAO,EAAE,mBAAmB;IAqDxC,KAAK,IAAI,IAAI;IAwDb,GAAG,IAAI,IAAI;IAWX,UAAU,CACR,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,iBAAiB,GACtB,IAAI;IAKP,OAAO,CAAC,iBAAiB;CAS1B"}
1
+ {"version":3,"file":"serialport.d.ts","sourceRoot":"","sources":["../src/serialport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAErD,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAEvD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE;QAEH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;QACrD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QAC7C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;QACrD,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAChD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAChD,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,cAAc,CAAO;IAC7B,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,gBAAgB,CAA6C;gBAEzD,OAAO,EAAE,mBAAmB;IAyDxC,KAAK,IAAI,IAAI;IAwDb,GAAG,IAAI,IAAI;IAWX,UAAU,CACR,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,iBAAiB,GACtB,IAAI;IAKP,OAAO,CAAC,iBAAiB;CAS1B"}
@@ -28,29 +28,33 @@ class SerialStream extends stream_1.Transform {
28
28
  : [this.options.toStdout].filter(Boolean);
29
29
  const standardOutEventName = `serial-${this.options.providerId}-toStdout`;
30
30
  stdOutEvents.push(standardOutEventName);
31
- const onDrain = () => {
32
- pendingWrites--;
33
- };
34
31
  for (const event of stdOutEvents) {
35
32
  this.options.app.on(event, (d) => {
33
+ if (!this.serial) {
34
+ return;
35
+ }
36
36
  if (pendingWrites > this.maxPendingWrites) {
37
37
  this.debug('Buffer overflow, not writing:' + d);
38
38
  return;
39
39
  }
40
40
  this.debug('Writing:' + d);
41
- if (Buffer.isBuffer(d)) {
42
- this.serial?.write(d);
43
- }
44
- else {
45
- this.serial?.write(d + '\r\n');
46
- }
41
+ const data = Buffer.isBuffer(d) ? d : d + '\r\n';
42
+ const flushed = this.serial.write(data, (err) => {
43
+ if (err) {
44
+ this.debug('Write error: ' + err.message);
45
+ }
46
+ });
47
47
  setImmediate(() => {
48
48
  this.options.app.emit('connectionwrite', {
49
49
  providerId: this.options.providerId
50
50
  });
51
51
  });
52
- pendingWrites++;
53
- this.serial?.drain(onDrain);
52
+ if (!flushed) {
53
+ pendingWrites++;
54
+ this.serial.once('drain', () => {
55
+ pendingWrites--;
56
+ });
57
+ }
54
58
  });
55
59
  }
56
60
  this.options.app.emitPropertyValue('serialport', {
package/dist/tcp.d.ts CHANGED
@@ -20,6 +20,7 @@ export default class TcpStream extends Transform {
20
20
  private readonly options;
21
21
  private readonly debug;
22
22
  private readonly debugData;
23
+ private static readonly DEFAULT_TIMEOUT_SECONDS;
23
24
  private readonly noDataReceivedTimeout;
24
25
  private tcpStream;
25
26
  private reconnector;
package/dist/tcp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tcp.d.ts","sourceRoot":"","sources":["../src/tcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAErD,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAEvD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE;QAEH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;QACrD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QAC7C,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAChD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAChD,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;IAC9C,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,WAAW,CAAsC;gBAE7C,OAAO,EAAE,UAAU;IAW/B,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC;IAmFnD,GAAG,IAAI,IAAI;IAOX,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;CAGR"}
1
+ {"version":3,"file":"tcp.d.ts","sourceRoot":"","sources":["../src/tcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAErD,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAEvD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE;QAEH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;QACrD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QAC7C,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAChD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAChD,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAK;IACpD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;IAC9C,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,WAAW,CAAsC;gBAE7C,OAAO,EAAE,UAAU;IAgB/B,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC;IAmFnD,GAAG,IAAI,IAAI;IAOX,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;CAGR"}
package/dist/tcp.js CHANGED
@@ -10,14 +10,18 @@ class TcpStream extends stream_1.Transform {
10
10
  options;
11
11
  debug;
12
12
  debugData;
13
+ static DEFAULT_TIMEOUT_SECONDS = 60;
13
14
  noDataReceivedTimeout;
14
15
  tcpStream;
15
16
  reconnector = null;
16
17
  constructor(options) {
17
18
  super();
18
19
  this.options = options;
20
+ const parsedTimeout = Number.parseInt((this.options.noDataReceivedTimeout + '').trim());
19
21
  this.noDataReceivedTimeout =
20
- Number.parseInt((this.options.noDataReceivedTimeout + '').trim()) * 1000;
22
+ (isNaN(parsedTimeout)
23
+ ? TcpStream.DEFAULT_TIMEOUT_SECONDS
24
+ : parsedTimeout) * 1000;
21
25
  const createDebug = options.createDebug ?? require('debug');
22
26
  this.debug = createDebug('signalk:streams:tcp');
23
27
  this.debug(`noDataReceivedTimeout:${this.noDataReceivedTimeout}`);
@@ -52,7 +56,7 @@ class TcpStream extends stream_1.Transform {
52
56
  this.reconnector = (0, reconnect_core_1.default)((opts) => {
53
57
  return net_1.default.connect(opts);
54
58
  })({ maxDelay: 5 * 1000 }, (tcpStream) => {
55
- if (!isNaN(this.noDataReceivedTimeout)) {
59
+ if (this.noDataReceivedTimeout > 0) {
56
60
  tcpStream.setTimeout(this.noDataReceivedTimeout);
57
61
  this.debug(`Setting socket idle timeout ${this.options.host}:${this.options.port} ${this.noDataReceivedTimeout}`);
58
62
  tcpStream.on('timeout', () => {
package/dist/udp.d.ts CHANGED
@@ -5,6 +5,7 @@ interface UdpOptions {
5
5
  host?: string;
6
6
  app: {
7
7
  on(event: string, cb: (...args: any[]) => void): void;
8
+ setProviderStatus(id: string, msg: string): void;
8
9
  setProviderError(id: string, msg: string): void;
9
10
  };
10
11
  providerId: string;
package/dist/udp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"udp.d.ts","sourceRoot":"","sources":["../src/udp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAY,MAAM,QAAQ,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAEvD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QAEH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;QACrD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAChD,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,SAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAwB;gBAE1B,OAAO,EAAE,UAAU;IAO/B,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC;IAqCnD,UAAU,CACR,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,iBAAiB,GACtB,IAAI;IAIP,GAAG,IAAI,IAAI;CASZ"}
1
+ {"version":3,"file":"udp.d.ts","sourceRoot":"","sources":["../src/udp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAY,MAAM,QAAQ,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAEvD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QAEH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;QACrD,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAChD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAChD,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,SAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAwB;gBAE1B,OAAO,EAAE,UAAU;IAO/B,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC;IA0CnD,UAAU,CACR,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,iBAAiB,GACtB,IAAI;IAIP,GAAG,IAAI,IAAI;CASZ"}
package/dist/udp.js CHANGED
@@ -34,6 +34,8 @@ class Udp extends stream_1.Transform {
34
34
  });
35
35
  socket.bind(this.options.port, () => {
36
36
  socket.setBroadcast(true);
37
+ const addr = socket.address();
38
+ this.options.app.setProviderStatus(this.options.providerId, `Listening on UDP port ${addr.port}`);
37
39
  });
38
40
  return pipeTo;
39
41
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signalk/streams",
3
- "version": "6.0.0",
3
+ "version": "6.1.0",
4
4
  "description": "Utilities for handling streams of Signal K data",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -51,7 +51,8 @@
51
51
  },
52
52
  "repository": {
53
53
  "type": "git",
54
- "url": "git+https://github.com/SignalK/signalk-server-node.git"
54
+ "url": "git+https://github.com/SignalK/signalk-server.git",
55
+ "directory": "packages/streams"
55
56
  },
56
57
  "keywords": [
57
58
  "Signal",