@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,249 +0,0 @@
1
- "use strict";
2
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3
- //
4
- // RaftAttributeHandler
5
- // Attribute handler for Raft devices
6
- //
7
- // Rob Dobson (C) 2024
8
- //
9
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- const tslib_1 = require("tslib");
12
- const RaftCustomAttrHandler_1 = tslib_1.__importDefault(require("./RaftCustomAttrHandler"));
13
- const RaftDeviceInfo_1 = require("./RaftDeviceInfo");
14
- const RaftStruct_1 = require("./RaftStruct");
15
- class AttributeHandler {
16
- constructor() {
17
- // Custom attribute handler
18
- this._customAttrHandler = new RaftCustomAttrHandler_1.default();
19
- // Message timestamp size
20
- this.POLL_RESULT_TIMESTAMP_SIZE = 2;
21
- this.POLL_RESULT_WRAP_VALUE = this.POLL_RESULT_TIMESTAMP_SIZE === 2 ? 65536 : 4294967296;
22
- this.POLL_RESULT_RESOLUTION_US = 1000;
23
- }
24
- processMsgAttrGroup(msgBuffer, msgBufIdx, deviceTimeline, pollRespMetadata, devAttrsState, maxDataPoints) {
25
- // console.log(`processMsgAttrGroup msg ${msgHexStr} timestamp ${timestamp} origTimestamp ${origTimestamp} msgBufIdx ${msgBufIdx}`)
26
- // Extract msg timestamp
27
- const { newBufIdx, timestampUs } = this.extractTimestampAndAdvanceIdx(msgBuffer, msgBufIdx, deviceTimeline);
28
- if (newBufIdx < 0)
29
- return -1;
30
- msgBufIdx = newBufIdx;
31
- // Start of message data
32
- const msgDataStartIdx = msgBufIdx;
33
- // New attribute values (in order as they appear in the attributes JSON)
34
- let newAttrValues = [];
35
- if ("c" in pollRespMetadata) {
36
- // Extract attribute values using custom handler
37
- newAttrValues = this._customAttrHandler.handleAttr(pollRespMetadata, msgBuffer, msgBufIdx);
38
- }
39
- else {
40
- // Iterate over attributes
41
- for (let attrIdx = 0; attrIdx < pollRespMetadata.a.length; attrIdx++) {
42
- // Get the attribute definition
43
- const attrDef = pollRespMetadata.a[attrIdx];
44
- if (!("t" in attrDef)) {
45
- console.warn(`DeviceManager msg unknown msgBuffer ${msgBuffer} tsUs ${timestampUs} attrDef ${JSON.stringify(attrDef)}`);
46
- newAttrValues.push([]);
47
- continue;
48
- }
49
- // Process the attribute
50
- const { values, newMsgBufIdx } = this.processMsgAttribute(attrDef, msgBuffer, msgBufIdx, msgDataStartIdx);
51
- if (newMsgBufIdx < 0) {
52
- newAttrValues.push([]);
53
- continue;
54
- }
55
- msgBufIdx = newMsgBufIdx;
56
- newAttrValues.push(values);
57
- }
58
- }
59
- // Number of bytes in group
60
- let pollRespSizeBytes = msgBufIdx - msgDataStartIdx;
61
- if (pollRespSizeBytes < pollRespMetadata.b) {
62
- pollRespSizeBytes = pollRespMetadata.b;
63
- }
64
- // Check if any attributes were added (in addition to timestamp)
65
- if (newAttrValues.length === 0) {
66
- console.warn(`DeviceManager msg attrGroup ${JSON.stringify(pollRespMetadata)} newAttrValues ${newAttrValues} is empty`);
67
- return msgDataStartIdx + pollRespSizeBytes;
68
- }
69
- // All attributes must have the same number of new values
70
- const numNewDataPoints = newAttrValues[0].length;
71
- for (let i = 1; i < newAttrValues.length; i++) {
72
- if (newAttrValues[i].length !== numNewDataPoints) {
73
- console.warn(`DeviceManager msg attrGroup ${pollRespMetadata} attrName ${pollRespMetadata.a[i].n} newAttrValues ${newAttrValues} do not have the same length`);
74
- return msgDataStartIdx + pollRespSizeBytes;
75
- }
76
- }
77
- // All attributes in the schema should have values
78
- if (newAttrValues.length !== pollRespMetadata.a.length) {
79
- console.warn(`DeviceManager msg attrGroup ${pollRespMetadata} newAttrValues ${newAttrValues} length does not match attrGroup.a length`);
80
- return msgDataStartIdx + pollRespSizeBytes;
81
- }
82
- // Add the new attribute values to the device state
83
- for (let attrIdx = 0; attrIdx < pollRespMetadata.a.length; attrIdx++) {
84
- // Check if attribute already exists in the device state
85
- const attrDef = pollRespMetadata.a[attrIdx];
86
- if (!(attrDef.n in devAttrsState)) {
87
- devAttrsState[attrDef.n] = {
88
- name: attrDef.n,
89
- newAttribute: true,
90
- newData: false,
91
- numNewValues: 0,
92
- values: [],
93
- units: (0, RaftDeviceInfo_1.decodeAttrUnitsEncoding)(attrDef.u || ""),
94
- range: attrDef.r || [0, 0],
95
- format: ("f" in attrDef && typeof attrDef.f == "string") ? attrDef.f : "",
96
- visibleSeries: "v" in attrDef ? attrDef.v === 0 || attrDef.v === false : ("vs" in attrDef ? (attrDef.vs === 0 || attrDef.vs === false ? false : !!attrDef.vs) : true),
97
- visibleForm: "v" in attrDef ? attrDef.v === 0 || attrDef.v === false : ("vf" in attrDef ? (attrDef.vf === 0 || attrDef.vf === false ? false : !!attrDef.vf) : true),
98
- };
99
- }
100
- // Check if any data points need to be discarded
101
- const discardCount = Math.max(0, devAttrsState[attrDef.n].values.length + newAttrValues[attrIdx].length - maxDataPoints);
102
- if (discardCount > 0) {
103
- devAttrsState[attrDef.n].values.splice(0, discardCount);
104
- }
105
- // Add the new values
106
- devAttrsState[attrDef.n].values.push(...newAttrValues[attrIdx]);
107
- devAttrsState[attrDef.n].newData = newAttrValues[attrIdx].length > 0;
108
- devAttrsState[attrDef.n].numNewValues = newAttrValues[attrIdx].length;
109
- }
110
- // Handle the timestamps with increments if specified
111
- const timeIncUs = pollRespMetadata.us ? pollRespMetadata.us : 1000;
112
- const timestampsUs = Array(numNewDataPoints).fill(0);
113
- for (let i = 0; i < numNewDataPoints; i++) {
114
- timestampsUs[i] = timestampUs + i * timeIncUs;
115
- }
116
- // Check if timeline points need to be discarded
117
- const discardCount = Math.max(0, deviceTimeline.timestampsUs.length + timestampsUs.length - maxDataPoints);
118
- if (discardCount > 0) {
119
- deviceTimeline.timestampsUs.splice(0, discardCount);
120
- }
121
- // Add the new timestamps
122
- deviceTimeline.timestampsUs.push(...timestampsUs);
123
- // Return the next message buffer index
124
- return msgDataStartIdx + pollRespSizeBytes;
125
- }
126
- processMsgAttribute(attrDef, msgBuffer, msgBufIdx, msgDataStartIdx) {
127
- // Current field message string index
128
- let curFieldBufIdx = msgBufIdx;
129
- let attrUsesAbsPos = false;
130
- // Check for "at": N which means start reading from byte N of the message (after the timestamp bytes)
131
- if (attrDef.at !== undefined) {
132
- curFieldBufIdx = msgDataStartIdx + attrDef.at;
133
- attrUsesAbsPos = true;
134
- }
135
- // Check if outside bounds of message
136
- if (curFieldBufIdx >= msgBuffer.length) {
137
- console.warn(`DeviceManager msg outside bounds msgBuffer ${msgBuffer} attrName ${attrDef.n}`);
138
- return { values: [], newMsgBufIdx: -1 };
139
- }
140
- // Attribute type
141
- const attrTypesOnly = attrDef.t;
142
- // Slice into buffer
143
- const attrBuf = msgBuffer.slice(curFieldBufIdx);
144
- // Check if a mask is used and the value is signed
145
- const maskOnSignedValue = "m" in attrDef && (0, RaftDeviceInfo_1.isAttrTypeSigned)(attrTypesOnly);
146
- // Extract the value using python-struct
147
- const unpackValues = (0, RaftStruct_1.structUnpack)(maskOnSignedValue ? attrTypesOnly.toUpperCase() : attrTypesOnly, attrBuf);
148
- let attrValues = unpackValues;
149
- // Get number of bytes consumed
150
- const numBytesConsumed = (0, RaftStruct_1.structSizeOf)(attrTypesOnly);
151
- // // Check if sign extendable mask specified on signed value
152
- // if (mmSpecifiedOnSignedValue) {
153
- // const signBitMask = 1 << (signExtendableMaskSignPos - 1);
154
- // const valueOnlyMask = signBitMask - 1;
155
- // if (value & signBitMask) {
156
- // value = (value & valueOnlyMask) - signBitMask;
157
- // } else {
158
- // value = value & valueOnlyMask;
159
- // }
160
- // }
161
- // Check for XOR mask
162
- if ("x" in attrDef) {
163
- const mask = typeof attrDef.x === "string" ? parseInt(attrDef.x, 16) : attrDef.x;
164
- attrValues = attrValues.map((value) => value ^ mask);
165
- }
166
- // Check for AND mask
167
- if ("m" in attrDef) {
168
- const mask = typeof attrDef.m === "string" ? parseInt(attrDef.m, 16) : attrDef.m;
169
- attrValues = attrValues.map((value) => (maskOnSignedValue ? this.signExtend(value, mask) : value & mask));
170
- }
171
- // Check for a sign-bit
172
- if ("sb" in attrDef) {
173
- const signBitPos = attrDef.sb;
174
- const signBitMask = 1 << signBitPos;
175
- if ("ss" in attrDef) {
176
- const signBitSubtract = attrDef.ss;
177
- attrValues = attrValues.map((value) => (value & signBitMask) ? signBitSubtract - value : value);
178
- }
179
- else {
180
- attrValues = attrValues.map((value) => (value & signBitMask) ? value - (signBitMask << 1) : value);
181
- }
182
- }
183
- // Check for bit shift required
184
- if ("s" in attrDef && attrDef.s) {
185
- const bitshift = attrDef.s;
186
- if (bitshift > 0) {
187
- attrValues = attrValues.map((value) => (value) >> bitshift);
188
- }
189
- else if (bitshift < 0) {
190
- attrValues = attrValues.map((value) => (value) << -bitshift);
191
- }
192
- }
193
- // Check for divisor
194
- if ("d" in attrDef && attrDef.d) {
195
- const divisor = attrDef.d;
196
- attrValues = attrValues.map((value) => (value) / divisor);
197
- }
198
- // Check for value to add
199
- if ("a" in attrDef && attrDef.a !== undefined) {
200
- const addValue = attrDef.a;
201
- attrValues = attrValues.map((value) => (value) + addValue);
202
- }
203
- // console.log(`DeviceManager msg attrGroup ${attrGroup} devkey ${deviceKey} valueHexChars ${valueHexChars} msgHexStr ${msgHexStr} ts ${timestamp} attrName ${attrDef.n} type ${attrDef.t} value ${value} signExtendableMaskSignPos ${signExtendableMaskSignPos} attrTypeDefForStruct ${attrTypeDefForStruct} attrDef ${attrDef}`);
204
- // Move buffer position if using relative positioning
205
- msgBufIdx += attrUsesAbsPos ? 0 : numBytesConsumed;
206
- // if (attrDef.n === "amb0") {
207
- // console.log(`${new Date().toISOString()} ${attrDef.n} ${attrValues}`);
208
- // }
209
- // Return the value
210
- return { values: attrValues, newMsgBufIdx: msgBufIdx };
211
- }
212
- signExtend(value, mask) {
213
- const signBitMask = (mask + 1) >> 1;
214
- const signBit = value & signBitMask;
215
- if (signBit !== 0) { // If sign bit is set
216
- const highBitsMask = ~mask & ~((mask + 1) >> 1);
217
- value |= highBitsMask; // Apply the sign extension
218
- }
219
- return value;
220
- }
221
- extractTimestampAndAdvanceIdx(msgBuffer, msgBufIdx, timestampWrapHandler) {
222
- // Check there are enough characters for the timestamp
223
- if (msgBufIdx + this.POLL_RESULT_TIMESTAMP_SIZE > msgBuffer.length) {
224
- return { newBufIdx: -1, timestampUs: 0 };
225
- }
226
- // Use struct to extract the timestamp
227
- const tsBuffer = msgBuffer.slice(msgBufIdx, msgBufIdx + this.POLL_RESULT_TIMESTAMP_SIZE);
228
- let timestampUs;
229
- if (this.POLL_RESULT_TIMESTAMP_SIZE === 2) {
230
- timestampUs = (0, RaftStruct_1.structUnpack)(">H", tsBuffer)[0] * this.POLL_RESULT_RESOLUTION_US;
231
- }
232
- else {
233
- timestampUs = (0, RaftStruct_1.structUnpack)(">I", tsBuffer)[0] * this.POLL_RESULT_RESOLUTION_US;
234
- }
235
- // Check if time is before lastReportTimeMs - in which case a wrap around occurred to add on the max value
236
- if (timestampUs < timestampWrapHandler.lastReportTimestampUs) {
237
- timestampWrapHandler.reportTimestampOffsetUs += this.POLL_RESULT_WRAP_VALUE * this.POLL_RESULT_RESOLUTION_US;
238
- }
239
- timestampWrapHandler.lastReportTimestampUs = timestampUs;
240
- // Offset timestamp
241
- timestampUs += timestampWrapHandler.reportTimestampOffsetUs;
242
- // Advance the index
243
- msgBufIdx += this.POLL_RESULT_TIMESTAMP_SIZE;
244
- // Return the timestamp
245
- return { newBufIdx: msgBufIdx, timestampUs: timestampUs };
246
- }
247
- }
248
- exports.default = AttributeHandler;
249
- //# sourceMappingURL=RaftAttributeHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RaftAttributeHandler.js","sourceRoot":"","sources":["../../src/RaftAttributeHandler.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { RaftConnEventFn } from "./RaftConnEvents";
2
- import RaftMsgHandler from "./RaftMsgHandler";
3
- import { ConnectorOptions } from "./RaftSystemType";
4
- export default interface RaftChannel {
5
- isConnected(): boolean;
6
- connect(locator: string | object, connectorOptions: ConnectorOptions): Promise<boolean>;
7
- disconnect(): Promise<void>;
8
- getConnectedLocator(): string | object;
9
- setOnConnEvent(connEventFn: RaftConnEventFn): void;
10
- setMsgHandler(raftMsgHandler: RaftMsgHandler): void;
11
- sendTxMsg(msg: Uint8Array, sendWithResponse: boolean): Promise<boolean>;
12
- sendTxMsgNoAwait(msg: Uint8Array, sendWithResponse: boolean): Promise<boolean>;
13
- sendTxMsgRaw(msg: string): boolean;
14
- sendTxMsgRawAndWaitForReply<T>(msgPayload: Uint8Array): T;
15
- requiresSubscription(): boolean;
16
- ricRestCmdBeforeDisconnect(): string | null;
17
- fhBatchAckSize(): number;
18
- fhFileBlockSize(): number;
19
- pauseConnection(pause: boolean): void;
20
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3
- //
4
- // RaftChannel
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
- //# sourceMappingURL=RaftChannel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RaftChannel.js","sourceRoot":"","sources":["../../src/RaftChannel.ts"],"names":[],"mappings":";AAAA,iHAAiH;AACjH,EAAE;AACF,cAAc;AACd,iBAAiB;AACjB,EAAE;AACF,wCAAwC;AACxC,oCAAoC;AACpC,EAAE;AACF,iHAAiH"}
@@ -1,95 +0,0 @@
1
- import { BleError, BleManager, Characteristic, Device, State, Subscription } from "react-native-ble-plx";
2
- import RaftChannel from "./RaftChannel";
3
- import { RaftConnEvent, RaftConnEventFn } from "./RaftConnEvents";
4
- import RaftMsgHandler from "./RaftMsgHandler";
5
- import RaftChannelBLEScanner from "./RaftChannelBLEScanner.native";
6
- import { DiscoveredDevice } from "./RaftTypes";
7
- export default class RaftChannelPhoneBLE implements RaftChannel {
8
- private _onConnEvent;
9
- _cmdUUID: string;
10
- _respUUID: string;
11
- _serviceUUIDs: string[];
12
- _bleScanner: RaftChannelBLEScanner;
13
- _deviceToConnectTo: DiscoveredDevice | null;
14
- _retryConnectionIfLost: boolean;
15
- RECONNECT_ATTEMPTS_AFTER_CONN_LOST: number;
16
- _bleSubscrOnRx: Subscription | null;
17
- _bleSubscrOnDisconnect: Subscription | null;
18
- _bleSubscrOnStateChange: Subscription | null;
19
- _bleDevice: Device | null;
20
- MTU_SIZE_TO_REQUEST: number;
21
- _raftMsgHandler: RaftMsgHandler | null;
22
- private _msgTxTimeLast;
23
- private _msgTxMinTimeBetweenMs;
24
- private readonly maxRetries;
25
- private _requestedBatchAckSize;
26
- private _requestedFileBlockSize;
27
- private _connectedDeviceServiceUUID?;
28
- constructor();
29
- setConnectedDeviceUUID(serviceUUID: string): void;
30
- getBleManager(): BleManager;
31
- fhBatchAckSize(): number;
32
- fhFileBlockSize(): number;
33
- pauseConnection(pause: boolean): void;
34
- isConnected(): boolean;
35
- setOnConnEvent(connEventFn: RaftConnEventFn): void;
36
- requiresSubscription(): boolean;
37
- isEnabled(): boolean;
38
- setMsgHandler(raftMsgHandler: RaftMsgHandler): void;
39
- setRetryConnectionIfLost(retry: boolean): void;
40
- discoveryStart(uuids: string[], tries?: number): Promise<boolean>;
41
- discoveryCancel(): void;
42
- _onBLEStateChange(state: State): void;
43
- getConnectedLocator(): string | Device;
44
- /**
45
- * Get RIC connection status
46
- *
47
- * @returns boolean (true if connected)
48
- *
49
- */
50
- getIsConnected(forceCheck?: boolean): Promise<boolean>;
51
- /**
52
- * Get the RSSI of the currently connected device
53
- *
54
- * @return number (or null if not connected)
55
- *
56
- */
57
- readRSSI(): Promise<number>;
58
- /**
59
- * Connect to a RIC
60
- *
61
- * @returns boolean (true if connected)
62
- *
63
- */
64
- connect(discoveredDevice: DiscoveredDevice): Promise<boolean>;
65
- /**
66
- * Disconnect from RIC
67
- *
68
- * @returns None
69
- *
70
- */
71
- disconnect(): Promise<void>;
72
- /**
73
- * Configure device connection
74
- *
75
- * @returns None
76
- *
77
- */
78
- _configDeviceConnection(): Promise<boolean>;
79
- /**
80
- * Handle lost connections
81
- *
82
- * @returns None
83
- *
84
- */
85
- _handleLostConnections(): void;
86
- getMTU(): number | undefined;
87
- emit(event: RaftConnEvent, data?: any): void;
88
- _onMsgRx(error: BleError | null, characteristic: Characteristic | null): void;
89
- scanningEvent(event: RaftConnEvent, data?: any): Promise<void>;
90
- sendTxMsg(msg: Uint8Array): Promise<boolean>;
91
- sendTxMsgNoAwait(msg: Uint8Array): Promise<boolean>;
92
- ricRestCmdBeforeDisconnect(): string | null;
93
- sendTxMsgRaw(): boolean;
94
- sendTxMsgRawAndWaitForReply<T>(): T;
95
- }