ellipsis-com 0.0.1 → 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.
- package/README.md +2 -2
- package/dist/ComManager.d.ts +0 -5
- package/dist/ComManager.d.ts.map +1 -1
- package/dist/ComManager.js +0 -77
- package/dist/ComManager.js.map +1 -1
- package/dist/ComPort.d.ts +2 -1
- package/dist/ComPort.d.ts.map +1 -1
- package/dist/ComPort.js +39 -15
- package/dist/ComPort.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/package.json +1 -1
- package/src/ComManager.ts +0 -84
- package/src/ComPort.ts +41 -19
- package/src/index.ts +4 -0
- package/src/test/ComManager.test.ts +5 -5
- package/src/test/ComPort.test.ts +11 -10
package/README.md
CHANGED
|
@@ -28,8 +28,8 @@ npm test
|
|
|
28
28
|
## Basic usage
|
|
29
29
|
|
|
30
30
|
```ts
|
|
31
|
-
import { ComManager } from '
|
|
32
|
-
import { ComMacro } from '
|
|
31
|
+
import { ComManager } from 'ellipsis-com'
|
|
32
|
+
import { ComMacro } from 'ellipsis-com'
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
35
|
* This demo works with the arduino-demo sketch.
|
package/dist/ComManager.d.ts
CHANGED
|
@@ -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[][]>;
|
package/dist/ComManager.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/ComManager.js
CHANGED
|
@@ -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);
|
package/dist/ComManager.js.map
CHANGED
|
@@ -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":";;;AAMA,kCAMC;AAZD,2CAAuC;AAEvC,uCAAmC;AAEnC,wCAAwC;AACxC,IAAI,KAA+B,CAAA;AACnC,SAAgB,WAAW,CAAC,MAAM,GAAG,IAAI;IACrC,IAAI,MAAM,EAAE,CAAC;QACT,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC;AACL,CAAC;AACD,WAAW,CAAC,KAAK,CAAC,CAAA;AAElB;;GAEG;AACH,MAAa,UAAU;IAQrB;QAPA,UAAK,GAAc,EAAE,CAAA;QACrB,UAAK,GAAc,EAAE,CAAA;QACrB,oBAAe,GAAG,KAAK,CAAA,CAAC,aAAa;QACrC,mBAAc,GAAuB,SAAS,CAAA,CAAC,gCAAgC;QAEvE,0BAAqB,GAA0B,IAAI,CAAA;IAE5C,CAAC;IAEhB,KAAK,CAAC,IAAI,CAAC,QAAmB,EAAE;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;YACtB,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAA;YACrD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA,CAAC,QAAQ;QAC9C,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAA;IACxB,CAAC;IAEO,eAAe;QACrB,yBAAyB;QACzB,IAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAC3C,CAAC;QAED,2CAA2C;QAC3C,IAAG,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,mCAAmC,CAAC,CAAA;YAC1C,OAAM;QACR,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YACjD,KAAK,CAAC,yBAAyB,CAAC,CAAA;YAChC,IAAI,CAAC;gBACH,IAAI,CAAC,SAAS,EAAE,CAAA;YAClB,CAAC;YAAC,OAAM,GAAG,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAA;YAC9C,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,eAAe,EAAE,CAAA,CAAC,8BAA8B;YACvD,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;IAC1B,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,UAA2B;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAA;QAEnE,IAAG,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YACvD,IAAG,CAAC,IAAI,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,uBAAuB,QAAQ,GAAG,CAAC,CAAA;YACjF,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,UAAoB,CAAA;QAElC,kDAAkD;QAClD,IAAG,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,eAAe,SAAS,CAAC,MAAM,wBAAwB,QAAQ,GAAG,CAAC,CAAA,CAAC,6CAA6C;QAC3J,CAAC;QAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,CAAC,0BAA0B,CAAC,CAAA;QACjC,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,uBAAU,CAAC,IAAI,EAAE,CAAA;YACrC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE;gBACpC,wCAAwC;gBACxC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;gBAC1E,IAAG,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;oBACrC,IAAI,CAAC;wBACH,KAAK,CAAC,iCAAiC,YAAY,CAAC,IAAI,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;wBAClG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;wBAC/B,KAAK,CAAC,+BAA+B,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC;oBAC7D,CAAC;oBAAC,OAAM,GAAG,EAAE,CAAC;wBACZ,KAAK,CAAC,QAAQ,YAAY,CAAC,IAAI,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,qBAAqB,CAAC,CAAA;wBAExF,0BAA0B;wBAC1B,IAAG,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;4BACnC,MAAM,YAAY,CAAC,KAAK,EAAE,CAAA;wBAC5B,CAAC;oBACH,CAAC;oBAED,OAAM;gBACR,CAAC;gBAED,kEAAkE;gBAClE,IAAG,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;oBACtC,KAAK,CAAC,0BAA0B,YAAY,CAAC,IAAI,oCAAoC,CAAC,CAAA;oBACtF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,CAAA;gBACnE,CAAC;gBAED,gBAAgB;gBAChB,MAAM,IAAI,GAAG,IAAI,iBAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBAChC,IAAG,IAAI,CAAC,cAAc,EAAE,CAAC;oBACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAA;gBACpC,CAAC;gBAED,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;gBAClB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAA;gBAClC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAA;gBAClC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;gBACpB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAA;gBAC9B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAA;gBAC5B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAA;gBAE1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAErB,yDAAyD;gBACzD,KAAI,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,uBAAuB;wBACvB,IAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC7B,SAAQ;wBACV,CAAC;wBAED,mDAAmD;wBACnD,sBAAsB;wBACtB,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;wBAEjE,oCAAoC;wBACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;wBAEpB,MAAK;oBACP,CAAC;oBAAC,OAAM,GAAG,EAAE,CAAC;wBACZ,KAAK,CAAC,+BAA+B,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;wBACvD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAClB,SAAQ;oBACV,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC,CAAA;YACH,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,WAAmB,EAAE,MAA4B;QACxE,MAAM,OAAO,GAAe,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,CAAA;QAC3D,KAAI,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;QACnE,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,UAAyB,EAAE,WAAmB,EAAE,MAA6B;QACpG,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAC9C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QACtD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AA/JD,gCA+JC"}
|
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.
|
package/dist/ComPort.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
97
|
-
|
|
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 <
|
|
197
|
-
await new Promise(resolve => setTimeout(() => resolve(),
|
|
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(),
|
|
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
|
-
|
|
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
|
-
|
|
291
|
-
|
|
292
|
-
|
|
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
|
-
|
|
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
|
}
|
package/dist/ComPort.js.map
CHANGED
|
@@ -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/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ComType = exports.ComPort = exports.ComMacro = exports.ComManager = void 0;
|
|
4
|
+
var ComManager_1 = require("./ComManager");
|
|
5
|
+
Object.defineProperty(exports, "ComManager", { enumerable: true, get: function () { return ComManager_1.ComManager; } });
|
|
6
|
+
var ComMacro_1 = require("./ComMacro");
|
|
7
|
+
Object.defineProperty(exports, "ComMacro", { enumerable: true, get: function () { return ComMacro_1.ComMacro; } });
|
|
8
|
+
var ComPort_1 = require("./ComPort");
|
|
9
|
+
Object.defineProperty(exports, "ComPort", { enumerable: true, get: function () { return ComPort_1.ComPort; } });
|
|
10
|
+
var ComType_1 = require("./ComType");
|
|
11
|
+
Object.defineProperty(exports, "ComType", { enumerable: true, get: function () { return ComType_1.ComType; } });
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA"}
|
package/package.json
CHANGED
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
|
-
|
|
105
|
+
|
|
106
106
|
// Successfully opened:
|
|
107
|
-
debug(`Connected to com port ${this.path}.`)
|
|
108
|
-
|
|
109
|
-
|
|
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 <
|
|
213
|
-
await new Promise<void>(resolve => setTimeout(() => resolve(),
|
|
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(),
|
|
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
|
-
|
|
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
|
-
|
|
340
|
-
|
|
341
|
-
|
|
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
|
-
|
|
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
|
}
|
package/src/index.ts
ADDED
|
@@ -34,14 +34,14 @@ const MOCK_PORTS = [
|
|
|
34
34
|
}
|
|
35
35
|
]
|
|
36
36
|
|
|
37
|
-
const mockType: ComType =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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))
|
package/src/test/ComPort.test.ts
CHANGED
|
@@ -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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|