@robdobsn/raftjs 1.7.2 → 1.7.5

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.
Files changed (198) hide show
  1. package/dist/web/RaftAttributeHandler.d.ts +2 -0
  2. package/dist/web/RaftAttributeHandler.js +107 -5
  3. package/dist/web/RaftAttributeHandler.js.map +1 -1
  4. package/dist/web/RaftConnector.d.ts +2 -1
  5. package/dist/web/RaftConnector.js +14 -0
  6. package/dist/web/RaftConnector.js.map +1 -1
  7. package/dist/web/RaftDeviceInfo.d.ts +6 -0
  8. package/dist/web/RaftMsgHandler.d.ts +1 -1
  9. package/dist/web/RaftMsgHandler.js +1 -1
  10. package/dist/web/RaftMsgHandler.js.map +1 -1
  11. package/dist/web/RaftTypes.d.ts +2 -1
  12. package/dist/web/RaftTypes.js.map +1 -1
  13. package/package.json +5 -2
  14. package/.editorconfig +0 -14
  15. package/.gitattributes +0 -11
  16. package/.nvmrc +0 -1
  17. package/TODO.md +0 -1
  18. package/dist/react-native/RaftAttributeHandler.d.ts +0 -12
  19. package/dist/react-native/RaftAttributeHandler.js +0 -249
  20. package/dist/react-native/RaftAttributeHandler.js.map +0 -1
  21. package/dist/react-native/RaftChannel.d.ts +0 -20
  22. package/dist/react-native/RaftChannel.js +0 -12
  23. package/dist/react-native/RaftChannel.js.map +0 -1
  24. package/dist/react-native/RaftChannelBLE.native.d.ts +0 -95
  25. package/dist/react-native/RaftChannelBLE.native.js +0 -482
  26. package/dist/react-native/RaftChannelBLE.native.js.map +0 -1
  27. package/dist/react-native/RaftChannelBLE.web.d.ts +0 -40
  28. package/dist/react-native/RaftChannelBLE.web.js +0 -300
  29. package/dist/react-native/RaftChannelBLE.web.js.map +0 -1
  30. package/dist/react-native/RaftChannelBLEFactory.d.ts +0 -10
  31. package/dist/react-native/RaftChannelBLEFactory.js +0 -17
  32. package/dist/react-native/RaftChannelBLEFactory.js.map +0 -1
  33. package/dist/react-native/RaftChannelBLEScanner.native.d.ts +0 -18
  34. package/dist/react-native/RaftChannelBLEScanner.native.js +0 -138
  35. package/dist/react-native/RaftChannelBLEScanner.native.js.map +0 -1
  36. package/dist/react-native/RaftChannelSimulated.d.ts +0 -32
  37. package/dist/react-native/RaftChannelSimulated.js +0 -418
  38. package/dist/react-native/RaftChannelSimulated.js.map +0 -1
  39. package/dist/react-native/RaftChannelWebSerial.d.ts +0 -39
  40. package/dist/react-native/RaftChannelWebSerial.js +0 -329
  41. package/dist/react-native/RaftChannelWebSerial.js.map +0 -1
  42. package/dist/react-native/RaftChannelWebSocket.d.ts +0 -30
  43. package/dist/react-native/RaftChannelWebSocket.js +0 -207
  44. package/dist/react-native/RaftChannelWebSocket.js.map +0 -1
  45. package/dist/react-native/RaftCommsStats.d.ts +0 -39
  46. package/dist/react-native/RaftCommsStats.js +0 -128
  47. package/dist/react-native/RaftCommsStats.js.map +0 -1
  48. package/dist/react-native/RaftConnEvents.d.ts +0 -39
  49. package/dist/react-native/RaftConnEvents.js +0 -54
  50. package/dist/react-native/RaftConnEvents.js.map +0 -1
  51. package/dist/react-native/RaftConnector.d.ts +0 -245
  52. package/dist/react-native/RaftConnector.js +0 -621
  53. package/dist/react-native/RaftConnector.js.map +0 -1
  54. package/dist/react-native/RaftCustomAttrHandler.d.ts +0 -4
  55. package/dist/react-native/RaftCustomAttrHandler.js +0 -50
  56. package/dist/react-native/RaftCustomAttrHandler.js.map +0 -1
  57. package/dist/react-native/RaftDeviceInfo.d.ts +0 -63
  58. package/dist/react-native/RaftDeviceInfo.js +0 -36
  59. package/dist/react-native/RaftDeviceInfo.js.map +0 -1
  60. package/dist/react-native/RaftDeviceManager.d.ts +0 -40
  61. package/dist/react-native/RaftDeviceManager.js +0 -499
  62. package/dist/react-native/RaftDeviceManager.js.map +0 -1
  63. package/dist/react-native/RaftDeviceMgrIF.d.ts +0 -15
  64. package/dist/react-native/RaftDeviceMgrIF.js +0 -11
  65. package/dist/react-native/RaftDeviceMgrIF.js.map +0 -1
  66. package/dist/react-native/RaftDeviceMsg.d.ts +0 -9
  67. package/dist/react-native/RaftDeviceMsg.js +0 -11
  68. package/dist/react-native/RaftDeviceMsg.js.map +0 -1
  69. package/dist/react-native/RaftDeviceStates.d.ts +0 -37
  70. package/dist/react-native/RaftDeviceStates.js +0 -60
  71. package/dist/react-native/RaftDeviceStates.js.map +0 -1
  72. package/dist/react-native/RaftFileHandler.d.ts +0 -52
  73. package/dist/react-native/RaftFileHandler.js +0 -502
  74. package/dist/react-native/RaftFileHandler.js.map +0 -1
  75. package/dist/react-native/RaftLog.d.ts +0 -22
  76. package/dist/react-native/RaftLog.js +0 -63
  77. package/dist/react-native/RaftLog.js.map +0 -1
  78. package/dist/react-native/RaftMiniHDLC.d.ts +0 -18
  79. package/dist/react-native/RaftMiniHDLC.js +0 -383
  80. package/dist/react-native/RaftMiniHDLC.js.map +0 -1
  81. package/dist/react-native/RaftMsgHandler.d.ts +0 -62
  82. package/dist/react-native/RaftMsgHandler.js +0 -511
  83. package/dist/react-native/RaftMsgHandler.js.map +0 -1
  84. package/dist/react-native/RaftMsgTrackInfo.d.ts +0 -17
  85. package/dist/react-native/RaftMsgTrackInfo.js +0 -42
  86. package/dist/react-native/RaftMsgTrackInfo.js.map +0 -1
  87. package/dist/react-native/RaftProtocolDefs.d.ts +0 -30
  88. package/dist/react-native/RaftProtocolDefs.js +0 -48
  89. package/dist/react-native/RaftProtocolDefs.js.map +0 -1
  90. package/dist/react-native/RaftStreamHandler.d.ts +0 -38
  91. package/dist/react-native/RaftStreamHandler.js +0 -257
  92. package/dist/react-native/RaftStreamHandler.js.map +0 -1
  93. package/dist/react-native/RaftStruct.d.ts +0 -3
  94. package/dist/react-native/RaftStruct.js +0 -208
  95. package/dist/react-native/RaftStruct.js.map +0 -1
  96. package/dist/react-native/RaftSysTypeManager.d.ts +0 -14
  97. package/dist/react-native/RaftSysTypeManager.js +0 -53
  98. package/dist/react-native/RaftSysTypeManager.js.map +0 -1
  99. package/dist/react-native/RaftSystemType.d.ts +0 -28
  100. package/dist/react-native/RaftSystemType.js +0 -3
  101. package/dist/react-native/RaftSystemType.js.map +0 -1
  102. package/dist/react-native/RaftSystemUtils.d.ts +0 -136
  103. package/dist/react-native/RaftSystemUtils.js +0 -410
  104. package/dist/react-native/RaftSystemUtils.js.map +0 -1
  105. package/dist/react-native/RaftTypes.d.ts +0 -194
  106. package/dist/react-native/RaftTypes.js +0 -153
  107. package/dist/react-native/RaftTypes.js.map +0 -1
  108. package/dist/react-native/RaftUpdateEvents.d.ts +0 -33
  109. package/dist/react-native/RaftUpdateEvents.js +0 -46
  110. package/dist/react-native/RaftUpdateEvents.js.map +0 -1
  111. package/dist/react-native/RaftUpdateManager.d.ts +0 -61
  112. package/dist/react-native/RaftUpdateManager.js +0 -621
  113. package/dist/react-native/RaftUpdateManager.js.map +0 -1
  114. package/dist/react-native/RaftUtils.d.ts +0 -126
  115. package/dist/react-native/RaftUtils.js +0 -467
  116. package/dist/react-native/RaftUtils.js.map +0 -1
  117. package/dist/react-native/RaftWifiTypes.d.ts +0 -23
  118. package/dist/react-native/RaftWifiTypes.js +0 -43
  119. package/dist/react-native/RaftWifiTypes.js.map +0 -1
  120. package/dist/react-native/main.d.ts +0 -25
  121. package/dist/react-native/main.js +0 -51
  122. package/dist/react-native/main.js.map +0 -1
  123. package/eslint.config.mjs +0 -33
  124. package/examples/dashboard/package.json +0 -36
  125. package/examples/dashboard/src/CommandPanel.tsx +0 -147
  126. package/examples/dashboard/src/ConnManager.ts +0 -164
  127. package/examples/dashboard/src/DeviceActionsForm.tsx +0 -133
  128. package/examples/dashboard/src/DeviceAttrsForm.tsx +0 -49
  129. package/examples/dashboard/src/DeviceLineChart.tsx +0 -163
  130. package/examples/dashboard/src/DevicePanel.tsx +0 -166
  131. package/examples/dashboard/src/DevicesPanel.tsx +0 -58
  132. package/examples/dashboard/src/DispLedGrid.tsx +0 -110
  133. package/examples/dashboard/src/DispOneLed.tsx +0 -20
  134. package/examples/dashboard/src/LatencyTest.ts +0 -130
  135. package/examples/dashboard/src/LatencyTestPanel.tsx +0 -92
  136. package/examples/dashboard/src/Main.tsx +0 -234
  137. package/examples/dashboard/src/SettingsManager.ts +0 -67
  138. package/examples/dashboard/src/SettingsScreen.tsx +0 -174
  139. package/examples/dashboard/src/StatusPanel.tsx +0 -71
  140. package/examples/dashboard/src/SystemTypeCog/CogStateInfo.ts +0 -163
  141. package/examples/dashboard/src/SystemTypeCog/SystemTypeCog.ts +0 -91
  142. package/examples/dashboard/src/SystemTypeGeneric/StateInfoGeneric.ts +0 -30
  143. package/examples/dashboard/src/SystemTypeGeneric/SystemTypeGeneric.ts +0 -91
  144. package/examples/dashboard/src/SystemTypeMarty/RICAddOn.ts +0 -70
  145. package/examples/dashboard/src/SystemTypeMarty/RICAddOnBase.ts +0 -33
  146. package/examples/dashboard/src/SystemTypeMarty/RICAddOnManager.ts +0 -342
  147. package/examples/dashboard/src/SystemTypeMarty/RICCommsStats.ts +0 -170
  148. package/examples/dashboard/src/SystemTypeMarty/RICHWElem.ts +0 -123
  149. package/examples/dashboard/src/SystemTypeMarty/RICLEDPatternChecker.ts +0 -207
  150. package/examples/dashboard/src/SystemTypeMarty/RICROSSerial.ts +0 -464
  151. package/examples/dashboard/src/SystemTypeMarty/RICServoFaultDetector.ts +0 -146
  152. package/examples/dashboard/src/SystemTypeMarty/RICStateInfo.ts +0 -97
  153. package/examples/dashboard/src/SystemTypeMarty/RICSystemUtils.ts +0 -371
  154. package/examples/dashboard/src/SystemTypeMarty/RICTypes.ts +0 -20
  155. package/examples/dashboard/src/SystemTypeMarty/SystemTypeMarty.ts +0 -119
  156. package/examples/dashboard/src/index.html +0 -15
  157. package/examples/dashboard/src/index.tsx +0 -13
  158. package/examples/dashboard/src/styles.css +0 -408
  159. package/examples/dashboard/tsconfig.json +0 -18
  160. package/jest.config.js +0 -11
  161. package/src/RaftAttributeHandler.ts +0 -298
  162. package/src/RaftChannel.ts +0 -32
  163. package/src/RaftChannelBLE.native.ts +0 -616
  164. package/src/RaftChannelBLE.web.ts +0 -372
  165. package/src/RaftChannelBLEFactory.ts +0 -13
  166. package/src/RaftChannelBLEScanner.native.ts +0 -184
  167. package/src/RaftChannelSimulated.ts +0 -482
  168. package/src/RaftChannelWebSerial.ts +0 -420
  169. package/src/RaftChannelWebSocket.ts +0 -258
  170. package/src/RaftCommsStats.ts +0 -142
  171. package/src/RaftConnEvents.ts +0 -58
  172. package/src/RaftConnector.ts +0 -743
  173. package/src/RaftCustomAttrHandler.ts +0 -54
  174. package/src/RaftDeviceInfo.ts +0 -102
  175. package/src/RaftDeviceManager.ts +0 -607
  176. package/src/RaftDeviceMgrIF.ts +0 -33
  177. package/src/RaftDeviceMsg.ts +0 -20
  178. package/src/RaftDeviceStates.ts +0 -92
  179. package/src/RaftFileHandler.ts +0 -668
  180. package/src/RaftLog.ts +0 -70
  181. package/src/RaftMiniHDLC.ts +0 -396
  182. package/src/RaftMsgHandler.ts +0 -813
  183. package/src/RaftMsgTrackInfo.ts +0 -51
  184. package/src/RaftProtocolDefs.ts +0 -46
  185. package/src/RaftStreamHandler.ts +0 -328
  186. package/src/RaftStruct.ts +0 -209
  187. package/src/RaftSysTypeManager.ts +0 -60
  188. package/src/RaftSystemType.ts +0 -32
  189. package/src/RaftSystemUtils.ts +0 -487
  190. package/src/RaftTypes.ts +0 -278
  191. package/src/RaftUpdateEvents.ts +0 -48
  192. package/src/RaftUpdateManager.ts +0 -781
  193. package/src/RaftUtils.ts +0 -494
  194. package/src/RaftWifiTypes.ts +0 -36
  195. package/src/main.ts +0 -38
  196. package/testdata/TestDeviceTypeRecs.json +0 -492
  197. package/tsconfig.json +0 -30
  198. package/tsconfig.react-native.json +0 -29
@@ -1,511 +0,0 @@
1
- "use strict";
2
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3
- //
4
- // RaftMsgHandler
5
- // Part of RaftJS
6
- //
7
- // Rob Dobson & Chris Greening 2020-2024
8
- // (C) 2020-2024 All rights reserved
9
- //
10
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RaftMsgResultCode = void 0;
13
- const tslib_1 = require("tslib");
14
- const RaftMsgTrackInfo_1 = require("./RaftMsgTrackInfo");
15
- const RaftLog_1 = tslib_1.__importDefault(require("./RaftLog"));
16
- const RaftUtils_1 = tslib_1.__importDefault(require("./RaftUtils"));
17
- const RaftProtocolDefs_1 = require("./RaftProtocolDefs");
18
- const RaftMiniHDLC_1 = tslib_1.__importDefault(require("./RaftMiniHDLC"));
19
- // Message results
20
- var RaftMsgResultCode;
21
- (function (RaftMsgResultCode) {
22
- RaftMsgResultCode[RaftMsgResultCode["MESSAGE_RESULT_TIMEOUT"] = 0] = "MESSAGE_RESULT_TIMEOUT";
23
- RaftMsgResultCode[RaftMsgResultCode["MESSAGE_RESULT_OK"] = 1] = "MESSAGE_RESULT_OK";
24
- RaftMsgResultCode[RaftMsgResultCode["MESSAGE_RESULT_FAIL"] = 2] = "MESSAGE_RESULT_FAIL";
25
- RaftMsgResultCode[RaftMsgResultCode["MESSAGE_RESULT_UNKNOWN"] = 3] = "MESSAGE_RESULT_UNKNOWN";
26
- })(RaftMsgResultCode || (exports.RaftMsgResultCode = RaftMsgResultCode = {}));
27
- class RaftMsgHandler {
28
- // Constructor
29
- constructor(commsStats) {
30
- // Message numbering and tracking
31
- this._currentMsgNumber = 1;
32
- this._currentMsgHandle = 1;
33
- this._msgTrackInfos = new Array(RaftMsgTrackInfo_1.RaftMsgTrackInfo.MAX_MSG_NUM + 1);
34
- this._msgTrackTimerMs = 50;
35
- this._msgTrackLastCheckIdx = 0;
36
- // report message callback dictionary. Add a callback to subscribe to report messages
37
- this._reportMsgCallbacks = new Map();
38
- // Interface to inform of message results
39
- this._msgResultHandler = null;
40
- // Interface to send messages
41
- this._msgSender = null;
42
- // Raw message mode
43
- this._rawMsgMode = false;
44
- this._commsStats = commsStats;
45
- RaftLog_1.default.debug('RaftMsgHandler constructor');
46
- // Message tracking
47
- for (let i = 0; i < this._msgTrackInfos.length; i++) {
48
- this._msgTrackInfos[i] = new RaftMsgTrackInfo_1.RaftMsgTrackInfo();
49
- }
50
- // Timer for checking messages
51
- setTimeout(async () => {
52
- this._onMsgTrackTimer(true);
53
- }, this._msgTrackTimerMs);
54
- // HDLC used to encode/decode the RICREST protocol
55
- this._miniHDLC = new RaftMiniHDLC_1.default();
56
- this._miniHDLC.setOnRxFrame(this._onHDLCFrameDecode.bind(this));
57
- }
58
- registerForResults(msgResultHandler) {
59
- this._msgResultHandler = msgResultHandler;
60
- }
61
- registerMsgSender(RaftMessageSender) {
62
- this._msgSender = RaftMessageSender;
63
- }
64
- handleNewRxMsg(rxMsg) {
65
- this._miniHDLC.addRxBytes(rxMsg);
66
- // RaftLog.verbose(`handleNewRxMsg len ${rxMsg.length} ${RaftUtils.bufferToHex(rxMsg)}`)
67
- }
68
- // This is currently only for testing and simulated channels
69
- handleNewRxMsgRaw(rxMsg, rxMsgType, rxMsgNum, rxMsgTimeMs) {
70
- var _a;
71
- // Check message types
72
- if (rxMsgType == RaftProtocolDefs_1.RaftCommsMsgTypeCode.MSG_TYPE_RESPONSE) {
73
- // Convert raw Uint8Array to string assuming UTF-8
74
- const restStr = new TextDecoder('utf-8').decode(rxMsg);
75
- this._handleResponseMessages(restStr, rxMsgNum);
76
- }
77
- else if (rxMsgType == RaftProtocolDefs_1.RaftCommsMsgTypeCode.MSG_TYPE_REPORT) {
78
- // Convert raw Uint8Array to string assuming UTF-8
79
- const restStr = new TextDecoder('utf-8').decode(rxMsg);
80
- this._handleReportMessages(restStr);
81
- }
82
- else {
83
- (_a = this._msgResultHandler) === null || _a === void 0 ? void 0 : _a.onRxOtherMsgType(rxMsg, rxMsgTimeMs);
84
- }
85
- }
86
- reportMsgCallbacksSet(callbackName, callback) {
87
- this._reportMsgCallbacks.set(callbackName, callback);
88
- }
89
- reportMsgCallbacksDelete(callbackName) {
90
- this._reportMsgCallbacks.delete(callbackName);
91
- }
92
- setRawMsgMode(isRawMode) {
93
- this._rawMsgMode = isRawMode;
94
- RaftLog_1.default.debug(`setRawMsgMode ${isRawMode}`);
95
- }
96
- _onHDLCFrameDecode(rxMsg, frameTimeMs) {
97
- var _a, _b;
98
- // Add to stats
99
- this._commsStats.msgRx();
100
- // Validity
101
- if (rxMsg.length < RaftProtocolDefs_1.RICSERIAL_PAYLOAD_POS) {
102
- this._commsStats.msgTooShort();
103
- return;
104
- }
105
- // RaftLog.verbose(`_onHDLCFrameDecode len ${rxMsg.length}`);
106
- // Decode the RICFrame header
107
- let rxMsgNum = rxMsg[RaftProtocolDefs_1.RICSERIAL_MSG_NUM_POS] & 0xff;
108
- let rxProtocol = rxMsg[RaftProtocolDefs_1.RICSERIAL_PROTOCOL_POS] & 0x3f;
109
- let rxMsgType = (rxMsg[RaftProtocolDefs_1.RICSERIAL_PROTOCOL_POS] >> 6) & 0x03;
110
- // Check for RICREST bridging protocol
111
- if (rxProtocol == RaftProtocolDefs_1.RaftCommsMsgProtocol.MSG_PROTOCOL_BRIDGE_RICREST) {
112
- // Debug
113
- const bridgeID = rxMsg.length > RaftProtocolDefs_1.RICREST_BRIDGE_ID_POS ? rxMsg[RaftProtocolDefs_1.RICREST_BRIDGE_ID_POS] : 0;
114
- RaftLog_1.default.info(`_onHDLCFrameDecode RICREST bridge rx bridgeID ${bridgeID} len ${rxMsg.length}`);
115
- // Simply remove the wrapper
116
- rxMsg = rxMsg.slice(RaftProtocolDefs_1.RICREST_BRIDGE_PAYLOAD_POS);
117
- // Get the message info from the unwrapped message
118
- rxMsgNum = rxMsg[RaftProtocolDefs_1.RICSERIAL_MSG_NUM_POS] & 0xff;
119
- rxProtocol = rxMsg[RaftProtocolDefs_1.RICSERIAL_PROTOCOL_POS] & 0x3f;
120
- rxMsgType = (rxMsg[RaftProtocolDefs_1.RICSERIAL_PROTOCOL_POS] >> 6) & 0x03;
121
- }
122
- // Check for RICREST protocol
123
- if (rxProtocol == RaftProtocolDefs_1.RaftCommsMsgProtocol.MSG_PROTOCOL_RICREST) {
124
- RaftLog_1.default.verbose(`_onHDLCFrameDecode RICREST rx msgNum ${rxMsgNum} msgDirn ${rxMsgType} ${RaftUtils_1.default.bufferToHex(rxMsg)}`);
125
- // Extract payload
126
- const ricRestElemCode = rxMsg[RaftProtocolDefs_1.RICSERIAL_PAYLOAD_POS + RaftProtocolDefs_1.RICREST_REST_ELEM_CODE_POS] & 0xff;
127
- if (ricRestElemCode == RaftProtocolDefs_1.RICRESTElemCode.RICREST_ELEM_CODE_URL ||
128
- ricRestElemCode == RaftProtocolDefs_1.RICRESTElemCode.RICREST_ELEM_CODE_CMDRESPJSON ||
129
- ricRestElemCode == RaftProtocolDefs_1.RICRESTElemCode.RICREST_ELEM_CODE_COMMAND_FRAME) {
130
- // These are all text-based messages
131
- const restStr = RaftUtils_1.default.getStringFromBuffer(rxMsg, RaftProtocolDefs_1.RICSERIAL_PAYLOAD_POS + RaftProtocolDefs_1.RICREST_HEADER_PAYLOAD_POS, rxMsg.length - RaftProtocolDefs_1.RICSERIAL_PAYLOAD_POS - RaftProtocolDefs_1.RICREST_HEADER_PAYLOAD_POS - 1);
132
- RaftLog_1.default.verbose(`_onHDLCFrameDecode RICREST rx elemCode ${ricRestElemCode} ${restStr}`);
133
- // Check message types
134
- if (rxMsgType == RaftProtocolDefs_1.RaftCommsMsgTypeCode.MSG_TYPE_RESPONSE) {
135
- // Handle response messages
136
- this._handleResponseMessages(restStr, rxMsgNum);
137
- }
138
- else if (rxMsgType == RaftProtocolDefs_1.RaftCommsMsgTypeCode.MSG_TYPE_REPORT) {
139
- // Handle report messages
140
- this._handleReportMessages(restStr);
141
- }
142
- }
143
- else {
144
- const binMsgLen = rxMsg.length - RaftProtocolDefs_1.RICSERIAL_PAYLOAD_POS - RaftProtocolDefs_1.RICREST_HEADER_PAYLOAD_POS;
145
- RaftLog_1.default.verbose(`_onHDLCFrameDecode RICREST rx binary message elemCode ${ricRestElemCode} len ${binMsgLen} data ${RaftUtils_1.default.bufferToHex(rxMsg)}`);
146
- if (ricRestElemCode == RaftProtocolDefs_1.RICRESTElemCode.RICREST_ELEM_CODE_FILEBLOCK) {
147
- const filePos = RaftUtils_1.default.getBEUint32FromBuf(rxMsg, RaftProtocolDefs_1.RICSERIAL_PAYLOAD_POS + RaftProtocolDefs_1.RICREST_HEADER_PAYLOAD_POS + RaftProtocolDefs_1.RICREST_FILEBLOCK_FILEPOS_POS);
148
- (_a = this._msgResultHandler) === null || _a === void 0 ? void 0 : _a.onRxFileBlock(filePos, rxMsg.slice(RaftProtocolDefs_1.RICSERIAL_PAYLOAD_POS + RaftProtocolDefs_1.RICREST_HEADER_PAYLOAD_POS + RaftProtocolDefs_1.RICREST_FILEBLOCK_PAYLOAD_POS, rxMsg.length));
149
- }
150
- }
151
- // Other message types
152
- }
153
- else {
154
- (_b = this._msgResultHandler) === null || _b === void 0 ? void 0 : _b.onRxOtherMsgType(rxMsg, frameTimeMs);
155
- }
156
- }
157
- _handleResponseMessages(restStr, rxMsgNum) {
158
- try {
159
- let msgRsltCode = RaftMsgResultCode.MESSAGE_RESULT_UNKNOWN;
160
- const msgRsltJsonObj = JSON.parse(restStr);
161
- if ('rslt' in msgRsltJsonObj) {
162
- const rsltStr = msgRsltJsonObj.rslt.toLowerCase();
163
- if (rsltStr === 'ok') {
164
- RaftLog_1.default.verbose(`_handleResponseMessages RICREST rslt Ok ${rxMsgNum == 0 ? "unnumbered" : "msgNum " + rxMsgNum.toString()} resp ${msgRsltJsonObj.rslt}`);
165
- msgRsltCode = RaftMsgResultCode.MESSAGE_RESULT_OK;
166
- }
167
- else if (rsltStr === 'fail') {
168
- msgRsltCode = RaftMsgResultCode.MESSAGE_RESULT_FAIL;
169
- RaftLog_1.default.warn(`_handleResponseMessages RICREST rslt fail ${rxMsgNum == 0 ? "unnumbered" : "msgNum " + rxMsgNum.toString()} resp ${restStr}`);
170
- }
171
- else {
172
- RaftLog_1.default.warn(`_handleResponseMessages RICREST rslt not recognized ${rxMsgNum == 0 ? "unnumbered" : "msgNum " + rxMsgNum.toString()}resp ${restStr}`);
173
- }
174
- }
175
- else {
176
- RaftLog_1.default.warn(`_handleResponseMessages RICREST response doesn't contain rslt ${rxMsgNum == 0 ? "unnumbered" : "msgNum " + rxMsgNum.toString()}resp ${restStr}`);
177
- }
178
- // Handle matching of request and response
179
- this.msgTrackingRxRespMsg(rxMsgNum, msgRsltCode, msgRsltJsonObj);
180
- }
181
- catch (excp) {
182
- if (excp instanceof Error) {
183
- RaftLog_1.default.warn(`_handleResponseMessages Failed to parse JSON ${rxMsgNum == 0 ? "unnumbered" : "msgNum " + rxMsgNum.toString()} JSON STR ${restStr} resp ${excp.toString()}`);
184
- }
185
- }
186
- }
187
- _handleReportMessages(restStr) {
188
- try {
189
- const reportMsg = JSON.parse(restStr);
190
- reportMsg.timeReceived = Date.now();
191
- RaftLog_1.default.debug(`_handleReportMessages ${JSON.stringify(reportMsg)}`);
192
- this._reportMsgCallbacks.forEach((callback) => callback(reportMsg));
193
- }
194
- catch (excp) {
195
- if (excp instanceof Error) {
196
- RaftLog_1.default.warn(`_handleReportMessages Failed to parse JSON report ${excp.toString()}`);
197
- }
198
- }
199
- }
200
- async sendRICRESTURL(cmdStr, bridgeID = undefined, msgTimeoutMs = undefined) {
201
- // Send
202
- return this.sendRICREST(cmdStr, RaftProtocolDefs_1.RICRESTElemCode.RICREST_ELEM_CODE_URL, bridgeID, msgTimeoutMs);
203
- }
204
- async sendRICRESTCmdFrame(cmdStr, bridgeID = undefined, msgTimeoutMs = undefined) {
205
- // Send
206
- return this.sendRICREST(cmdStr, RaftProtocolDefs_1.RICRESTElemCode.RICREST_ELEM_CODE_COMMAND_FRAME, bridgeID, msgTimeoutMs);
207
- }
208
- async sendRICREST(cmdStr, ricRESTElemCode, bridgeID = undefined, msgTimeoutMs = undefined) {
209
- // Put cmdStr into buffer
210
- const cmdStrTerm = new Uint8Array(cmdStr.length + 1);
211
- RaftUtils_1.default.addStringToBuffer(cmdStrTerm, cmdStr, 0);
212
- cmdStrTerm[cmdStrTerm.length - 1] = 0;
213
- // Send
214
- return this.sendRICRESTBytes(cmdStrTerm, ricRESTElemCode, true, bridgeID, msgTimeoutMs);
215
- }
216
- async sendRICRESTNoResp(cmdStr, ricRESTElemCode, bridgeID = undefined) {
217
- // Check there is a sender
218
- if (!this._msgSender) {
219
- return false;
220
- }
221
- // Check for raw message mode (used for testing and simulated channels)
222
- if (this._rawMsgMode) {
223
- return this._msgSender.sendTxMsgRaw(cmdStr);
224
- }
225
- // Put cmdStr into buffer
226
- const cmdBytes = new Uint8Array(cmdStr.length + 1);
227
- RaftUtils_1.default.addStringToBuffer(cmdBytes, cmdStr, 0);
228
- cmdBytes[cmdBytes.length - 1] = 0;
229
- // Form message
230
- const cmdMsg = new Uint8Array(cmdBytes.length + RaftProtocolDefs_1.RICREST_HEADER_PAYLOAD_POS);
231
- cmdMsg[RaftProtocolDefs_1.RICREST_REST_ELEM_CODE_POS] = ricRESTElemCode;
232
- cmdMsg.set(cmdBytes, RaftProtocolDefs_1.RICREST_HEADER_PAYLOAD_POS);
233
- // Frame the message
234
- let framedMsg = this.frameCommsMsg(cmdMsg, RaftProtocolDefs_1.RaftCommsMsgTypeCode.MSG_TYPE_COMMAND, RaftProtocolDefs_1.RaftCommsMsgProtocol.MSG_PROTOCOL_RICREST, true);
235
- // Wrap if bridged
236
- if (bridgeID !== undefined) {
237
- framedMsg = this.bridgeCommsMsg(framedMsg, bridgeID);
238
- }
239
- // Encode like HDLC
240
- const encodedMsg = this._miniHDLC.encode(framedMsg);
241
- // Send
242
- if (!await this._msgSender.sendTxMsg(encodedMsg, false)) {
243
- RaftLog_1.default.warn(`sendRICRESTNoResp failed to send message`);
244
- this._commsStats.recordMsgNoConnection();
245
- }
246
- return true;
247
- }
248
- async sendRICRESTBytes(cmdBytes, ricRESTElemCode, withResponse, bridgeID = undefined, msgTimeoutMs = undefined) {
249
- // Form message
250
- const cmdMsg = new Uint8Array(cmdBytes.length + RaftProtocolDefs_1.RICREST_HEADER_PAYLOAD_POS);
251
- cmdMsg[RaftProtocolDefs_1.RICREST_REST_ELEM_CODE_POS] = ricRESTElemCode;
252
- cmdMsg.set(cmdBytes, RaftProtocolDefs_1.RICREST_HEADER_PAYLOAD_POS);
253
- // Send
254
- return this.sendMsgAndWaitForReply(cmdMsg, RaftProtocolDefs_1.RaftCommsMsgTypeCode.MSG_TYPE_COMMAND, RaftProtocolDefs_1.RaftCommsMsgProtocol.MSG_PROTOCOL_RICREST, withResponse, bridgeID, msgTimeoutMs);
255
- }
256
- async sendMsgAndWaitForReply(msgPayload, msgDirection, msgProtocol, withResponse, bridgeID = undefined, msgTimeoutMs) {
257
- // Check there is a sender
258
- if (!this._msgSender) {
259
- throw new Error('sendMsgAndWaitForReply failed no sender');
260
- }
261
- // Check for raw message mode (used for testing and simulated channels)
262
- if (this._rawMsgMode) {
263
- return this._msgSender.sendTxMsgRawAndWaitForReply(msgPayload);
264
- }
265
- // Frame the message
266
- let framedMsg = this.frameCommsMsg(msgPayload, msgDirection, msgProtocol, true);
267
- // Wrap if bridged
268
- if (bridgeID !== undefined) {
269
- framedMsg = this.bridgeCommsMsg(framedMsg, bridgeID);
270
- // RaftLog.debug(`sendMsgAndWaitForReply - bridged idx ${bridgeID}`)
271
- }
272
- else {
273
- // RaftLog.debug(`sendMsgAndWaitForReply - not bridged`)
274
- }
275
- // Encode like HDLC
276
- const encodedMsg = this._miniHDLC.encode(framedMsg);
277
- // Debug
278
- // RaftLog.debug(
279
- // `sendMsgAndWaitForReply ${RaftUtils.bufferToHex(encodedMsg)}`,
280
- // );
281
- // Return a promise that will be resolved when a reply is received or timeout occurs
282
- const promise = new Promise((resolve, reject) => {
283
- // Update message tracking
284
- this.msgTrackingTxCmdMsg(encodedMsg, withResponse, bridgeID, msgTimeoutMs, resolve, reject);
285
- this._currentMsgHandle++;
286
- });
287
- return promise;
288
- }
289
- frameCommsMsg(msgPayload, msgDirection, msgProtocol, isNumbered) {
290
- // Header
291
- const msgBuf = new Uint8Array(msgPayload.length + RaftProtocolDefs_1.RICSERIAL_PAYLOAD_POS);
292
- msgBuf[RaftProtocolDefs_1.RICSERIAL_MSG_NUM_POS] = isNumbered ? this._currentMsgNumber & 0xff : 0;
293
- msgBuf[RaftProtocolDefs_1.RICSERIAL_PROTOCOL_POS] = (msgDirection << 6) + msgProtocol;
294
- // Payload
295
- msgBuf.set(msgPayload, RaftProtocolDefs_1.RICSERIAL_PAYLOAD_POS);
296
- // Return framed message
297
- return msgBuf;
298
- }
299
- bridgeCommsMsg(msgBuf, bridgeID) {
300
- //
301
- const bridgedMsg = new Uint8Array(msgBuf.length + RaftProtocolDefs_1.RICREST_BRIDGE_PAYLOAD_POS);
302
- // Bridged messages are unnumbered (msgNum == 0)
303
- bridgedMsg[RaftProtocolDefs_1.RICSERIAL_MSG_NUM_POS] = 0;
304
- bridgedMsg[RaftProtocolDefs_1.RICSERIAL_PROTOCOL_POS] = (RaftProtocolDefs_1.RaftCommsMsgTypeCode.MSG_TYPE_COMMAND << 6) + RaftProtocolDefs_1.RaftCommsMsgProtocol.MSG_PROTOCOL_BRIDGE_RICREST;
305
- bridgedMsg[RaftProtocolDefs_1.RICREST_BRIDGE_ID_POS] = bridgeID;
306
- bridgedMsg.set(msgBuf, RaftProtocolDefs_1.RICREST_BRIDGE_PAYLOAD_POS);
307
- return bridgedMsg;
308
- }
309
- msgTrackingTxCmdMsg(msgFrame, withResponse, bridgeID = undefined, msgTimeoutMs, resolve, reject) {
310
- // Record message re-use of number
311
- if (this._msgTrackInfos[this._currentMsgNumber].msgOutstanding) {
312
- this._commsStats.recordMsgNumCollision();
313
- }
314
- // Set tracking info
315
- this._msgTrackInfos[this._currentMsgNumber].set(true, msgFrame, withResponse, bridgeID, this._currentMsgHandle, msgTimeoutMs, resolve, reject);
316
- // Debug
317
- RaftLog_1.default.debug(`msgTrackingTxCmdMsg msgNum ${this._currentMsgNumber} bridgeID ${bridgeID} msg ${RaftUtils_1.default.bufferToHex(msgFrame)} msgOutstanding ${this._msgTrackInfos[this._currentMsgNumber].msgOutstanding}`);
318
- // Stats
319
- this._commsStats.msgTx();
320
- // Bump msg number
321
- if (this._currentMsgNumber == RaftMsgTrackInfo_1.RaftMsgTrackInfo.MAX_MSG_NUM) {
322
- this._currentMsgNumber = 1;
323
- }
324
- else {
325
- this._currentMsgNumber++;
326
- }
327
- }
328
- msgTrackingRxRespMsg(msgNum, msgRsltCode, msgRsltJsonObj) {
329
- // Check message number
330
- if (msgNum == 0) {
331
- // Callback on unnumbered message
332
- if (this._msgResultHandler !== null)
333
- this._msgResultHandler.onRxUnnumberedMsg(msgRsltJsonObj);
334
- return;
335
- }
336
- if (msgNum > RaftMsgTrackInfo_1.RaftMsgTrackInfo.MAX_MSG_NUM) {
337
- RaftLog_1.default.warn('msgTrackingRxRespMsg msgNum > 255');
338
- return;
339
- }
340
- if (!this._msgTrackInfos[msgNum].msgOutstanding) {
341
- RaftLog_1.default.warn(`msgTrackingRxRespMsg unmatched msgNum ${msgNum}`);
342
- this._commsStats.recordMsgNumUnmatched();
343
- return;
344
- }
345
- // Handle message
346
- RaftLog_1.default.verbose(`msgTrackingRxRespMsg Message response received msgNum ${msgNum}`);
347
- this._commsStats.recordMsgResp(Date.now() - this._msgTrackInfos[msgNum].msgSentMs);
348
- this._msgCompleted(msgNum, msgRsltCode, msgRsltJsonObj);
349
- }
350
- _msgCompleted(msgNum, msgRsltCode, msgRsltObj) {
351
- // Lookup message in tracking
352
- const msgHandle = this._msgTrackInfos[msgNum].msgHandle;
353
- this._msgTrackInfos[msgNum].msgOutstanding = false;
354
- // Check if message result handler should be informed
355
- if (this._msgResultHandler !== null) {
356
- this._msgResultHandler.onRxReply(msgHandle, msgRsltCode, msgRsltObj);
357
- }
358
- // Handle reply
359
- // if (msgRsltCode === RaftMsgResultCode.MESSAGE_RESULT_OK) {
360
- const resolve = this._msgTrackInfos[msgNum].resolve;
361
- if (resolve) {
362
- RaftLog_1.default.verbose(`_msgCompleted msgNum ${msgNum} result ${msgRsltCode.toString()} ${JSON.stringify(msgRsltObj)}`);
363
- resolve(msgRsltObj);
364
- }
365
- // } else {
366
- // const reject = this._msgTrackInfos[msgNum].reject;
367
- // if (reject) {
368
- // // eslint-disable-next-line @typescript-eslint/no-explicit-any
369
- // try {
370
- // RaftLog.debug(`_msgCompleted reject rsltCode ${msgRsltCode}`);
371
- // // (reject as any)(new Error(`Message failed msgNum ${msgNum} rslt ${msgRsltCode}`));
372
- // } catch (excp: unknown) {
373
- // RaftLog.warn(`_msgCompleted reject ${excp}`);
374
- // }
375
- // }
376
- // }
377
- // No longer waiting for reply
378
- this._msgTrackInfos[msgNum].resolve = null;
379
- this._msgTrackInfos[msgNum].reject = null;
380
- }
381
- // Check message timeouts
382
- async _onMsgTrackTimer(chainRecall) {
383
- if (this._msgSender !== null) {
384
- // Handle message tracking
385
- for (let loopIdx = 0; loopIdx < this._msgTrackInfos.length; loopIdx++) {
386
- // Index to check
387
- const checkIdx = this._msgTrackLastCheckIdx;
388
- this._msgTrackLastCheckIdx = (checkIdx + 1) % this._msgTrackInfos.length;
389
- // Check if message is outstanding
390
- if (!this._msgTrackInfos[checkIdx].msgOutstanding)
391
- continue;
392
- // Get message timeout and ensure valid
393
- let msgTimeoutMs = this._msgTrackInfos[checkIdx].msgTimeoutMs;
394
- if (msgTimeoutMs === undefined) {
395
- msgTimeoutMs = RaftMsgTrackInfo_1.RaftMsgTrackInfo.MSG_RESPONSE_TIMEOUT_MS;
396
- }
397
- // Check for timeout (or never sent)
398
- if ((this._msgTrackInfos[checkIdx].retryCount === 0) || (Date.now() > this._msgTrackInfos[checkIdx].msgSentMs + (msgTimeoutMs * (this._msgTrackInfos[checkIdx].retryCount)))) {
399
- // Debug
400
- RaftLog_1.default.verbose(`msgTrackTimer msgNum ${checkIdx} ${this._msgTrackInfos[checkIdx].retryCount === 0 ? 'first send' : 'timeout - retrying'} ${RaftUtils_1.default.bufferToHex(this._msgTrackInfos[checkIdx].msgFrame)}`);
401
- // RaftLog.verbose(`msgTrackTimer msg ${RaftUtils.bufferToHex(this._msgTrackInfos[i].msgFrame)}`);
402
- // Handle timeout (or first send)
403
- if (this._msgTrackInfos[checkIdx].retryCount < RaftMsgTrackInfo_1.RaftMsgTrackInfo.MSG_RETRY_COUNT) {
404
- this._msgTrackInfos[checkIdx].retryCount++;
405
- try {
406
- // Send the message
407
- if (!await this._msgSender.sendTxMsg(this._msgTrackInfos[checkIdx].msgFrame, this._msgTrackInfos[checkIdx].withResponse)) {
408
- RaftLog_1.default.warn(`msgTrackTimer Message send failed msgNum ${checkIdx} ${RaftUtils_1.default.bufferToHex(this._msgTrackInfos[checkIdx].msgFrame)}`);
409
- this._msgCompleted(checkIdx, RaftMsgResultCode.MESSAGE_RESULT_FAIL, null);
410
- this._commsStats.recordMsgNoConnection();
411
- }
412
- // Message sent ok so break here
413
- break;
414
- }
415
- catch (error) {
416
- RaftLog_1.default.warn(`Retry message failed ${error}`);
417
- }
418
- this._commsStats.recordMsgRetry();
419
- this._msgTrackInfos[checkIdx].msgSentMs = Date.now();
420
- }
421
- else {
422
- RaftLog_1.default.warn(`msgTrackTimer TIMEOUT msgNum ${checkIdx} after ${RaftMsgTrackInfo_1.RaftMsgTrackInfo.MSG_RETRY_COUNT} retries ${RaftUtils_1.default.bufferToHex(this._msgTrackInfos[checkIdx].msgFrame)}`);
423
- this._msgCompleted(checkIdx, RaftMsgResultCode.MESSAGE_RESULT_TIMEOUT, null);
424
- this._commsStats.recordMsgTimeout();
425
- }
426
- }
427
- }
428
- }
429
- // Call again if required
430
- if (chainRecall) {
431
- setTimeout(async () => {
432
- this._onMsgTrackTimer(true);
433
- }, this._msgTrackTimerMs);
434
- }
435
- }
436
- encodeFileStreamBlock(blockContents, blockStart, streamID) {
437
- // Create entire message buffer (including protocol wrappers)
438
- const msgBuf = new Uint8Array(blockContents.length + 4 + RaftProtocolDefs_1.RICREST_HEADER_PAYLOAD_POS + RaftProtocolDefs_1.RICSERIAL_PAYLOAD_POS);
439
- let msgBufPos = 0;
440
- // RICSERIAL protocol
441
- msgBuf[msgBufPos++] = 0; // not numbered
442
- msgBuf[msgBufPos++] =
443
- (RaftProtocolDefs_1.RaftCommsMsgTypeCode.MSG_TYPE_COMMAND << 6) +
444
- RaftProtocolDefs_1.RaftCommsMsgProtocol.MSG_PROTOCOL_RICREST;
445
- // RICREST protocol
446
- msgBuf[msgBufPos++] = RaftProtocolDefs_1.RICRESTElemCode.RICREST_ELEM_CODE_FILEBLOCK;
447
- // Header
448
- msgBuf[msgBufPos++] = streamID & 0xff;
449
- msgBuf[msgBufPos++] = (blockStart >> 16) & 0xff;
450
- msgBuf[msgBufPos++] = (blockStart >> 8) & 0xff;
451
- msgBuf[msgBufPos++] = blockStart & 0xff;
452
- // Copy block info
453
- msgBuf.set(blockContents, msgBufPos);
454
- return msgBuf;
455
- }
456
- async sendFileBlock(blockContents, blockStart) {
457
- const msgBuf = this.encodeFileStreamBlock(blockContents, blockStart, 0);
458
- // // Debug
459
- // RaftLog.debug(
460
- // `sendFileBlock frameLen ${msgBuf.length} start ${blockStart} end ${blockEnd} len ${blockLen}`,
461
- // );
462
- // Send
463
- try {
464
- // Send
465
- if (this._msgSender) {
466
- // Wrap into HDLC
467
- const framedMsg = this._miniHDLC.encode(msgBuf);
468
- // Send
469
- return this._msgSender.sendTxMsg(framedMsg, true);
470
- }
471
- }
472
- catch (error) {
473
- RaftLog_1.default.warn(`RaftMsgHandler sendFileBlock error${error}`);
474
- }
475
- return false;
476
- }
477
- async sendStreamBlock(blockContents, blockStart, streamID) {
478
- // Ensure any waiting messages are sent first
479
- await this._onMsgTrackTimer(false);
480
- // Encode message
481
- const msgBuf = this.encodeFileStreamBlock(blockContents, blockStart, streamID);
482
- // // Debug
483
- // RaftLog.debug(
484
- // `sendStreamBlock frameLen ${msgBuf.length} start ${blockStart} end ${blockEnd} len ${blockLen}`,
485
- // );
486
- // Send
487
- try {
488
- // Send
489
- if (this._msgSender) {
490
- // Wrap into HDLC
491
- const framedMsg = this._miniHDLC.encode(msgBuf);
492
- // Send
493
- return await this._msgSender.sendTxMsg(framedMsg, true);
494
- }
495
- }
496
- catch (error) {
497
- RaftLog_1.default.warn(`RaftMsgHandler sendStreamBlock error${error}`);
498
- }
499
- return false;
500
- }
501
- async createCommsBridge(bridgeSource, bridgeName, idleCloseSecs = 0) {
502
- // Establish a bridge
503
- return await this.sendRICRESTURL(`commandserial/bridge/setup?port=${bridgeSource}&name=${bridgeName}&idleCloseSecs=${idleCloseSecs}`);
504
- }
505
- async removeCommsBridge(bridgeID) {
506
- // Remove a bridge
507
- return await this.sendRICRESTURL(`commandserial/bridge/remove?id=${bridgeID}`);
508
- }
509
- }
510
- exports.default = RaftMsgHandler;
511
- //# sourceMappingURL=RaftMsgHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RaftMsgHandler.js","sourceRoot":"","sources":["../../src/RaftMsgHandler.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- export declare class RaftMsgTrackInfo {
2
- static readonly MAX_MSG_NUM = 255;
3
- static readonly MSG_RESPONSE_TIMEOUT_MS = 2000;
4
- static readonly MSG_RETRY_COUNT = 5;
5
- msgOutstanding: boolean;
6
- msgFrame: Uint8Array;
7
- msgSentMs: number;
8
- retryCount: number;
9
- withResponse: boolean;
10
- bridgeID: number | undefined;
11
- msgHandle: number;
12
- msgTimeoutMs: number | undefined;
13
- resolve: unknown;
14
- reject: unknown;
15
- constructor();
16
- set(msgOutstanding: boolean, msgFrame: Uint8Array, withResponse: boolean, bridgeID: number | undefined, msgHandle: number, msgTimeoutMs: number | undefined, resolve: unknown, reject: unknown): void;
17
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3
- //
4
- // RaftMsgTrackInfo
5
- // Part of RaftJS
6
- //
7
- // Rob Dobson & Chris Greening 2020-2024
8
- // (C) 2020-2024 All rights reserved
9
- //
10
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RaftMsgTrackInfo = void 0;
13
- class RaftMsgTrackInfo {
14
- constructor() {
15
- this.msgOutstanding = false;
16
- this.msgFrame = new Uint8Array();
17
- this.msgSentMs = 0;
18
- this.retryCount = 0;
19
- this.withResponse = false;
20
- this.bridgeID = undefined;
21
- this.msgHandle = 0;
22
- this.msgTimeoutMs = undefined;
23
- this.msgOutstanding = false;
24
- }
25
- set(msgOutstanding, msgFrame, withResponse, bridgeID = undefined, msgHandle, msgTimeoutMs, resolve, reject) {
26
- this.msgOutstanding = msgOutstanding;
27
- this.msgFrame = msgFrame;
28
- this.retryCount = 0;
29
- this.msgSentMs = Date.now();
30
- this.withResponse = withResponse;
31
- this.bridgeID = bridgeID;
32
- this.msgHandle = msgHandle;
33
- this.msgTimeoutMs = msgTimeoutMs;
34
- this.resolve = resolve;
35
- this.reject = reject;
36
- }
37
- }
38
- exports.RaftMsgTrackInfo = RaftMsgTrackInfo;
39
- RaftMsgTrackInfo.MAX_MSG_NUM = 255;
40
- RaftMsgTrackInfo.MSG_RESPONSE_TIMEOUT_MS = 2000;
41
- RaftMsgTrackInfo.MSG_RETRY_COUNT = 5;
42
- //# sourceMappingURL=RaftMsgTrackInfo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RaftMsgTrackInfo.js","sourceRoot":"","sources":["../../src/RaftMsgTrackInfo.ts"],"names":[],"mappings":";AAAA,iHAAiH;AACjH,EAAE;AACF,mBAAmB;AACnB,iBAAiB;AACjB,EAAE;AACF,wCAAwC;AACxC,oCAAoC;AACpC,EAAE;AACF,iHAAiH;;;AAEjH,MAAa,gBAAgB;IAe3B;QAXA,mBAAc,GAAG,KAAK,CAAC;QACvB,aAAQ,GAAe,IAAI,UAAU,EAAE,CAAC;QACxC,cAAS,GAAG,CAAC,CAAC;QACd,eAAU,GAAG,CAAC,CAAC;QACf,iBAAY,GAAG,KAAK,CAAC;QACrB,aAAQ,GAAuB,SAAS,CAAC;QACzC,cAAS,GAAG,CAAC,CAAC;QACd,iBAAY,GAAuB,SAAS,CAAC;QAK3C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,GAAG,CACD,cAAuB,EACvB,QAAoB,EACpB,YAAqB,EACrB,WAA+B,SAAS,EACxC,SAAiB,EACjB,YAAgC,EAChC,OAAgB,EAChB,MAAe;QAEf,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;;AAvCH,4CAwCC;AAvCiB,4BAAW,GAAG,GAAG,AAAN,CAAO;AAClB,wCAAuB,GAAG,IAAI,AAAP,CAAQ;AAC/B,gCAAe,GAAG,CAAC,AAAJ,CAAK"}
@@ -1,30 +0,0 @@
1
- export declare const RICSERIAL_MSG_NUM_POS = 0;
2
- export declare const RICSERIAL_PROTOCOL_POS = 1;
3
- export declare const RICSERIAL_PAYLOAD_POS = 2;
4
- export declare const RICREST_REST_ELEM_CODE_POS = 0;
5
- export declare const RICREST_HEADER_PAYLOAD_POS = 1;
6
- export declare const RICREST_FILEBLOCK_CHANNEL_POS = 0;
7
- export declare const RICREST_FILEBLOCK_FILEPOS_POS = 0;
8
- export declare const RICREST_FILEBLOCK_FILEPOS_POS_BYTES = 4;
9
- export declare const RICREST_FILEBLOCK_PAYLOAD_POS = 4;
10
- export declare const RICREST_BRIDGE_ID_POS = 2;
11
- export declare const RICREST_BRIDGE_PAYLOAD_POS = 3;
12
- export declare enum RICRESTElemCode {
13
- RICREST_ELEM_CODE_URL = 0,
14
- RICREST_ELEM_CODE_CMDRESPJSON = 1,
15
- RICREST_ELEM_CODE_BODY = 2,
16
- RICREST_ELEM_CODE_COMMAND_FRAME = 3,
17
- RICREST_ELEM_CODE_FILEBLOCK = 4
18
- }
19
- export declare enum RaftCommsMsgTypeCode {
20
- MSG_TYPE_COMMAND = 0,
21
- MSG_TYPE_RESPONSE = 1,
22
- MSG_TYPE_PUBLISH = 2,
23
- MSG_TYPE_REPORT = 3
24
- }
25
- export declare enum RaftCommsMsgProtocol {
26
- MSG_PROTOCOL_ROSSERIAL = 0,
27
- MSG_PROTOCOL_RESERVED_1 = 1,
28
- MSG_PROTOCOL_RICREST = 2,
29
- MSG_PROTOCOL_BRIDGE_RICREST = 3
30
- }