ellipsis-com 0.1.0 → 0.1.1

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.
@@ -15,11 +15,6 @@ export declare class ComManager {
15
15
  private scheduleRefresh;
16
16
  getComPort(typeName: string, index_name: number | string): ComPort;
17
17
  scanPorts(): Promise<void>;
18
- /**
19
- * Load the com types from the OpenAPI document.
20
- * TODO: This method needs to be moved into the bb-com-extension.
21
- * @returns
22
- */
23
18
  list(type: string, operationId: string, params: {
24
19
  [key: string]: any;
25
20
  }): Promise<string[][]>;
@@ -1 +1 @@
1
- {"version":3,"file":"ComManager.d.ts","sourceRoot":"","sources":["../src/ComManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,WAAW,CAAC,MAAM,UAAO,QAMxC;AAGD;;GAEG;AACH,qBAAa,UAAU;IACrB,KAAK,EAAE,OAAO,EAAE,CAAK;IACrB,KAAK,EAAE,OAAO,EAAE,CAAK;IACrB,eAAe,SAAQ;IACvB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAY;IAE9C,OAAO,CAAC,qBAAqB,CAA8B;;IAIrD,IAAI,CAAC,KAAK,GAAE,OAAO,EAAO;IAchC,OAAO,CAAC,eAAe;IAyBvB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAqB5D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA2EhC;;;;OAIG;IAgFG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAS1F,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAK3H"}
1
+ {"version":3,"file":"ComManager.d.ts","sourceRoot":"","sources":["../src/ComManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,WAAW,CAAC,MAAM,UAAO,QAMxC;AAGD;;GAEG;AACH,qBAAa,UAAU;IACrB,KAAK,EAAE,OAAO,EAAE,CAAK;IACrB,KAAK,EAAE,OAAO,EAAE,CAAK;IACrB,eAAe,SAAQ;IACvB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAY;IAE9C,OAAO,CAAC,qBAAqB,CAA8B;;IAIrD,IAAI,CAAC,KAAK,GAAE,OAAO,EAAO;IAchC,OAAO,CAAC,eAAe;IAyBvB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAqB5D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA2E1B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAS1F,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAK3H"}
@@ -145,83 +145,6 @@ class ComManager {
145
145
  console.error(`Error scanning serial ports: ${error.message}`);
146
146
  }
147
147
  }
148
- /**
149
- * Load the com types from the OpenAPI document.
150
- * TODO: This method needs to be moved into the bb-com-extension.
151
- * @returns
152
- */
153
- // loadTypes() {
154
- // if(!this.openapiDoc['x-bb-com-types']) {
155
- // debug("No com types found in OpenAPI document.")
156
- // return
157
- // }
158
- // // Iterate over all com types in the OpenAPI document:
159
- // Object.keys(this.openapiDoc['x-bb-com-types']).forEach( (name: string) => {
160
- // const comType = this.openapiDoc['x-bb-com-types'][name]
161
- // // Ensure the baud rate is a number:
162
- // if(typeof comType.baud === 'string') {
163
- // comType.baud = parseInt(comType.baud)
164
- // }
165
- // // Extract all macros that specify this com type by name:
166
- // const macros = {} as {[method: string]: ComMacro[]}
167
- // Object.values(this.openapiDoc.paths).forEach( (path: any) => {
168
- // Object.keys(path)
169
- // .filter(method => ['get', 'post', 'put', 'patch', 'delete'].includes(method))
170
- // .filter(method => path[method]['x-bb-com-macro'])
171
- // .forEach(method => {
172
- // if(!path[method]['x-bb-com-macro'].commands ||
173
- // !path[method]['x-bb-com-macro'].responses ||
174
- // path[method]['x-bb-com-macro'].commands.length !== path[method]['x-bb-com-macro'].responses.length)
175
- // {
176
- // throw new Error('x-bb-com-macro commands and responses must be arrays of the same length in openapi.json at path '+path+'/'+method+'.')
177
- // }
178
- // if(!path[method].operationId) {
179
- // throw new Error(`OperationId missing for method ${method} at path ${path} in openapi.json.`)
180
- // }
181
- // macros[path[method].operationId] = (path[method]['x-bb-com-macro'].commands as string[]).map((c, i) => (
182
- // new ComMacro(c, new RegExp(path[method]['x-bb-com-macro'].responses[i].replace(/^\\/|\\/$/g, ''), 'gm'))
183
- // ))
184
- // })
185
- // })
186
- // // Init macro:
187
- // if(!comType.initCommands || comType.initCommands.length === 0) {
188
- // throw new Error(`Com type '${name}' is missing init commands.`)
189
- // }
190
- // if(!comType.initResponses || comType.initResponses.length === 0) {
191
- // throw new Error(`Com type '${name}' is missing init responses.`)
192
- // }
193
- // if(comType.initCommands.length !== comType.initResponses.length) {
194
- // throw new Error(`Com type '${name}' init commands and responses must be arrays of the same length.`)
195
- // }
196
- // macros.init = []
197
- // comType.initCommands.forEach((cmd: string, i: number) => {
198
- // // Extract flags and strip slashes if present:
199
- // let response = comType.initResponses[i] as string
200
- // let flags = ''
201
- // if(response.startsWith('/')) {
202
- // const lastSlash = response.lastIndexOf('/')
203
- // if(lastSlash < response.length - 1) {
204
- // flags = response.substring(lastSlash + 1)
205
- // }
206
- // response = response.substring(1, lastSlash)
207
- // }
208
- // // Add the macro:
209
- // macros.init.push(
210
- // new ComMacro(
211
- // cmd,
212
- // new RegExp(response, flags)
213
- // )
214
- // )
215
- // })
216
- // // Add the com type:
217
- // this.types.push(new ComType(
218
- // name,
219
- // comType.baud,
220
- // macros as {[method: string]: ComMacro[], init: ComMacro[]}
221
- // ))
222
- // debug(`Loaded com type ${comType.toString()}`);
223
- // })
224
- // }
225
148
  async list(type, operationId, params) {
226
149
  const results = [];
227
150
  const ports = this.ports.filter(p => p.type?.name === type);
@@ -1 +1 @@
1
- {"version":3,"file":"ComManager.js","sourceRoot":"","sources":["../src/ComManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComManager.js","sourceRoot":"","sources":["../src/ComManager.ts"],"names":[],"mappings":"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"}
package/dist/ComPort.d.ts CHANGED
@@ -39,9 +39,10 @@ export declare class ComPort {
39
39
  * set in the ComPort's type. Once successfully open the port will be in
40
40
  * the background state and may be used to write and read.
41
41
  * @param baud The Baud rate.
42
+ * @param startupDelay Optional delay in milliseconds to wait after opening before resolving.
42
43
  * @returns A Promise.
43
44
  */
44
- connect(baud?: number): Promise<void>;
45
+ connect(baud?: number, startupDelay?: number): Promise<void>;
45
46
  /**
46
47
  * Read from the serial port until either the given pattern is
47
48
  * matched in the read data or the ComPort's timeout is reached.
@@ -1 +1 @@
1
- {"version":3,"file":"ComPort.d.ts","sourceRoot":"","sources":["../src/ComPort.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,WAAW,CAAC,MAAM,UAAO,QAMxC;AAGD;;;;;;;;;;GAUG;AACH,qBAAa,OAAO;IAuBG,IAAI,EAAE,MAAM;IAtB/B,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,MAAM,CAAa;IAE3B,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAEhC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAO;IAC1B,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAW;IACjE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAO;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAO;IAC/B,OAAO,EAAE,MAAM,CAAO;IACtB,UAAU,EAAE,MAAM,CAAO;IAGzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;gBAEE,IAAI,EAAE,MAAM;IAE/B,QAAQ;IAIF,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB9C;;;;;;OAMG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC3C;;;;;OAKG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyB1C;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3C;;;;OAIG;IACG,KAAK;IAgBX;;;;;;;OAOG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC/B;;;;;;OAMG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAErF;;;;;;OAMG;IACG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8FpF,YAAY,CAAC,GAAG,EAAE,KAAK;IAiBvB,WAAW,CAAC,IAAI,EAAE,MAAM;CAqD3B"}
1
+ {"version":3,"file":"ComPort.d.ts","sourceRoot":"","sources":["../src/ComPort.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,WAAW,CAAC,MAAM,UAAO,QAMxC;AAGD;;;;;;;;;;GAUG;AACH,qBAAa,OAAO;IAuBG,IAAI,EAAE,MAAM;IAtB/B,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,MAAM,CAAa;IAE3B,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAEhC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAO;IAC1B,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAW;IACjE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAO;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAO;IAC/B,OAAO,EAAE,MAAM,CAAO;IACtB,UAAU,EAAE,MAAM,CAAO;IAGzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;gBAEE,IAAI,EAAE,MAAM;IAE/B,QAAQ;IAIF,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAe9C;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2ClE;;;;;OAKG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyB1C;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3C;;;;OAIG;IACG,KAAK;IAgBX;;;;;;;OAOG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC/B;;;;;;OAMG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAErF;;;;;;OAMG;IACG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0GpF,YAAY,CAAC,GAAG,EAAE,KAAK;IAiBvB,WAAW,CAAC,IAAI,EAAE,MAAM;CAuD3B"}
package/dist/ComPort.js CHANGED
@@ -45,8 +45,7 @@ class ComPort {
45
45
  }
46
46
  async setType(type) {
47
47
  try {
48
- await this.connect(type.baud); // throws an error if connection fails
49
- await sleep(type.startupDelay); // wait for device to startup if needed
48
+ await this.connect(type.baud, type.startupDelay); // throws an error if connection fails
50
49
  await this.send(type.macros.init);
51
50
  if (this.readComplete) {
52
51
  this.type = type;
@@ -65,9 +64,10 @@ class ComPort {
65
64
  * set in the ComPort's type. Once successfully open the port will be in
66
65
  * the background state and may be used to write and read.
67
66
  * @param baud The Baud rate.
67
+ * @param startupDelay Optional delay in milliseconds to wait after opening before resolving.
68
68
  * @returns A Promise.
69
69
  */
70
- async connect(baud) {
70
+ async connect(baud, startupDelay) {
71
71
  if (!baud && !this.type) {
72
72
  throw new Error('No baud rate set while trying to connect. Either pass the baud rate to the connect function or set a ComType first.');
73
73
  }
@@ -90,11 +90,19 @@ class ComPort {
90
90
  reject(err);
91
91
  return;
92
92
  }
93
- // this.resetResponse()
94
93
  // Successfully opened:
95
94
  debug(`Connected to com port ${this.path}.`);
96
- this.state = 'background';
97
- resolve();
95
+ const delay = startupDelay ?? this.type?.startupDelay;
96
+ if (delay) {
97
+ setTimeout(() => {
98
+ this.state = 'background';
99
+ resolve();
100
+ }, delay); // wait for device to startup if needed
101
+ }
102
+ else {
103
+ this.state = 'background';
104
+ resolve();
105
+ }
98
106
  });
99
107
  });
100
108
  }
@@ -192,9 +200,10 @@ class ComPort {
192
200
  await this.connect();
193
201
  }
194
202
  // If currently connecting, first wait until connected:
203
+ const MAX_ATTEMPTS = 10;
195
204
  let attempt = 0;
196
- while (this.state === 'connecting' && attempt < 10) {
197
- await new Promise(resolve => setTimeout(() => resolve(), 100));
205
+ while (this.state === 'connecting' && attempt < MAX_ATTEMPTS) {
206
+ await new Promise(resolve => setTimeout(() => resolve(), this.timeout / MAX_ATTEMPTS));
198
207
  attempt++;
199
208
  }
200
209
  if (this.state === 'connecting') {
@@ -202,11 +211,10 @@ class ComPort {
202
211
  }
203
212
  debug(`Port ${this.path} connected.`);
204
213
  // If busy, wait until available:
205
- const MAX_ATTEMPTS = 10;
206
214
  attempt = 0;
207
215
  while (this.state === 'busy' && attempt < MAX_ATTEMPTS) {
208
216
  debug(`Port ${this.path} is busy - waiting...`);
209
- await new Promise(resolve => setTimeout(() => resolve(), 500));
217
+ await new Promise(resolve => setTimeout(() => resolve(), this.timeout / MAX_ATTEMPTS));
210
218
  attempt++;
211
219
  }
212
220
  if (this.state === 'busy') {
@@ -285,11 +293,25 @@ class ComPort {
285
293
  const responses = [];
286
294
  for (let macro of macros) {
287
295
  // Wait for port the become available:
288
- await this.lockPort();
296
+ try {
297
+ await this.lockPort();
298
+ }
299
+ catch (err) {
300
+ debug(`Error while waiting for port ${this.path} to become available for command '${macro.command}': ${err?.message || err}`);
301
+ this.state = 'background'; // Return to background state to allow logging of incoming data and future requests.
302
+ throw err;
303
+ }
289
304
  // Write the command and wait for the response:
290
- await this.write(macro.command);
291
- const response = await this.read(macro.response);
292
- responses.push(response);
305
+ try {
306
+ await this.write(macro.command);
307
+ const response = await this.read(macro.response);
308
+ responses.push(response);
309
+ }
310
+ catch (err) {
311
+ debug(`Error while sending command '${macro.command}' to port ${this.path}: ${err?.message || err}`);
312
+ this.state = 'background'; // Return to background state to allow logging of incoming data and future requests.
313
+ throw err;
314
+ }
293
315
  }
294
316
  return responses;
295
317
  }
@@ -348,7 +370,9 @@ class ComPort {
348
370
  return;
349
371
  }
350
372
  this.buffer += data.toString();
351
- if (this.readMatch.test(this.buffer.toString().trim())) {
373
+ this.readMatch.lastIndex = 0;
374
+ const matches = this.readMatch.test(this.buffer.toString().trim());
375
+ if (matches) {
352
376
  this.state = 'background';
353
377
  this.readComplete = true;
354
378
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ComPort.js","sourceRoot":"","sources":["../src/ComPort.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComPort.js","sourceRoot":"","sources":["../src/ComPort.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ellipsis-com",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "For the management of serial communication based on commands and responses defined by regular expressions.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/ComManager.ts CHANGED
@@ -161,90 +161,6 @@ export class ComManager {
161
161
  }
162
162
  }
163
163
 
164
- /**
165
- * Load the com types from the OpenAPI document.
166
- * TODO: This method needs to be moved into the bb-com-extension.
167
- * @returns
168
- */
169
- // loadTypes() {
170
- // if(!this.openapiDoc['x-bb-com-types']) {
171
- // debug("No com types found in OpenAPI document.")
172
- // return
173
- // }
174
-
175
- // // Iterate over all com types in the OpenAPI document:
176
- // Object.keys(this.openapiDoc['x-bb-com-types']).forEach( (name: string) => {
177
- // const comType = this.openapiDoc['x-bb-com-types'][name]
178
-
179
- // // Ensure the baud rate is a number:
180
- // if(typeof comType.baud === 'string') {
181
- // comType.baud = parseInt(comType.baud)
182
- // }
183
-
184
- // // Extract all macros that specify this com type by name:
185
- // const macros = {} as {[method: string]: ComMacro[]}
186
- // Object.values(this.openapiDoc.paths).forEach( (path: any) => {
187
- // Object.keys(path)
188
- // .filter(method => ['get', 'post', 'put', 'patch', 'delete'].includes(method))
189
- // .filter(method => path[method]['x-bb-com-macro'])
190
- // .forEach(method => {
191
- // if(!path[method]['x-bb-com-macro'].commands ||
192
- // !path[method]['x-bb-com-macro'].responses ||
193
- // path[method]['x-bb-com-macro'].commands.length !== path[method]['x-bb-com-macro'].responses.length)
194
- // {
195
- // throw new Error('x-bb-com-macro commands and responses must be arrays of the same length in openapi.json at path '+path+'/'+method+'.')
196
- // }
197
- // if(!path[method].operationId) {
198
- // throw new Error(`OperationId missing for method ${method} at path ${path} in openapi.json.`)
199
- // }
200
- // macros[path[method].operationId] = (path[method]['x-bb-com-macro'].commands as string[]).map((c, i) => (
201
- // new ComMacro(c, new RegExp(path[method]['x-bb-com-macro'].responses[i].replace(/^\\/|\\/$/g, ''), 'gm'))
202
- // ))
203
- // })
204
- // })
205
-
206
- // // Init macro:
207
- // if(!comType.initCommands || comType.initCommands.length === 0) {
208
- // throw new Error(`Com type '${name}' is missing init commands.`)
209
- // }
210
- // if(!comType.initResponses || comType.initResponses.length === 0) {
211
- // throw new Error(`Com type '${name}' is missing init responses.`)
212
- // }
213
- // if(comType.initCommands.length !== comType.initResponses.length) {
214
- // throw new Error(`Com type '${name}' init commands and responses must be arrays of the same length.`)
215
- // }
216
- // macros.init = []
217
- // comType.initCommands.forEach((cmd: string, i: number) => {
218
- // // Extract flags and strip slashes if present:
219
- // let response = comType.initResponses[i] as string
220
- // let flags = ''
221
- // if(response.startsWith('/')) {
222
- // const lastSlash = response.lastIndexOf('/')
223
- // if(lastSlash < response.length - 1) {
224
- // flags = response.substring(lastSlash + 1)
225
- // }
226
- // response = response.substring(1, lastSlash)
227
- // }
228
-
229
- // // Add the macro:
230
- // macros.init.push(
231
- // new ComMacro(
232
- // cmd,
233
- // new RegExp(response, flags)
234
- // )
235
- // )
236
- // })
237
-
238
- // // Add the com type:
239
- // this.types.push(new ComType(
240
- // name,
241
- // comType.baud,
242
- // macros as {[method: string]: ComMacro[], init: ComMacro[]}
243
- // ))
244
- // debug(`Loaded com type ${comType.toString()}`);
245
- // })
246
- // }
247
-
248
164
  async list(type: string, operationId: string, params: {[key: string]: any}): Promise<string[][]> {
249
165
  const results: string[][] = []
250
166
  const ports = this.ports.filter(p => p.type?.name === type)
package/src/ComPort.ts CHANGED
@@ -55,8 +55,7 @@ export class ComPort {
55
55
 
56
56
  async setType(type: ComType): Promise<boolean> {
57
57
  try {
58
- await this.connect(type.baud); // throws an error if connection fails
59
- await sleep(type.startupDelay); // wait for device to startup if needed
58
+ await this.connect(type.baud, type.startupDelay); // throws an error if connection fails
60
59
  await this.send(type.macros.init);
61
60
  if (this.readComplete) {
62
61
  this.type = type;
@@ -74,9 +73,10 @@ export class ComPort {
74
73
  * set in the ComPort's type. Once successfully open the port will be in
75
74
  * the background state and may be used to write and read.
76
75
  * @param baud The Baud rate.
76
+ * @param startupDelay Optional delay in milliseconds to wait after opening before resolving.
77
77
  * @returns A Promise.
78
78
  */
79
- async connect(baud?: number): Promise<void> {
79
+ async connect(baud?: number, startupDelay?: number): Promise<void> {
80
80
  if (!baud && !this.type) {
81
81
  throw new Error('No baud rate set while trying to connect. Either pass the baud rate to the connect function or set a ComType first.');
82
82
  }
@@ -98,15 +98,23 @@ export class ComPort {
98
98
  this.port!.open((err: Error | null) => {
99
99
  if (err) {
100
100
  this.state = 'closed';
101
- this.lastError = err.message;
102
- reject(err);
103
- return;
101
+ this.lastError = err.message
102
+ reject(err)
103
+ return
104
104
  }
105
- // this.resetResponse()
105
+
106
106
  // Successfully opened:
107
- debug(`Connected to com port ${this.path}.`);
108
- this.state = 'background';
109
- resolve();
107
+ debug(`Connected to com port ${this.path}.`)
108
+ const delay = startupDelay ?? this.type?.startupDelay
109
+ if(delay) {
110
+ setTimeout(() => {
111
+ this.state = 'background';
112
+ resolve()
113
+ }, delay) // wait for device to startup if needed
114
+ } else {
115
+ this.state = 'background';
116
+ resolve()
117
+ }
110
118
  });
111
119
  });
112
120
  }
@@ -208,9 +216,10 @@ export class ComPort {
208
216
  }
209
217
 
210
218
  // If currently connecting, first wait until connected:
219
+ const MAX_ATTEMPTS = 10;
211
220
  let attempt = 0;
212
- while (this.state === 'connecting' && attempt < 10) {
213
- await new Promise<void>(resolve => setTimeout(() => resolve(), 100));
221
+ while (this.state === 'connecting' && attempt < MAX_ATTEMPTS) {
222
+ await new Promise<void>(resolve => setTimeout(() => resolve(), this.timeout / MAX_ATTEMPTS));
214
223
  attempt++;
215
224
  }
216
225
  if (this.state === 'connecting') {
@@ -219,11 +228,10 @@ export class ComPort {
219
228
  debug(`Port ${this.path} connected.`);
220
229
 
221
230
  // If busy, wait until available:
222
- const MAX_ATTEMPTS = 10;
223
231
  attempt = 0;
224
232
  while (this.state === 'busy' && attempt < MAX_ATTEMPTS) {
225
233
  debug(`Port ${this.path} is busy - waiting...`);
226
- await new Promise<void>(resolve => setTimeout(() => resolve(), 500));
234
+ await new Promise<void>(resolve => setTimeout(() => resolve(), this.timeout / MAX_ATTEMPTS));
227
235
  attempt++;
228
236
  }
229
237
  if (this.state === 'busy') {
@@ -333,12 +341,24 @@ export class ComPort {
333
341
  const responses = [];
334
342
  for (let macro of macros) {
335
343
  // Wait for port the become available:
336
- await this.lockPort()
344
+ try {
345
+ await this.lockPort();
346
+ } catch (err) {
347
+ debug(`Error while waiting for port ${this.path} to become available for command '${macro.command}': ${(err as any)?.message || err}`);
348
+ this.state = 'background'; // Return to background state to allow logging of incoming data and future requests.
349
+ throw err;
350
+ }
337
351
 
338
352
  // Write the command and wait for the response:
339
- await this.write(macro.command);
340
- const response = await this.read(macro.response);
341
- responses.push(response);
353
+ try {
354
+ await this.write(macro.command)
355
+ const response = await this.read(macro.response)
356
+ responses.push(response)
357
+ } catch (err) {
358
+ debug(`Error while sending command '${macro.command}' to port ${this.path}: ${(err as any)?.message || err}`)
359
+ this.state = 'background' // Return to background state to allow logging of incoming data and future requests.
360
+ throw err
361
+ }
342
362
  }
343
363
 
344
364
  return responses;
@@ -405,7 +425,9 @@ export class ComPort {
405
425
  return
406
426
  }
407
427
  this.buffer += data.toString()
408
- if (this.readMatch.test(this.buffer.toString().trim())) {
428
+ this.readMatch.lastIndex = 0
429
+ const matches = this.readMatch.test(this.buffer.toString().trim())
430
+ if (matches) {
409
431
  this.state = 'background'
410
432
  this.readComplete = true
411
433
  }
@@ -34,14 +34,14 @@ const MOCK_PORTS = [
34
34
  }
35
35
  ]
36
36
 
37
- const mockType: ComType = {
38
- name: 'mock',
39
- baud: 9600,
40
- macros: {
37
+ const mockType: ComType = new ComType(
38
+ 'mock',
39
+ 9600,
40
+ {
41
41
  init: [new ComMacro('init', /INITTED/)],
42
42
  help: [new ComMacro('help', /SOME INSTRUCTIONS/)]
43
43
  }
44
- }
44
+ )
45
45
 
46
46
  const sleep = (ms: number) => {
47
47
  return new Promise((resolve) => setTimeout(resolve, ms))
@@ -1,6 +1,7 @@
1
1
  import { ComMacro } from "../ComMacro"
2
2
  import { ComPort } from "../ComPort"
3
3
  import { SerialPort } from "serialport"
4
+ import { ComType } from "../ComType"
4
5
 
5
6
  const sleep = (ms: number) => {
6
7
  return new Promise((resolve) => setTimeout(resolve, ms))
@@ -43,13 +44,13 @@ describe('ComPort', () => {
43
44
  })
44
45
 
45
46
  it('should open on setting type', async () => {
46
- const setTypePromise = comPort.setType({
47
- name: 'serialportMock',
48
- baud: 9600,
49
- macros: {
47
+ const setTypePromise = comPort.setType(new ComType(
48
+ 'serialportMock',
49
+ 9600,
50
+ {
50
51
  init: [new ComMacro('init', /INITTED/)]
51
52
  }
52
- })
53
+ ))
53
54
  expect(comPort.state).toBe('connecting');
54
55
  (SerialPort as any).setNextResponse('INITTED') // simulate response from device
55
56
  await Promise.resolve(setTypePromise) // wait for setType to complete
@@ -83,14 +84,14 @@ describe('ComPort', () => {
83
84
  it('should send a macro base on the operationId', async () => {
84
85
 
85
86
  (SerialPort as any).setNextResponse('INITTED') // simulate response from device
86
- await comPort.setType({
87
- name: 'serialportMock',
88
- baud: 9600,
89
- macros: {
87
+ await comPort.setType(new ComType(
88
+ 'serialportMock',
89
+ 9600,
90
+ {
90
91
  init: [new ComMacro('INIT', /INITTED/)],
91
92
  help: [new ComMacro('HELP', /SOME INSTRUCTIONS/)]
92
93
  }
93
- })
94
+ ))
94
95
  expect(comPort.type).toBeDefined();
95
96
 
96
97
  (SerialPort as any).setNextResponse('SOME INSTRUCTIONS') // simulate response from device