@hangtime/grip-connect 0.8.6 → 0.8.7

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 (229) hide show
  1. package/dist/cjs/index.d.ts +3 -0
  2. package/dist/cjs/index.d.ts.map +1 -0
  3. package/dist/cjs/index.js +14 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/interfaces/base.interface.d.ts +18 -0
  6. package/dist/cjs/interfaces/base.interface.d.ts.map +1 -0
  7. package/dist/cjs/interfaces/base.interface.js +3 -0
  8. package/dist/cjs/interfaces/base.interface.js.map +1 -0
  9. package/dist/cjs/interfaces/callback.interface.d.ts +56 -0
  10. package/dist/cjs/interfaces/callback.interface.d.ts.map +1 -0
  11. package/dist/cjs/interfaces/callback.interface.js +3 -0
  12. package/dist/cjs/interfaces/callback.interface.js.map +1 -0
  13. package/dist/cjs/interfaces/command.interface.d.ts +92 -0
  14. package/dist/cjs/interfaces/command.interface.d.ts.map +1 -0
  15. package/dist/cjs/interfaces/command.interface.js +3 -0
  16. package/dist/cjs/interfaces/command.interface.js.map +1 -0
  17. package/dist/cjs/interfaces/device/climbro.interface.d.ts +7 -0
  18. package/dist/cjs/interfaces/device/climbro.interface.d.ts.map +1 -0
  19. package/dist/cjs/interfaces/device/climbro.interface.js +3 -0
  20. package/dist/cjs/interfaces/device/climbro.interface.js.map +1 -0
  21. package/dist/cjs/interfaces/device/entralpi.interface.d.ts +53 -0
  22. package/dist/cjs/interfaces/device/entralpi.interface.d.ts.map +1 -0
  23. package/dist/cjs/interfaces/device/entralpi.interface.js +3 -0
  24. package/dist/cjs/interfaces/device/entralpi.interface.js.map +1 -0
  25. package/dist/cjs/interfaces/device/forceboard.interface.d.ts +64 -0
  26. package/dist/cjs/interfaces/device/forceboard.interface.d.ts.map +1 -0
  27. package/dist/cjs/interfaces/device/forceboard.interface.js +3 -0
  28. package/dist/cjs/interfaces/device/forceboard.interface.js.map +1 -0
  29. package/dist/cjs/interfaces/device/kilterboard.interface.d.ts +16 -0
  30. package/dist/cjs/interfaces/device/kilterboard.interface.d.ts.map +1 -0
  31. package/dist/cjs/interfaces/device/kilterboard.interface.js +3 -0
  32. package/dist/cjs/interfaces/device/kilterboard.interface.js.map +1 -0
  33. package/dist/cjs/interfaces/device/motherboard.interface.d.ts +54 -0
  34. package/dist/cjs/interfaces/device/motherboard.interface.d.ts.map +1 -0
  35. package/dist/cjs/interfaces/device/motherboard.interface.js +3 -0
  36. package/dist/cjs/interfaces/device/motherboard.interface.js.map +1 -0
  37. package/dist/cjs/interfaces/device/mysmartboard.interface.d.ts +7 -0
  38. package/dist/cjs/interfaces/device/mysmartboard.interface.d.ts.map +1 -0
  39. package/dist/cjs/interfaces/device/mysmartboard.interface.js +3 -0
  40. package/dist/cjs/interfaces/device/mysmartboard.interface.js.map +1 -0
  41. package/dist/cjs/interfaces/device/progressor.interface.d.ts +28 -0
  42. package/dist/cjs/interfaces/device/progressor.interface.d.ts.map +1 -0
  43. package/dist/cjs/interfaces/device/progressor.interface.js +3 -0
  44. package/dist/cjs/interfaces/device/progressor.interface.js.map +1 -0
  45. package/dist/cjs/interfaces/device/smartboard-pro.interface.d.ts +7 -0
  46. package/dist/cjs/interfaces/device/smartboard-pro.interface.d.ts.map +1 -0
  47. package/dist/cjs/interfaces/device/smartboard-pro.interface.js +3 -0
  48. package/dist/cjs/interfaces/device/smartboard-pro.interface.js.map +1 -0
  49. package/dist/cjs/interfaces/device/wh-c06.interface.d.ts +7 -0
  50. package/dist/cjs/interfaces/device/wh-c06.interface.d.ts.map +1 -0
  51. package/dist/cjs/interfaces/device/wh-c06.interface.js +3 -0
  52. package/dist/cjs/interfaces/device/wh-c06.interface.js.map +1 -0
  53. package/dist/cjs/interfaces/device.interface.d.ts +203 -0
  54. package/dist/cjs/interfaces/device.interface.d.ts.map +1 -0
  55. package/dist/cjs/interfaces/device.interface.js +3 -0
  56. package/dist/cjs/interfaces/device.interface.js.map +1 -0
  57. package/dist/cjs/interfaces/download.interface.d.ts +16 -0
  58. package/dist/cjs/interfaces/download.interface.d.ts.map +1 -0
  59. package/dist/cjs/interfaces/download.interface.js +3 -0
  60. package/dist/cjs/interfaces/download.interface.js.map +1 -0
  61. package/dist/cjs/interfaces/index.d.ts +10 -0
  62. package/dist/cjs/interfaces/index.d.ts.map +1 -0
  63. package/dist/cjs/interfaces/index.js +3 -0
  64. package/dist/cjs/interfaces/index.js.map +1 -0
  65. package/dist/cjs/models/base.model.d.ts +13 -0
  66. package/dist/cjs/models/base.model.d.ts.map +1 -0
  67. package/dist/cjs/models/base.model.js +24 -0
  68. package/dist/cjs/models/base.model.js.map +1 -0
  69. package/dist/cjs/models/device/climbro.model.d.ts +11 -0
  70. package/dist/cjs/models/device/climbro.model.d.ts.map +1 -0
  71. package/dist/cjs/models/device/climbro.model.js +19 -0
  72. package/dist/cjs/models/device/climbro.model.js.map +1 -0
  73. package/dist/cjs/models/device/entralpi.model.d.ts +64 -0
  74. package/dist/cjs/models/device/entralpi.model.d.ts.map +1 -0
  75. package/dist/cjs/models/device/entralpi.model.js +244 -0
  76. package/dist/cjs/models/device/entralpi.model.js.map +1 -0
  77. package/dist/cjs/models/device/forceboard.model.d.ts +73 -0
  78. package/dist/cjs/models/device/forceboard.model.d.ts.map +1 -0
  79. package/dist/cjs/models/device/forceboard.model.js +316 -0
  80. package/dist/cjs/models/device/forceboard.model.js.map +1 -0
  81. package/dist/cjs/models/device/kilterboard.model.d.ts +144 -0
  82. package/dist/cjs/models/device/kilterboard.model.d.ts.map +1 -0
  83. package/dist/cjs/models/device/kilterboard.model.js +291 -0
  84. package/dist/cjs/models/device/kilterboard.model.js.map +1 -0
  85. package/dist/cjs/models/device/motherboard.model.d.ts +110 -0
  86. package/dist/cjs/models/device/motherboard.model.d.ts.map +1 -0
  87. package/dist/cjs/models/device/motherboard.model.js +382 -0
  88. package/dist/cjs/models/device/motherboard.model.js.map +1 -0
  89. package/dist/cjs/models/device/mysmartboard.model.d.ts +11 -0
  90. package/dist/cjs/models/device/mysmartboard.model.d.ts.map +1 -0
  91. package/dist/cjs/models/device/mysmartboard.model.js +19 -0
  92. package/dist/cjs/models/device/mysmartboard.model.js.map +1 -0
  93. package/dist/cjs/models/device/progressor.model.d.ts +39 -0
  94. package/dist/cjs/models/device/progressor.model.d.ts.map +1 -0
  95. package/dist/cjs/models/device/progressor.model.js +220 -0
  96. package/dist/cjs/models/device/progressor.model.js.map +1 -0
  97. package/dist/cjs/models/device/smartboard-pro.model.d.ts +11 -0
  98. package/dist/cjs/models/device/smartboard-pro.model.d.ts.map +1 -0
  99. package/dist/cjs/models/device/smartboard-pro.model.js +56 -0
  100. package/dist/cjs/models/device/smartboard-pro.model.js.map +1 -0
  101. package/dist/cjs/models/device/wh-c06.model.d.ts +57 -0
  102. package/dist/cjs/models/device/wh-c06.model.d.ts.map +1 -0
  103. package/dist/cjs/models/device/wh-c06.model.js +171 -0
  104. package/dist/cjs/models/device/wh-c06.model.js.map +1 -0
  105. package/dist/cjs/models/device.model.d.ts +408 -0
  106. package/dist/cjs/models/device.model.d.ts.map +1 -0
  107. package/dist/cjs/models/device.model.js +665 -0
  108. package/dist/cjs/models/device.model.js.map +1 -0
  109. package/dist/cjs/models/index.d.ts +10 -0
  110. package/dist/cjs/models/index.d.ts.map +1 -0
  111. package/dist/cjs/models/index.js +22 -0
  112. package/dist/cjs/models/index.js.map +1 -0
  113. package/dist/index.d.ts +3 -0
  114. package/dist/index.d.ts.map +1 -0
  115. package/dist/index.js +2 -0
  116. package/dist/index.js.map +1 -0
  117. package/dist/interfaces/base.interface.d.ts +18 -0
  118. package/dist/interfaces/base.interface.d.ts.map +1 -0
  119. package/dist/interfaces/base.interface.js +2 -0
  120. package/dist/interfaces/base.interface.js.map +1 -0
  121. package/dist/interfaces/callback.interface.d.ts +56 -0
  122. package/dist/interfaces/callback.interface.d.ts.map +1 -0
  123. package/dist/interfaces/callback.interface.js +2 -0
  124. package/dist/interfaces/callback.interface.js.map +1 -0
  125. package/dist/interfaces/command.interface.d.ts +92 -0
  126. package/dist/interfaces/command.interface.d.ts.map +1 -0
  127. package/dist/interfaces/command.interface.js +2 -0
  128. package/dist/interfaces/command.interface.js.map +1 -0
  129. package/dist/interfaces/device/climbro.interface.d.ts +7 -0
  130. package/dist/interfaces/device/climbro.interface.d.ts.map +1 -0
  131. package/dist/interfaces/device/climbro.interface.js +2 -0
  132. package/dist/interfaces/device/climbro.interface.js.map +1 -0
  133. package/dist/interfaces/device/entralpi.interface.d.ts +53 -0
  134. package/dist/interfaces/device/entralpi.interface.d.ts.map +1 -0
  135. package/dist/interfaces/device/entralpi.interface.js +2 -0
  136. package/dist/interfaces/device/entralpi.interface.js.map +1 -0
  137. package/dist/interfaces/device/forceboard.interface.d.ts +64 -0
  138. package/dist/interfaces/device/forceboard.interface.d.ts.map +1 -0
  139. package/dist/interfaces/device/forceboard.interface.js +2 -0
  140. package/dist/interfaces/device/forceboard.interface.js.map +1 -0
  141. package/dist/interfaces/device/kilterboard.interface.d.ts +16 -0
  142. package/dist/interfaces/device/kilterboard.interface.d.ts.map +1 -0
  143. package/dist/interfaces/device/kilterboard.interface.js +2 -0
  144. package/dist/interfaces/device/kilterboard.interface.js.map +1 -0
  145. package/dist/interfaces/device/motherboard.interface.d.ts +54 -0
  146. package/dist/interfaces/device/motherboard.interface.d.ts.map +1 -0
  147. package/dist/interfaces/device/motherboard.interface.js +2 -0
  148. package/dist/interfaces/device/motherboard.interface.js.map +1 -0
  149. package/dist/interfaces/device/mysmartboard.interface.d.ts +7 -0
  150. package/dist/interfaces/device/mysmartboard.interface.d.ts.map +1 -0
  151. package/dist/interfaces/device/mysmartboard.interface.js +2 -0
  152. package/dist/interfaces/device/mysmartboard.interface.js.map +1 -0
  153. package/dist/interfaces/device/progressor.interface.d.ts +28 -0
  154. package/dist/interfaces/device/progressor.interface.d.ts.map +1 -0
  155. package/dist/interfaces/device/progressor.interface.js +2 -0
  156. package/dist/interfaces/device/progressor.interface.js.map +1 -0
  157. package/dist/interfaces/device/smartboard-pro.interface.d.ts +7 -0
  158. package/dist/interfaces/device/smartboard-pro.interface.d.ts.map +1 -0
  159. package/dist/interfaces/device/smartboard-pro.interface.js +2 -0
  160. package/dist/interfaces/device/smartboard-pro.interface.js.map +1 -0
  161. package/dist/interfaces/device/wh-c06.interface.d.ts +7 -0
  162. package/dist/interfaces/device/wh-c06.interface.d.ts.map +1 -0
  163. package/dist/interfaces/device/wh-c06.interface.js +2 -0
  164. package/dist/interfaces/device/wh-c06.interface.js.map +1 -0
  165. package/dist/interfaces/device.interface.d.ts +203 -0
  166. package/dist/interfaces/device.interface.d.ts.map +1 -0
  167. package/dist/interfaces/device.interface.js +2 -0
  168. package/dist/interfaces/device.interface.js.map +1 -0
  169. package/dist/interfaces/download.interface.d.ts +16 -0
  170. package/dist/interfaces/download.interface.d.ts.map +1 -0
  171. package/dist/interfaces/download.interface.js +2 -0
  172. package/dist/interfaces/download.interface.js.map +1 -0
  173. package/dist/interfaces/index.d.ts +10 -0
  174. package/dist/interfaces/index.d.ts.map +1 -0
  175. package/dist/interfaces/index.js +2 -0
  176. package/dist/interfaces/index.js.map +1 -0
  177. package/dist/models/base.model.d.ts +13 -0
  178. package/dist/models/base.model.d.ts.map +1 -0
  179. package/dist/models/base.model.js +22 -0
  180. package/dist/models/base.model.js.map +1 -0
  181. package/dist/models/device/climbro.model.d.ts +11 -0
  182. package/dist/models/device/climbro.model.d.ts.map +1 -0
  183. package/dist/models/device/climbro.model.js +15 -0
  184. package/dist/models/device/climbro.model.js.map +1 -0
  185. package/dist/models/device/entralpi.model.d.ts +64 -0
  186. package/dist/models/device/entralpi.model.d.ts.map +1 -0
  187. package/dist/models/device/entralpi.model.js +240 -0
  188. package/dist/models/device/entralpi.model.js.map +1 -0
  189. package/dist/models/device/forceboard.model.d.ts +73 -0
  190. package/dist/models/device/forceboard.model.d.ts.map +1 -0
  191. package/dist/models/device/forceboard.model.js +312 -0
  192. package/dist/models/device/forceboard.model.js.map +1 -0
  193. package/dist/models/device/kilterboard.model.d.ts +144 -0
  194. package/dist/models/device/kilterboard.model.d.ts.map +1 -0
  195. package/dist/models/device/kilterboard.model.js +287 -0
  196. package/dist/models/device/kilterboard.model.js.map +1 -0
  197. package/dist/models/device/motherboard.model.d.ts +110 -0
  198. package/dist/models/device/motherboard.model.d.ts.map +1 -0
  199. package/dist/models/device/motherboard.model.js +378 -0
  200. package/dist/models/device/motherboard.model.js.map +1 -0
  201. package/dist/models/device/mysmartboard.model.d.ts +11 -0
  202. package/dist/models/device/mysmartboard.model.d.ts.map +1 -0
  203. package/dist/models/device/mysmartboard.model.js +15 -0
  204. package/dist/models/device/mysmartboard.model.js.map +1 -0
  205. package/dist/models/device/progressor.model.d.ts +39 -0
  206. package/dist/models/device/progressor.model.d.ts.map +1 -0
  207. package/dist/models/device/progressor.model.js +216 -0
  208. package/dist/models/device/progressor.model.js.map +1 -0
  209. package/dist/models/device/smartboard-pro.model.d.ts +11 -0
  210. package/dist/models/device/smartboard-pro.model.d.ts.map +1 -0
  211. package/dist/models/device/smartboard-pro.model.js +52 -0
  212. package/dist/models/device/smartboard-pro.model.js.map +1 -0
  213. package/dist/models/device/wh-c06.model.d.ts +57 -0
  214. package/dist/models/device/wh-c06.model.d.ts.map +1 -0
  215. package/dist/models/device/wh-c06.model.js +167 -0
  216. package/dist/models/device/wh-c06.model.js.map +1 -0
  217. package/dist/models/device.model.d.ts +408 -0
  218. package/dist/models/device.model.d.ts.map +1 -0
  219. package/dist/models/device.model.js +720 -0
  220. package/dist/models/device.model.js.map +1 -0
  221. package/dist/models/index.d.ts +10 -0
  222. package/dist/models/index.d.ts.map +1 -0
  223. package/dist/models/index.js +10 -0
  224. package/dist/models/index.js.map +1 -0
  225. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  226. package/package.json +5 -1
  227. package/deno.json +0 -8
  228. package/tsconfig.cjs.json +0 -15
  229. package/tsconfig.json +0 -13
@@ -0,0 +1,382 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Motherboard = void 0;
4
+ const device_model_js_1 = require("../device.model.js");
5
+ /**
6
+ * Represents a Griptonite Motherboard device.
7
+ * {@link https://griptonite.io}
8
+ */
9
+ class Motherboard extends device_model_js_1.Device {
10
+ constructor() {
11
+ super({
12
+ filters: [{ name: "Motherboard" }],
13
+ services: [
14
+ {
15
+ name: "Device Information",
16
+ id: "device",
17
+ uuid: "0000180a-0000-1000-8000-00805f9b34fb",
18
+ characteristics: [
19
+ // {
20
+ // name: 'Serial Number String (Blocked)',
21
+ // id: 'serial'
22
+ // uuid: '00002a25-0000-1000-8000-00805f9b34fb'
23
+ // },
24
+ {
25
+ name: "Firmware Revision String",
26
+ id: "firmware",
27
+ uuid: "00002a26-0000-1000-8000-00805f9b34fb",
28
+ },
29
+ {
30
+ name: "Hardware Revision String",
31
+ id: "hardware",
32
+ uuid: "00002a27-0000-1000-8000-00805f9b34fb",
33
+ },
34
+ {
35
+ name: "Manufacturer Name String",
36
+ id: "manufacturer",
37
+ uuid: "00002a29-0000-1000-8000-00805f9b34fb",
38
+ },
39
+ ],
40
+ },
41
+ {
42
+ name: "Battery Service",
43
+ id: "battery",
44
+ uuid: "0000180f-0000-1000-8000-00805f9b34fb",
45
+ characteristics: [
46
+ {
47
+ name: "Battery Level",
48
+ id: "level",
49
+ uuid: "00002a19-0000-1000-8000-00805f9b34fb",
50
+ },
51
+ ],
52
+ },
53
+ {
54
+ name: "LED Service",
55
+ id: "led",
56
+ uuid: "10ababcd-15e1-28ff-de13-725bea03b127",
57
+ characteristics: [
58
+ {
59
+ name: "Red LED",
60
+ id: "red",
61
+ uuid: "10ab1524-15e1-28ff-de13-725bea03b127",
62
+ },
63
+ {
64
+ name: "Green LED",
65
+ id: "green",
66
+ uuid: "10ab1525-15e1-28ff-de13-725bea03b127",
67
+ },
68
+ ],
69
+ },
70
+ {
71
+ name: "UART Nordic Service",
72
+ id: "uart",
73
+ uuid: "6e400001-b5a3-f393-e0a9-e50e24dcca9e",
74
+ characteristics: [
75
+ {
76
+ name: "TX",
77
+ id: "tx",
78
+ uuid: "6e400002-b5a3-f393-e0a9-e50e24dcca9e",
79
+ },
80
+ {
81
+ name: "RX",
82
+ id: "rx",
83
+ uuid: "6e400003-b5a3-f393-e0a9-e50e24dcca9e",
84
+ },
85
+ ],
86
+ },
87
+ ],
88
+ commands: {
89
+ GET_SERIAL: "#",
90
+ START_WEIGHT_MEAS: "S30",
91
+ STOP_WEIGHT_MEAS: "", // All commands will stop the data stream.
92
+ GET_CALIBRATION: "C",
93
+ SLEEP: 0,
94
+ GET_TEXT: "T",
95
+ DEBUG_STREAM: "D",
96
+ },
97
+ });
98
+ /**
99
+ * Buffer to store received data from the device.
100
+ * @type {number[]}
101
+ * @private
102
+ */
103
+ this.receiveBuffer = [];
104
+ /**
105
+ * Calibration data for each sensor of the device.
106
+ * @type {number[][][]}
107
+ * @private
108
+ */
109
+ this.calibrationData = [[], [], [], []];
110
+ /**
111
+ * Applies calibration to a sample value.
112
+ * @param {number} sample - The sample value to calibrate.
113
+ * @param {number[][]} calibration - The calibration data.
114
+ * @returns {number} The calibrated sample value.
115
+ */
116
+ this.applyCalibration = (sample, calibration) => {
117
+ // Extract the calibrated value for the zero point
118
+ const zeroCalibration = calibration[0][2];
119
+ // Initialize sign as positive
120
+ let sign = 1;
121
+ // Initialize the final calibrated value
122
+ let final = 0;
123
+ // If the sample value is less than the zero calibration point
124
+ if (sample < zeroCalibration) {
125
+ // Change the sign to negative
126
+ sign = -1;
127
+ // Reflect the sample around the zero calibration point
128
+ sample = /* 2 * zeroCalibration */ -sample;
129
+ }
130
+ // Iterate through the calibration data
131
+ for (let i = 1; i < calibration.length; i++) {
132
+ // Extract the lower and upper bounds of the current calibration range
133
+ const calibrationStart = calibration[i - 1][2];
134
+ const calibrationEnd = calibration[i][2];
135
+ // If the sample value is within the current calibration range
136
+ if (sample < calibrationEnd) {
137
+ // Interpolate to get the calibrated value within the range
138
+ final =
139
+ calibration[i - 1][1] +
140
+ ((sample - calibrationStart) / (calibrationEnd - calibrationStart)) *
141
+ (calibration[i][1] - calibration[i - 1][1]);
142
+ break;
143
+ }
144
+ }
145
+ // Return the calibrated value with the appropriate sign (positive/negative)
146
+ return sign * final;
147
+ };
148
+ /**
149
+ * Retrieves battery or voltage information from the device.
150
+ * @returns {Promise<string | undefined>} A Promise that resolves with the battery or voltage information,
151
+ */
152
+ this.battery = async () => {
153
+ return await this.read("battery", "level", 250);
154
+ };
155
+ /**
156
+ * Writes a command to get calibration data from the device.
157
+ * @returns {Promise<void>} A Promise that resolves when the command is successfully sent.
158
+ */
159
+ this.calibration = async () => {
160
+ await this.write("uart", "tx", this.commands.GET_CALIBRATION, 2500, (data) => {
161
+ console.log(data);
162
+ });
163
+ };
164
+ /**
165
+ * Retrieves firmware version from the device.
166
+ * @returns {Promise<string>} A Promise that resolves with the firmware version,
167
+ */
168
+ this.firmware = async () => {
169
+ return await this.read("device", "firmware", 250);
170
+ };
171
+ /**
172
+ * Handles data received from the Motherboard device. Processes hex-encoded streaming packets
173
+ * to extract samples, calibrate masses, and update running averages of mass data.
174
+ * If the received data is not a valid hex packet, it returns the unprocessed data.
175
+ *
176
+ * @param {DataView} value - The notification event.
177
+ */
178
+ this.handleNotifications = (value) => {
179
+ if (value) {
180
+ // Update timestamp
181
+ this.updateTimestamp();
182
+ if (value.buffer) {
183
+ for (let i = 0; i < value.byteLength; i++) {
184
+ this.receiveBuffer.push(value.getUint8(i));
185
+ }
186
+ let idx;
187
+ while ((idx = this.receiveBuffer.indexOf(10)) >= 0) {
188
+ const line = this.receiveBuffer.splice(0, idx + 1).slice(0, -1); // Combine and remove LF
189
+ if (line.length > 0 && line[line.length - 1] === 13)
190
+ line.pop(); // Remove CR
191
+ const decoder = new TextDecoder("utf-8");
192
+ const receivedData = decoder.decode(new Uint8Array(line));
193
+ const receivedTime = Date.now();
194
+ // Check if the line is entirely hex characters
195
+ const isAllHex = /^[0-9A-Fa-f]+$/g.test(receivedData);
196
+ // Handle streaming packet
197
+ if (isAllHex && receivedData.length === Motherboard.packetLength) {
198
+ // Base-16 decode the string: convert hex pairs to byte values
199
+ const bytes = Array.from({ length: receivedData.length / 2 }, (_, i) => Number(`0x${receivedData.substring(i * 2, i * 2 + 2)}`));
200
+ // Translate header into packet, number of samples from the packet length
201
+ const packet = {
202
+ received: receivedTime,
203
+ sampleNum: new DataView(new Uint8Array(bytes).buffer).getUint16(0, true),
204
+ battRaw: new DataView(new Uint8Array(bytes).buffer).getUint16(2, true),
205
+ samples: [],
206
+ masses: [],
207
+ };
208
+ const dataView = new DataView(new Uint8Array(bytes).buffer);
209
+ for (let i = 0; i < Motherboard.samplesNumber; i++) {
210
+ const sampleStart = 4 + 3 * i;
211
+ // Use DataView to read the 24-bit unsigned integer
212
+ const rawValue = dataView.getUint8(sampleStart) |
213
+ (dataView.getUint8(sampleStart + 1) << 8) |
214
+ (dataView.getUint8(sampleStart + 2) << 16);
215
+ // Ensure unsigned 32-bit integer
216
+ packet.samples[i] = rawValue >>> 0;
217
+ if (packet.samples[i] >= 0x7fffff) {
218
+ packet.samples[i] -= 0x1000000;
219
+ }
220
+ packet.masses[i] = this.applyCalibration(packet.samples[i], this.calibrationData[i]);
221
+ }
222
+ // invert center and right values
223
+ packet.masses[1] *= -1;
224
+ packet.masses[2] *= -1;
225
+ // Add data to downloadable Array
226
+ this.downloadPackets.push({
227
+ received: packet.received,
228
+ sampleNum: packet.battRaw,
229
+ battRaw: packet.received,
230
+ samples: [...packet.samples],
231
+ masses: [...packet.masses],
232
+ });
233
+ let left = packet.masses[0];
234
+ let center = packet.masses[1];
235
+ let right = packet.masses[2];
236
+ // Tare correction
237
+ left -= this.applyTare(left);
238
+ center -= this.applyTare(center);
239
+ right -= this.applyTare(right);
240
+ this.massMax = Math.max(Number(this.massMax), Math.max(-1000, left + center + right)).toFixed(1);
241
+ // Update running sum and count
242
+ const currentMassTotal = Math.max(-1000, left + center + right);
243
+ this.massTotalSum += currentMassTotal;
244
+ this.dataPointCount++;
245
+ // Calculate the average dynamically
246
+ this.massAverage = (this.massTotalSum / this.dataPointCount).toFixed(1);
247
+ // Check if device is being used
248
+ this.activityCheck(center);
249
+ // Notify with weight data
250
+ this.notifyCallback({
251
+ massTotal: Math.max(-1000, left + center + right).toFixed(1),
252
+ massMax: this.massMax,
253
+ massAverage: this.massAverage,
254
+ massLeft: Math.max(-1000, packet.masses[0]).toFixed(1),
255
+ massCenter: Math.max(-1000, packet.masses[1]).toFixed(1),
256
+ massRight: Math.max(-1000, packet.masses[2]).toFixed(1),
257
+ });
258
+ }
259
+ else if (this.writeLast === this.commands.GET_CALIBRATION) {
260
+ // check data integrity
261
+ if ((receivedData.match(/,/g) || []).length === 3) {
262
+ const parts = receivedData.split(",");
263
+ const numericParts = parts.map((x) => parseFloat(x));
264
+ this.calibrationData[numericParts[0]].push(numericParts.slice(1));
265
+ }
266
+ }
267
+ else {
268
+ // unhandled data
269
+ this.writeCallback(receivedData);
270
+ }
271
+ }
272
+ }
273
+ }
274
+ };
275
+ /**
276
+ * Retrieves hardware version from the device.
277
+ * @returns {Promise<string>} A Promise that resolves with the hardware version,
278
+ */
279
+ this.hardware = async () => {
280
+ return await this.read("device", "hardware", 250);
281
+ };
282
+ /**
283
+ * Sets the LED color based on a single color option. Defaults to turning the LEDs off if no configuration is provided.
284
+ * @param {"green" | "red" | "orange"} [config] - Optional color or array of climb placements for the LEDs. Ignored if placements are provided.
285
+ * @returns {Promise<number[] | undefined>} A promise that resolves with the payload array for the Kilter Board if LED settings were applied, or `undefined` if no action was taken or for the Motherboard.
286
+ */
287
+ this.led = async (config) => {
288
+ if (this.isConnected()) {
289
+ const colorMapping = {
290
+ green: [[0x00], [0x01]],
291
+ red: [[0x01], [0x00]],
292
+ orange: [[0x01], [0x01]],
293
+ off: [[0x00], [0x00]],
294
+ };
295
+ // Default to "off" color if config is not set or not found in colorMapping
296
+ const color = typeof config === "string" && colorMapping[config] ? config : "off";
297
+ const [redValue, greenValue] = colorMapping[color];
298
+ await this.write("led", "red", new Uint8Array(redValue));
299
+ await this.write("led", "green", new Uint8Array(greenValue), 1250);
300
+ }
301
+ return undefined;
302
+ };
303
+ /**
304
+ * Retrieves manufacturer information from the device.
305
+ * @returns {Promise<string>} A Promise that resolves with the manufacturer information,
306
+ */
307
+ this.manufacturer = async () => {
308
+ return await this.read("device", "manufacturer", 250);
309
+ };
310
+ /**
311
+ * Retrieves serial number from the device.
312
+ * @returns {Promise<string>} A Promise that resolves with the serial number,
313
+ */
314
+ this.serial = async () => {
315
+ let response = undefined;
316
+ await this.write("uart", "tx", this.commands.GET_SERIAL, 250, (data) => {
317
+ response = data;
318
+ });
319
+ return response;
320
+ };
321
+ /**
322
+ * Stops the data stream on the specified device.
323
+ * @returns {Promise<void>} A promise that resolves when the stream is stopped.
324
+ */
325
+ this.stop = async () => {
326
+ await this.write("uart", "tx", this.commands.STOP_WEIGHT_MEAS, 0);
327
+ };
328
+ /**
329
+ * Starts streaming data from the specified device.
330
+ * @param {number} [duration=0] - The duration of the stream in milliseconds. If set to 0, stream will continue indefinitely.
331
+ * @returns {Promise<void>} A promise that resolves when the streaming operation is completed.
332
+ */
333
+ this.stream = async (duration = 0) => {
334
+ // Reset download packets
335
+ this.downloadPackets.length = 0;
336
+ // Read calibration data if not already available
337
+ if (!this.calibrationData[0].length) {
338
+ await this.calibration();
339
+ }
340
+ // Start streaming data
341
+ await this.write("uart", "tx", this.commands.START_WEIGHT_MEAS, duration);
342
+ // Stop streaming if duration is set
343
+ if (duration !== 0) {
344
+ await this.stop();
345
+ }
346
+ };
347
+ /**
348
+ * Retrieves the entire 320 bytes of non-volatile memory from the device.
349
+ *
350
+ * The memory consists of 10 segments, each 32 bytes long. If any segment was previously written,
351
+ * the corresponding data will appear in the response. Unused portions of the memory are
352
+ * padded with whitespace.
353
+ *
354
+ * @returns {Promise<string>} A Promise that resolves with the 320-byte memory content as a string,
355
+ */
356
+ this.text = async () => {
357
+ let response = undefined;
358
+ await this.write("uart", "tx", this.commands.GET_TEXT, 250, (data) => {
359
+ response = data;
360
+ });
361
+ return response;
362
+ };
363
+ }
364
+ }
365
+ exports.Motherboard = Motherboard;
366
+ /**
367
+ * Length of the packet received from the device.
368
+ * @type {number}
369
+ * @static
370
+ * @readonly
371
+ * @constant
372
+ */
373
+ Motherboard.packetLength = 32;
374
+ /**
375
+ * Number of samples contained in the data packet.
376
+ * @type {number}
377
+ * @static
378
+ * @readonly
379
+ * @constant
380
+ */
381
+ Motherboard.samplesNumber = 3;
382
+ //# sourceMappingURL=motherboard.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motherboard.model.js","sourceRoot":"","sources":["../../../../src/models/device/motherboard.model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Device } from "../device.model.js";
2
+ import type { ImySmartBoard } from "../../interfaces/device/mysmartboard.interface.js";
3
+ /**
4
+ * Represents a Smartboard Climbing mySmartBoard device.
5
+ * TODO: Add services, do you own a mySmartBoard? Help us!
6
+ * {@link https://www.smartboard-climbing.com}
7
+ */
8
+ export declare class mySmartBoard extends Device implements ImySmartBoard {
9
+ constructor();
10
+ }
11
+ //# sourceMappingURL=mysmartboard.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysmartboard.model.d.ts","sourceRoot":"","sources":["../../../../src/models/device/mysmartboard.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAA;AAEtF;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,MAAO,YAAW,aAAa;;CAOhE"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mySmartBoard = void 0;
4
+ const device_model_js_1 = require("../device.model.js");
5
+ /**
6
+ * Represents a Smartboard Climbing mySmartBoard device.
7
+ * TODO: Add services, do you own a mySmartBoard? Help us!
8
+ * {@link https://www.smartboard-climbing.com}
9
+ */
10
+ class mySmartBoard extends device_model_js_1.Device {
11
+ constructor() {
12
+ super({
13
+ filters: [{ name: "mySmartBoard" }],
14
+ services: [],
15
+ });
16
+ }
17
+ }
18
+ exports.mySmartBoard = mySmartBoard;
19
+ //# sourceMappingURL=mysmartboard.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysmartboard.model.js","sourceRoot":"","sources":["../../../../src/models/device/mysmartboard.model.ts"],"names":[],"mappings":";;;AAAA,wDAA2C;AAG3C;;;;GAIG;AACH,MAAa,YAAa,SAAQ,wBAAM;IACtC;QACE,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;YACnC,QAAQ,EAAE,EAAE;SACb,CAAC,CAAA;IACJ,CAAC;CACF;AAPD,oCAOC"}
@@ -0,0 +1,39 @@
1
+ import { Device } from "../device.model.js";
2
+ import type { IProgressor } from "../../interfaces/device/progressor.interface.js";
3
+ /**
4
+ * Represents a Tindeq Progressor device.
5
+ * {@link https://tindeq.com}
6
+ */
7
+ export declare class Progressor extends Device implements IProgressor {
8
+ constructor();
9
+ /**
10
+ * Retrieves battery or voltage information from the device.
11
+ * @returns {Promise<string | undefined>} A Promise that resolves with the battery or voltage information,
12
+ */
13
+ battery: () => Promise<string | undefined>;
14
+ /**
15
+ * Retrieves firmware version from the device.
16
+ * @returns {Promise<string>} A Promise that resolves with the firmware version,
17
+ */
18
+ firmware: () => Promise<string | undefined>;
19
+ /**
20
+ * Handles data received from the device, processes weight measurements,
21
+ * and updates mass data including maximum and average values.
22
+ * It also handles command responses for retrieving device information.
23
+ *
24
+ * @param {DataView} value - The notification event.
25
+ */
26
+ handleNotifications: (value: DataView) => void;
27
+ /**
28
+ * Stops the data stream on the specified device.
29
+ * @returns {Promise<void>} A promise that resolves when the stream is stopped.
30
+ */
31
+ stop: () => Promise<void>;
32
+ /**
33
+ * Starts streaming data from the specified device.
34
+ * @param {number} [duration=0] - The duration of the stream in milliseconds. If set to 0, stream will continue indefinitely.
35
+ * @returns {Promise<void>} A promise that resolves when the streaming operation is completed.
36
+ */
37
+ stream: (duration?: number) => Promise<void>;
38
+ }
39
+ //# sourceMappingURL=progressor.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressor.model.d.ts","sourceRoot":"","sources":["../../../../src/models/device/progressor.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAA;AAqClF;;;GAGG;AACH,qBAAa,UAAW,SAAQ,MAAO,YAAW,WAAW;;IAoD3D;;;OAGG;IACH,OAAO,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM9C;IAED;;;OAGG;IACH,QAAQ,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM/C;IAED;;;;;;OAMG;IACM,mBAAmB,GAAI,OAAO,QAAQ,KAAG,IAAI,CA0ErD;IAED;;;OAGG;IACH,IAAI,QAAa,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED;;;;OAIG;IACH,MAAM,GAAU,iBAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAS3C;CACF"}