I am using an Estic Handy 2000 Lite Plus controller which supports open protocol. However, it only supports revision 1 of MID 002. Therefore, this is failing when trying to parse for supplierCode as seen below:
OPEN-PROTOCOL 37804: new SessionControlClient OPEN-PROTOCOL 37804: new LinkLayer { stream: <ref *1> Socket { connecting: true, _hadError: false, _parent: null, _host: null, _closeAfterHandlingError: false, _events: { close: undefined, error: undefined, prefinish: undefined, finish: undefined, drain: undefined, data: undefined, end: [Function: onReadableStreamEnd], readable: undefined, connect: [Function], timeout: [Function] }, _readableState: ReadableState { highWaterMark: 16384, buffer: [], bufferIndex: 0, length: 0, pipes: [], awaitDrainWriters: null, [Symbol(kState)]: 1052932 }, _writableState: WritableState { highWaterMark: 16384, length: 0, corked: 0, onwrite: [Function: bound onwrite], writelen: 0, bufferedIndex: 0, pendingcb: 0, [Symbol(kState)]: 17564420, [Symbol(kBufferedValue)]: null }, allowHalfOpen: false, _maxListeners: undefined, _eventsCount: 3, _sockname: null, _pendingData: null, _pendingEncoding: '', server: null, _server: null, timeout: 20000, [Symbol(async_id_symbol)]: 2, [Symbol(kHandle)]: TCP { reading: false, onconnection: null, [Symbol(owner_symbol)]: [Circular *1] }, [Symbol(lastWriteQueueSize)]: 0, [Symbol(timeout)]: Timeout { _idleTimeout: 20000, _idlePrev: [TimersList], _idleNext: [TimersList], _idleStart: 43, _onTimeout: [Function: bound ], _timerArgs: undefined, _repeat: null, _destroyed: false, [Symbol(refed)]: false, [Symbol(kHasPrimitive)]: false, [Symbol(asyncId)]: 4, [Symbol(triggerId)]: 1, [Symbol(kAsyncContextFrame)]: undefined }, [Symbol(kBuffer)]: null, [Symbol(kBufferCb)]: null, [Symbol(kBufferGen)]: null, [Symbol(shapeMode)]: true, [Symbol(kCapture)]: false, [Symbol(kSetNoDelay)]: false, [Symbol(kSetKeepAlive)]: false, [Symbol(kSetKeepAliveInitialDelay)]: 0, [Symbol(kBytesRead)]: 0, [Symbol(kBytesWritten)]: 0 }, timeOut: 3000, retryTimes: 3, rawData: false, disableMidParsing: {}, readableObjectMode: true, writableObjectMode: true } OPEN-PROTOCOL 37804: new OpenProtocolParser OPEN-PROTOCOL 37804: new openProtocolSerializer OPEN-PROTOCOL 37804: new MIDParser OPEN-PROTOCOL 37804: new MIDSerializer OPEN-PROTOCOL 37804: SessionControlClient connect OPEN-PROTOCOL 37804: SessionControlClient sendMidOne OPEN-PROTOCOL 37804: LinkLayer _write { mid: 1, revision: 6 } OPEN-PROTOCOL 37804: MIDSerializer _transform { mid: 1, revision: 6 } OPEN-PROTOCOL 37804: LinkLayer _onDataMidSerializer { mid: 1, revision: 6, payload: <Buffer > } OPEN-PROTOCOL 37804: openProtocolSerializer _transform { mid: 1, revision: 6, payload: <Buffer > } OPEN-PROTOCOL 37804: openProtocolSerializer _transform publish <Buffer 30 30 32 30 30 30 30 31 30 30 36 30 30 31 30 31 30 30 30 30 00> OPEN-PROTOCOL 37804: LinkLayer _onDataOpSerializer <Buffer 30 30 32 30 30 30 30 31 30 30 36 30 30 31 30 31 30 30 30 30 00> OPEN-PROTOCOL 37804: LinkLayer _read 16 OPEN-PROTOCOL 37804: LinkLayer _onDataStream <Buffer 30 30 35 37 30 30 30 32 30 30 36 20 20 20 20 20 20 20 20 20 30 31 30 30 30 30 30 32 30 30 30 33 42 34 2d 32 34 2d 53 41 30 31 30 2d 54 30 34 20 20 20 ... 8 more bytes> OPEN-PROTOCOL 37804: OpenProtocolParser _transform <Buffer 30 30 35 37 30 30 30 32 30 30 36 20 20 20 20 20 20 20 20 20 30 31 30 30 30 30 30 32 30 30 30 33 42 34 2d 32 34 2d 53 41 30 31 30 2d 54 30 34 20 20 20 ... 8 more bytes> OPEN-PROTOCOL 37804: LinkLayer _onDataOpParser { mid: 2, revision: 6, noAck: false, stationID: 1, spindleID: 1, sequenceNumber: 0, messageParts: 0, messageNumber: 0, payload: <Buffer 30 31 30 30 30 30 30 32 30 30 30 33 42 34 2d 32 34 2d 53 41 30 31 30 2d 54 30 34 20 20 20 20 20 20 20 20 20 20> } OPEN-PROTOCOL 37804: new MIDParser _transform { mid: 2, revision: 6, noAck: false, stationID: 1, spindleID: 1, sequenceNumber: 0, messageParts: 0, messageNumber: 0, payload: <Buffer 30 31 30 30 30 30 30 32 30 30 30 33 42 34 2d 32 34 2d 53 41 30 31 30 2d 54 30 34 20 20 20 20 20 20 20 20 20 20> } OPEN-PROTOCOL 37804: new MIDParser _transform err-parser { mid: 2, revision: 6, noAck: false, stationID: 1, spindleID: 1, sequenceNumber: 0, messageParts: 0, messageNumber: 0, payload: { cellID: 0, channelID: 0, controllerName: 'B4-24-SA010-T04' } } Error: invalid key, mid: 2, parameter: supplierCode, expect: 4, receiver: 0 payload: {"cellID":0,"channelID":0,"controllerName":"B4-24-SA010-T04"} at processKey (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\helpers.js:232:12) at Object.parser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\mid\0002.js:54:17) at MIDParser._transform (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:43:29) at Transform._write (node:internal/streams/transform:171:8) at writeOrBuffer (node:internal/streams/writable:572:12) at _write (node:internal/streams/writable:501:10) at Writable.write (node:internal/streams/writable:510:10) at LinkLayer._onDataOpParser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:308:32) at OpenProtocolParser.<anonymous> (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:111:49) at OpenProtocolParser.emit (node:events:518:28) OPEN-PROTOCOL 37804: LinkLayer _onErrorParser Error: Error on parser [Error: invalid key, mid: 2, parameter: supplierCode, expect: 4, receiver: 0 payload: {"cellID":0,"channelID":0,"controllerName":"B4-24-SA010-T04"}] at C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:46:24 at processKey (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\helpers.js:232:9) at Object.parser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\mid\0002.js:54:17) at MIDParser._transform (C:\Users\xxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:43:29) at Transform._write (node:internal/streams/transform:171:8) at writeOrBuffer (node:internal/streams/writable:572:12) at _write (node:internal/streams/writable:501:10) at Writable.write (node:internal/streams/writable:510:10) at LinkLayer._onDataOpParser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:308:32) at OpenProtocolParser.<anonymous> (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:111:49) OPEN-PROTOCOL 37804: SessionControlClient _onErrorLinkLayer Error: Error on parser [Error: invalid key, mid: 2, parameter: supplierCode, expect: 4, receiver: 0 payload: {"cellID":0,"channelID":0,"controllerName":"B4-24-SA010-T04"}] at C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:46:24 at processKey (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\helpers.js:232:9) at Object.parser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\mid\0002.js:54:17) at MIDParser._transform (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:43:29) at Transform._write (node:internal/streams/transform:171:8) at writeOrBuffer (node:internal/streams/writable:572:12) at _write (node:internal/streams/writable:501:10) at Writable.write (node:internal/streams/writable:510:10) at LinkLayer._onDataOpParser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:308:32) at OpenProtocolParser.<anonymous> (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:111:49) OPEN-PROTOCOL 37804: SessionControlClient close Error: Error on parser [Error: invalid key, mid: 2, parameter: supplierCode, expect: 4, receiver: 0 payload: {"cellID":0,"channelID":0,"controllerName":"B4-24-SA010-T04"}] at C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:46:24 at processKey (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\helpers.js:232:9) at Object.parser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\mid\0002.js:54:17) at MIDParser._transform (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:43:29) at Transform._write (node:internal/streams/transform:171:8) at writeOrBuffer (node:internal/streams/writable:572:12) at _write (node:internal/streams/writable:501:10) at Writable.write (node:internal/streams/writable:510:10) at LinkLayer._onDataOpParser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:308:32) at OpenProtocolParser.<anonymous> (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:111:49) OPEN-PROTOCOL 37804: LinkLayer _destroy OPEN-PROTOCOL 37804: SessionControlClient stream_close OPEN-PROTOCOL 37804: SessionControlClient close Error: Stream Close at Socket.<anonymous> (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\sessionControlClient.js:218:24) at Socket.emit (node:events:518:28) at TCP.<anonymous> (node:net:351:12)
I am using an Estic Handy 2000 Lite Plus controller which supports open protocol. However, it only supports revision 1 of MID 002. Therefore, this is failing when trying to parse for supplierCode as seen below:
OPEN-PROTOCOL 37804: new SessionControlClient OPEN-PROTOCOL 37804: new LinkLayer { stream: <ref *1> Socket { connecting: true, _hadError: false, _parent: null, _host: null, _closeAfterHandlingError: false, _events: { close: undefined, error: undefined, prefinish: undefined, finish: undefined, drain: undefined, data: undefined, end: [Function: onReadableStreamEnd], readable: undefined, connect: [Function], timeout: [Function] }, _readableState: ReadableState { highWaterMark: 16384, buffer: [], bufferIndex: 0, length: 0, pipes: [], awaitDrainWriters: null, [Symbol(kState)]: 1052932 }, _writableState: WritableState { highWaterMark: 16384, length: 0, corked: 0, onwrite: [Function: bound onwrite], writelen: 0, bufferedIndex: 0, pendingcb: 0, [Symbol(kState)]: 17564420, [Symbol(kBufferedValue)]: null }, allowHalfOpen: false, _maxListeners: undefined, _eventsCount: 3, _sockname: null, _pendingData: null, _pendingEncoding: '', server: null, _server: null, timeout: 20000, [Symbol(async_id_symbol)]: 2, [Symbol(kHandle)]: TCP { reading: false, onconnection: null, [Symbol(owner_symbol)]: [Circular *1] }, [Symbol(lastWriteQueueSize)]: 0, [Symbol(timeout)]: Timeout { _idleTimeout: 20000, _idlePrev: [TimersList], _idleNext: [TimersList], _idleStart: 43, _onTimeout: [Function: bound ], _timerArgs: undefined, _repeat: null, _destroyed: false, [Symbol(refed)]: false, [Symbol(kHasPrimitive)]: false, [Symbol(asyncId)]: 4, [Symbol(triggerId)]: 1, [Symbol(kAsyncContextFrame)]: undefined }, [Symbol(kBuffer)]: null, [Symbol(kBufferCb)]: null, [Symbol(kBufferGen)]: null, [Symbol(shapeMode)]: true, [Symbol(kCapture)]: false, [Symbol(kSetNoDelay)]: false, [Symbol(kSetKeepAlive)]: false, [Symbol(kSetKeepAliveInitialDelay)]: 0, [Symbol(kBytesRead)]: 0, [Symbol(kBytesWritten)]: 0 }, timeOut: 3000, retryTimes: 3, rawData: false, disableMidParsing: {}, readableObjectMode: true, writableObjectMode: true } OPEN-PROTOCOL 37804: new OpenProtocolParser OPEN-PROTOCOL 37804: new openProtocolSerializer OPEN-PROTOCOL 37804: new MIDParser OPEN-PROTOCOL 37804: new MIDSerializer OPEN-PROTOCOL 37804: SessionControlClient connect OPEN-PROTOCOL 37804: SessionControlClient sendMidOne OPEN-PROTOCOL 37804: LinkLayer _write { mid: 1, revision: 6 } OPEN-PROTOCOL 37804: MIDSerializer _transform { mid: 1, revision: 6 } OPEN-PROTOCOL 37804: LinkLayer _onDataMidSerializer { mid: 1, revision: 6, payload: <Buffer > } OPEN-PROTOCOL 37804: openProtocolSerializer _transform { mid: 1, revision: 6, payload: <Buffer > } OPEN-PROTOCOL 37804: openProtocolSerializer _transform publish <Buffer 30 30 32 30 30 30 30 31 30 30 36 30 30 31 30 31 30 30 30 30 00> OPEN-PROTOCOL 37804: LinkLayer _onDataOpSerializer <Buffer 30 30 32 30 30 30 30 31 30 30 36 30 30 31 30 31 30 30 30 30 00> OPEN-PROTOCOL 37804: LinkLayer _read 16 OPEN-PROTOCOL 37804: LinkLayer _onDataStream <Buffer 30 30 35 37 30 30 30 32 30 30 36 20 20 20 20 20 20 20 20 20 30 31 30 30 30 30 30 32 30 30 30 33 42 34 2d 32 34 2d 53 41 30 31 30 2d 54 30 34 20 20 20 ... 8 more bytes> OPEN-PROTOCOL 37804: OpenProtocolParser _transform <Buffer 30 30 35 37 30 30 30 32 30 30 36 20 20 20 20 20 20 20 20 20 30 31 30 30 30 30 30 32 30 30 30 33 42 34 2d 32 34 2d 53 41 30 31 30 2d 54 30 34 20 20 20 ... 8 more bytes> OPEN-PROTOCOL 37804: LinkLayer _onDataOpParser { mid: 2, revision: 6, noAck: false, stationID: 1, spindleID: 1, sequenceNumber: 0, messageParts: 0, messageNumber: 0, payload: <Buffer 30 31 30 30 30 30 30 32 30 30 30 33 42 34 2d 32 34 2d 53 41 30 31 30 2d 54 30 34 20 20 20 20 20 20 20 20 20 20> } OPEN-PROTOCOL 37804: new MIDParser _transform { mid: 2, revision: 6, noAck: false, stationID: 1, spindleID: 1, sequenceNumber: 0, messageParts: 0, messageNumber: 0, payload: <Buffer 30 31 30 30 30 30 30 32 30 30 30 33 42 34 2d 32 34 2d 53 41 30 31 30 2d 54 30 34 20 20 20 20 20 20 20 20 20 20> } OPEN-PROTOCOL 37804: new MIDParser _transform err-parser { mid: 2, revision: 6, noAck: false, stationID: 1, spindleID: 1, sequenceNumber: 0, messageParts: 0, messageNumber: 0, payload: { cellID: 0, channelID: 0, controllerName: 'B4-24-SA010-T04' } } Error: invalid key, mid: 2, parameter: supplierCode, expect: 4, receiver: 0 payload: {"cellID":0,"channelID":0,"controllerName":"B4-24-SA010-T04"} at processKey (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\helpers.js:232:12) at Object.parser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\mid\0002.js:54:17) at MIDParser._transform (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:43:29) at Transform._write (node:internal/streams/transform:171:8) at writeOrBuffer (node:internal/streams/writable:572:12) at _write (node:internal/streams/writable:501:10) at Writable.write (node:internal/streams/writable:510:10) at LinkLayer._onDataOpParser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:308:32) at OpenProtocolParser.<anonymous> (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:111:49) at OpenProtocolParser.emit (node:events:518:28) OPEN-PROTOCOL 37804: LinkLayer _onErrorParser Error: Error on parser [Error: invalid key, mid: 2, parameter: supplierCode, expect: 4, receiver: 0 payload: {"cellID":0,"channelID":0,"controllerName":"B4-24-SA010-T04"}] at C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:46:24 at processKey (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\helpers.js:232:9) at Object.parser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\mid\0002.js:54:17) at MIDParser._transform (C:\Users\xxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:43:29) at Transform._write (node:internal/streams/transform:171:8) at writeOrBuffer (node:internal/streams/writable:572:12) at _write (node:internal/streams/writable:501:10) at Writable.write (node:internal/streams/writable:510:10) at LinkLayer._onDataOpParser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:308:32) at OpenProtocolParser.<anonymous> (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:111:49) OPEN-PROTOCOL 37804: SessionControlClient _onErrorLinkLayer Error: Error on parser [Error: invalid key, mid: 2, parameter: supplierCode, expect: 4, receiver: 0 payload: {"cellID":0,"channelID":0,"controllerName":"B4-24-SA010-T04"}] at C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:46:24 at processKey (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\helpers.js:232:9) at Object.parser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\mid\0002.js:54:17) at MIDParser._transform (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:43:29) at Transform._write (node:internal/streams/transform:171:8) at writeOrBuffer (node:internal/streams/writable:572:12) at _write (node:internal/streams/writable:501:10) at Writable.write (node:internal/streams/writable:510:10) at LinkLayer._onDataOpParser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:308:32) at OpenProtocolParser.<anonymous> (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:111:49) OPEN-PROTOCOL 37804: SessionControlClient close Error: Error on parser [Error: invalid key, mid: 2, parameter: supplierCode, expect: 4, receiver: 0 payload: {"cellID":0,"channelID":0,"controllerName":"B4-24-SA010-T04"}] at C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:46:24 at processKey (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\helpers.js:232:9) at Object.parser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\mid\0002.js:54:17) at MIDParser._transform (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\MIDParser.js:43:29) at Transform._write (node:internal/streams/transform:171:8) at writeOrBuffer (node:internal/streams/writable:572:12) at _write (node:internal/streams/writable:501:10) at Writable.write (node:internal/streams/writable:510:10) at LinkLayer._onDataOpParser (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:308:32) at OpenProtocolParser.<anonymous> (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\linkLayer.js:111:49) OPEN-PROTOCOL 37804: LinkLayer _destroy OPEN-PROTOCOL 37804: SessionControlClient stream_close OPEN-PROTOCOL 37804: SessionControlClient close Error: Stream Close at Socket.<anonymous> (C:\Users\xxxx\node_modules\@redviking\node-open-protocol\src\sessionControlClient.js:218:24) at Socket.emit (node:events:518:28) at TCP.<anonymous> (node:net:351:12)