@hangtime/grip-connect 0.13.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -9
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces/device/aurora.interface.d.ts +17 -0
- package/dist/cjs/interfaces/device/aurora.interface.d.ts.map +1 -0
- package/dist/cjs/interfaces/device/{kilterboard.interface.js → aurora.interface.js} +1 -1
- package/dist/cjs/interfaces/device/aurora.interface.js.map +1 -0
- package/dist/cjs/interfaces/device/motherboard.interface.d.ts +1 -1
- package/dist/cjs/interfaces/device/pb-700bt.interface.d.ts +53 -0
- package/dist/cjs/interfaces/device/pb-700bt.interface.d.ts.map +1 -0
- package/dist/cjs/interfaces/device/pb-700bt.interface.js +3 -0
- package/dist/cjs/interfaces/device/pb-700bt.interface.js.map +1 -0
- package/dist/cjs/interfaces/index.d.ts +2 -1
- package/dist/cjs/interfaces/index.d.ts.map +1 -1
- package/dist/cjs/models/device/{kilterboard.model.d.ts → aurora.model.d.ts} +82 -40
- package/dist/cjs/models/device/aurora.model.d.ts.map +1 -0
- package/dist/cjs/models/device/aurora.model.js +407 -0
- package/dist/cjs/models/device/aurora.model.js.map +1 -0
- package/dist/cjs/models/device/climbro.model.js +1 -1
- package/dist/cjs/models/device/climbro.model.js.map +1 -1
- package/dist/cjs/models/device/cts500.model.d.ts.map +1 -1
- package/dist/cjs/models/device/cts500.model.js +12 -4
- package/dist/cjs/models/device/cts500.model.js.map +1 -1
- package/dist/cjs/models/device/forceboard.model.d.ts.map +1 -1
- package/dist/cjs/models/device/forceboard.model.js +6 -2
- package/dist/cjs/models/device/forceboard.model.js.map +1 -1
- package/dist/cjs/models/device/motherboard.model.d.ts +4 -1
- package/dist/cjs/models/device/motherboard.model.d.ts.map +1 -1
- package/dist/cjs/models/device/motherboard.model.js +26 -10
- package/dist/cjs/models/device/motherboard.model.js.map +1 -1
- package/dist/cjs/models/device/pb-700bt.model.d.ts +2 -1
- package/dist/cjs/models/device/pb-700bt.model.d.ts.map +1 -1
- package/dist/cjs/models/device/pb-700bt.model.js.map +1 -1
- package/dist/cjs/models/device/progressor.model.d.ts.map +1 -1
- package/dist/cjs/models/device/progressor.model.js +1 -6
- package/dist/cjs/models/device/progressor.model.js.map +1 -1
- package/dist/cjs/models/device/wh-c06.model.d.ts +2 -0
- package/dist/cjs/models/device/wh-c06.model.d.ts.map +1 -1
- package/dist/cjs/models/device/wh-c06.model.js +45 -34
- package/dist/cjs/models/device/wh-c06.model.js.map +1 -1
- package/dist/cjs/models/device.model.d.ts +18 -5
- package/dist/cjs/models/device.model.d.ts.map +1 -1
- package/dist/cjs/models/device.model.js +71 -16
- package/dist/cjs/models/device.model.js.map +1 -1
- package/dist/cjs/models/index.d.ts +1 -1
- package/dist/cjs/models/index.d.ts.map +1 -1
- package/dist/cjs/models/index.js +3 -4
- package/dist/cjs/models/index.js.map +1 -1
- package/dist/cjs/package.json +3 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/device/aurora.interface.d.ts +17 -0
- package/dist/interfaces/device/aurora.interface.d.ts.map +1 -0
- package/dist/interfaces/device/aurora.interface.js +2 -0
- package/dist/interfaces/device/aurora.interface.js.map +1 -0
- package/dist/interfaces/device/motherboard.interface.d.ts +1 -1
- package/dist/interfaces/device/pb-700bt.interface.d.ts +53 -0
- package/dist/interfaces/device/pb-700bt.interface.d.ts.map +1 -0
- package/dist/interfaces/device/pb-700bt.interface.js +2 -0
- package/dist/interfaces/device/pb-700bt.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +2 -1
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/models/device/{kilterboard.model.d.ts → aurora.model.d.ts} +82 -40
- package/dist/models/device/aurora.model.d.ts.map +1 -0
- package/dist/models/device/aurora.model.js +401 -0
- package/dist/models/device/aurora.model.js.map +1 -0
- package/dist/models/device/climbro.model.js +1 -1
- package/dist/models/device/climbro.model.js.map +1 -1
- package/dist/models/device/cts500.model.d.ts.map +1 -1
- package/dist/models/device/cts500.model.js +12 -4
- package/dist/models/device/cts500.model.js.map +1 -1
- package/dist/models/device/forceboard.model.d.ts.map +1 -1
- package/dist/models/device/forceboard.model.js +6 -2
- package/dist/models/device/forceboard.model.js.map +1 -1
- package/dist/models/device/motherboard.model.d.ts +4 -1
- package/dist/models/device/motherboard.model.d.ts.map +1 -1
- package/dist/models/device/motherboard.model.js +26 -10
- package/dist/models/device/motherboard.model.js.map +1 -1
- package/dist/models/device/pb-700bt.model.d.ts +2 -1
- package/dist/models/device/pb-700bt.model.d.ts.map +1 -1
- package/dist/models/device/pb-700bt.model.js.map +1 -1
- package/dist/models/device/progressor.model.d.ts.map +1 -1
- package/dist/models/device/progressor.model.js +1 -6
- package/dist/models/device/progressor.model.js.map +1 -1
- package/dist/models/device/wh-c06.model.d.ts +2 -0
- package/dist/models/device/wh-c06.model.d.ts.map +1 -1
- package/dist/models/device/wh-c06.model.js +44 -34
- package/dist/models/device/wh-c06.model.js.map +1 -1
- package/dist/models/device.model.d.ts +18 -5
- package/dist/models/device.model.d.ts.map +1 -1
- package/dist/models/device.model.js +71 -16
- package/dist/models/device.model.js.map +1 -1
- package/dist/models/index.d.ts +1 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/models/index.js.map +1 -1
- package/package.json +45 -42
- package/src/index.ts +4 -3
- package/src/interfaces/device/aurora.interface.ts +18 -0
- package/src/interfaces/device/motherboard.interface.ts +1 -1
- package/src/interfaces/device/pb-700bt.interface.ts +61 -0
- package/src/interfaces/index.ts +4 -2
- package/src/models/device/aurora.model.ts +497 -0
- package/src/models/device/climbro.model.ts +1 -1
- package/src/models/device/cts500.model.ts +14 -7
- package/src/models/device/forceboard.model.ts +6 -2
- package/src/models/device/motherboard.model.ts +51 -9
- package/src/models/device/pb-700bt.model.ts +2 -1
- package/src/models/device/progressor.model.ts +1 -6
- package/src/models/device/wh-c06.model.ts +54 -42
- package/src/models/device.model.ts +82 -16
- package/src/models/index.ts +2 -2
- package/dist/cjs/interfaces/device/kilterboard.interface.d.ts +0 -17
- package/dist/cjs/interfaces/device/kilterboard.interface.d.ts.map +0 -1
- package/dist/cjs/interfaces/device/kilterboard.interface.js.map +0 -1
- package/dist/cjs/models/device/kilterboard.model.d.ts.map +0 -1
- package/dist/cjs/models/device/kilterboard.model.js +0 -327
- package/dist/cjs/models/device/kilterboard.model.js.map +0 -1
- package/dist/interfaces/device/kilterboard.interface.d.ts +0 -17
- package/dist/interfaces/device/kilterboard.interface.d.ts.map +0 -1
- package/dist/interfaces/device/kilterboard.interface.js +0 -2
- package/dist/interfaces/device/kilterboard.interface.js.map +0 -1
- package/dist/models/device/kilterboard.model.d.ts.map +0 -1
- package/dist/models/device/kilterboard.model.js +0 -323
- package/dist/models/device/kilterboard.model.js.map +0 -1
- package/dist/tsconfig.cjs.tsbuildinfo +0 -1
- package/src/interfaces/device/kilterboard.interface.ts +0 -12
- package/src/models/device/kilterboard.model.ts +0 -347
package/README.md
CHANGED
|
@@ -12,12 +12,12 @@ the [Griptonite Motherboard](https://griptonite.io/shop/motherboard/),
|
|
|
12
12
|
[Frez Dyno](https://shop.frez.app/products/pre-order-frez-dyno), [Entralpi](https://entralpi.com/),
|
|
13
13
|
[Climbro](https://climbro.com/), or [mySmartBoard](https://www.smartboard-climbing.com/)
|
|
14
14
|
|
|
15
|
-
And LED system boards from [Aurora Climbing](https://auroraclimbing.com/) like the
|
|
16
|
-
[Kilter Board](https://
|
|
17
|
-
[Tension Board](https://tensionclimbing.com/product/tension-board-2/),
|
|
15
|
+
And LED system boards with a controller box from [Aurora Climbing](https://auroraclimbing.com/) like the
|
|
16
|
+
[Kilter Board](https://kilterboard.io/), [Tension Board](https://tensionclimbing.com/product/tension-board-2/),
|
|
18
17
|
[Grasshopper Board](https://grasshopperclimbing.com/products/),
|
|
19
|
-
[Decoy Board](https://decoy-holds.com/pages/decoy-board),
|
|
20
|
-
[
|
|
18
|
+
[Decoy Board](https://decoy-holds.com/pages/decoy-board),
|
|
19
|
+
[Touchstone Board](https://touchstoneclimbing.com/team-training-center/training-center-boards/) and
|
|
20
|
+
[So iLL Board](https://soillholds.com/products/connect-board).
|
|
21
21
|
|
|
22
22
|
And gyroscopic hand exercisers, such as the [NSD PB-700BT](https://www.nsd.com.tw/).
|
|
23
23
|
|
|
@@ -41,7 +41,7 @@ Learn more: [Documentation](https://stevie-ray.github.io/hangtime-grip-connect/)
|
|
|
41
41
|
|
|
42
42
|
[Force Measurement App](https://grip-connect.vercel.app/) -
|
|
43
43
|
[Flappy Bird](https://grip-connect-flappy-bird.vercel.app/) - [Pong](https://hangtime-grip-connect-pong.vercel.app/) -
|
|
44
|
-
[
|
|
44
|
+
[Aurora LED Boards](https://grip-connect-aurora.vercel.app/?route=p1083r15p1117r15p1164r12p1185r12p1233r13p1282r13p1303r13p1372r13p1392r14p1505r15)
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
47
|
npx @hangtime/cli
|
|
@@ -151,7 +151,7 @@ document.querySelector("#motherboard").addEventListener("click", async () => {
|
|
|
151
151
|
- By default [watchAdvertisements](https://chromestatus.com/feature/5180688812736512) isn't supported . For Chrome,
|
|
152
152
|
enable it at `chrome://flags/#enable-experimental-web-platform-features`.
|
|
153
153
|
- ✅ [CTS500](https://stevie-ray.github.io/hangtime-grip-connect/devices/cts500.html)
|
|
154
|
-
- ✅ [
|
|
154
|
+
- ✅ [Aurora Boards](https://stevie-ray.github.io/hangtime-grip-connect/devices/aurora.html)
|
|
155
155
|
- ✅ [Entralpi](https://stevie-ray.github.io/hangtime-grip-connect/devices/entralpi.html) / Lefu / Unique CW275 Scale
|
|
156
156
|
- ✅ [PitchSix - Force Board](https://stevie-ray.github.io/hangtime-grip-connect/devices/forceboard.html)
|
|
157
157
|
- ✅ [Climbro](https://stevie-ray.github.io/hangtime-grip-connect/devices/climbro.html)
|
|
@@ -193,8 +193,8 @@ A special thank you to:
|
|
|
193
193
|
- [@StuartLittlefair](https://github.com/StuartLittlefair) for his
|
|
194
194
|
[PyTindeq](https://github.com/StuartLittlefair/PyTindeq) implementation.
|
|
195
195
|
- [@Phil9l](https://github.com/phil9l) for his research and providing a [blog post](https://bazun.me/blog/kiterboard/)
|
|
196
|
-
on how to connect with
|
|
197
|
-
- [@1-max-1](https://github.com/1-max-1) for the docs on his
|
|
196
|
+
on how to connect with Aurora LED boards.
|
|
197
|
+
- [@1-max-1](https://github.com/1-max-1) for the docs on his Aurora board
|
|
198
198
|
[simulator](https://github.com/1-max-1/fake_kilter_board) that I converted to
|
|
199
199
|
[hangtime-arduino-kilterboard](https://github.com/Stevie-Ray/hangtime-arduino-kilterboard).
|
|
200
200
|
- [@sebws](https://github.com/sebws) for a [code sample](https://github.com/sebws/Crane) of the Weiheng WH-C06 App.
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { IClimbro, ICTS500, IEntralpi, IForceBoard,
|
|
1
|
+
export type { AuroraLedPlacement, IAurora, IClimbro, ICTS500, IEntralpi, IForceBoard, IMotherboard, ImySmartBoard, IPB700BT, IProgressor, ISmartBoardPro, IWHC06, } from "./interfaces/index.js";
|
|
2
2
|
export type { ForceUnit, ForceMeasurement, NotifyCallback, WriteCallback, ActiveCallback, } from "./interfaces/callback.interface.js";
|
|
3
|
-
export { Climbro, CTS500, Entralpi, ForceBoard,
|
|
3
|
+
export { AuroraBoard, Climbro, CTS500, Entralpi, ForceBoard, Motherboard, mySmartBoard, PB700BT, Progressor, SmartBoardPro, WHC06, } from "./models/index.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,cAAc,EACd,MAAM,GACP,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EACL,WAAW,EACX,OAAO,EACP,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,aAAa,EACb,KAAK,GACN,MAAM,mBAAmB,CAAA"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WHC06 = exports.SmartBoardPro = exports.Progressor = exports.PB700BT = exports.mySmartBoard = exports.Motherboard = exports.
|
|
3
|
+
exports.WHC06 = exports.SmartBoardPro = exports.Progressor = exports.PB700BT = exports.mySmartBoard = exports.Motherboard = exports.ForceBoard = exports.Entralpi = exports.CTS500 = exports.Climbro = exports.AuroraBoard = void 0;
|
|
4
4
|
var index_js_1 = require("./models/index.js");
|
|
5
|
+
Object.defineProperty(exports, "AuroraBoard", { enumerable: true, get: function () { return index_js_1.AuroraBoard; } });
|
|
5
6
|
Object.defineProperty(exports, "Climbro", { enumerable: true, get: function () { return index_js_1.Climbro; } });
|
|
6
7
|
Object.defineProperty(exports, "CTS500", { enumerable: true, get: function () { return index_js_1.CTS500; } });
|
|
7
8
|
Object.defineProperty(exports, "Entralpi", { enumerable: true, get: function () { return index_js_1.Entralpi; } });
|
|
8
9
|
Object.defineProperty(exports, "ForceBoard", { enumerable: true, get: function () { return index_js_1.ForceBoard; } });
|
|
9
|
-
Object.defineProperty(exports, "KilterBoard", { enumerable: true, get: function () { return index_js_1.KilterBoard; } });
|
|
10
|
-
Object.defineProperty(exports, "KilterBoardPlacementRoles", { enumerable: true, get: function () { return index_js_1.KilterBoardPlacementRoles; } });
|
|
11
10
|
Object.defineProperty(exports, "Motherboard", { enumerable: true, get: function () { return index_js_1.Motherboard; } });
|
|
12
11
|
Object.defineProperty(exports, "mySmartBoard", { enumerable: true, get: function () { return index_js_1.mySmartBoard; } });
|
|
13
12
|
Object.defineProperty(exports, "PB700BT", { enumerable: true, get: function () { return index_js_1.PB700BT; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAuBA,8CAY0B;AAXxB,uGAAA,WAAW,OAAA;AACX,mGAAA,OAAO,OAAA;AACP,kGAAA,MAAM,OAAA;AACN,oGAAA,QAAQ,OAAA;AACR,sGAAA,UAAU,OAAA;AACV,uGAAA,WAAW,OAAA;AACX,wGAAA,YAAY,OAAA;AACZ,mGAAA,OAAO,OAAA;AACP,sGAAA,UAAU,OAAA;AACV,yGAAA,aAAa,OAAA;AACb,iGAAA,KAAK,OAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IDevice } from "../device.interface.js";
|
|
2
|
+
export interface AuroraLedPlacement {
|
|
3
|
+
position: number;
|
|
4
|
+
color: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Interface representing an Aurora LED board device.
|
|
8
|
+
*/
|
|
9
|
+
export interface IAurora extends IDevice {
|
|
10
|
+
/**
|
|
11
|
+
* Configures the LEDs based on an array of climb placements.
|
|
12
|
+
* @param config - Array of climb placements for the LEDs. Each placement must include an LED position and color hex string.
|
|
13
|
+
* @returns A promise that resolves with the payload array if LED settings were applied, or `undefined` if no action was taken.
|
|
14
|
+
*/
|
|
15
|
+
led(config?: AuroraLedPlacement[]): Promise<number[] | undefined>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=aurora.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aurora.interface.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/device/aurora.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAErD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACtC;;;;OAIG;IACH,GAAG,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;CAClE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aurora.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/device/aurora.interface.ts"],"names":[],"mappings":""}
|
|
@@ -26,7 +26,7 @@ export interface IMotherboard extends IDevice {
|
|
|
26
26
|
/**
|
|
27
27
|
* Sets the LED color based on a single color option.
|
|
28
28
|
* @param {"green" | "red" | "orange"} [config] - Optional color for the LEDs.
|
|
29
|
-
* @returns {Promise<number[] | undefined>} A promise that resolves with the payload array for
|
|
29
|
+
* @returns {Promise<number[] | undefined>} A promise that resolves with the payload array for Aurora-compatible LED settings if LEDs were applied.
|
|
30
30
|
*/
|
|
31
31
|
led(config?: "green" | "red" | "orange"): Promise<number[] | undefined>;
|
|
32
32
|
/**
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { IDevice } from "../device.interface.js";
|
|
2
|
+
/**
|
|
3
|
+
* Interface representing the NSD PB-700BT device, extending the base Device interface.
|
|
4
|
+
*/
|
|
5
|
+
export interface IPB700BT extends IDevice {
|
|
6
|
+
/**
|
|
7
|
+
* Retrieves battery or voltage information from the device.
|
|
8
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the battery or voltage information.
|
|
9
|
+
*/
|
|
10
|
+
battery(): Promise<string | undefined>;
|
|
11
|
+
/**
|
|
12
|
+
* Retrieves IEEE 11073-20601 Regulatory Certification from the device.
|
|
13
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the firmware version.
|
|
14
|
+
*/
|
|
15
|
+
certification(): Promise<string | undefined>;
|
|
16
|
+
/**
|
|
17
|
+
* Retrieves firmware version from the device.
|
|
18
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the firmware version.
|
|
19
|
+
*/
|
|
20
|
+
firmware(): Promise<string | undefined>;
|
|
21
|
+
/**
|
|
22
|
+
* Retrieves hardware version from the device.
|
|
23
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the hardware version.
|
|
24
|
+
*/
|
|
25
|
+
hardware(): Promise<string | undefined>;
|
|
26
|
+
/**
|
|
27
|
+
* Retrieves manufacturer information from the device.
|
|
28
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the manufacturer information.
|
|
29
|
+
*/
|
|
30
|
+
manufacturer(): Promise<string | undefined>;
|
|
31
|
+
/**
|
|
32
|
+
* Retrieves model number from the device.
|
|
33
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the model number.
|
|
34
|
+
*/
|
|
35
|
+
model(): Promise<string | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* Retrieves PnP ID from the device, a set of values that used to create a device ID value that is unique for this device.
|
|
38
|
+
* Included in the characteristic is a Vendor ID Source field, a Vendor ID field, a Product ID field and a Product Version field
|
|
39
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the PnP ID.
|
|
40
|
+
*/
|
|
41
|
+
pnp(): Promise<string | undefined>;
|
|
42
|
+
/**
|
|
43
|
+
* Retrieves software version from the device.
|
|
44
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the software version.
|
|
45
|
+
*/
|
|
46
|
+
software(): Promise<string | undefined>;
|
|
47
|
+
/**
|
|
48
|
+
* Retrieves system id from the device.
|
|
49
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the system id.
|
|
50
|
+
*/
|
|
51
|
+
system(): Promise<string | undefined>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=pb-700bt.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pb-700bt.interface.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/device/pb-700bt.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,OAAO;IACvC;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEtC;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAE5C;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEvC;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEvC;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAE3C;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEpC;;;;OAIG;IACH,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAElC;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEvC;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pb-700bt.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/device/pb-700bt.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export type { IClimbro } from "./device/climbro.interface.js";
|
|
2
|
+
export type { AuroraLedPlacement, IAurora } from "./device/aurora.interface.js";
|
|
2
3
|
export type { ICTS500 } from "./device/cts500.interface.js";
|
|
3
4
|
export type { IEntralpi } from "./device/entralpi.interface.js";
|
|
4
5
|
export type { IForceBoard } from "./device/forceboard.interface.js";
|
|
5
|
-
export type { IKilterBoard } from "./device/kilterboard.interface.js";
|
|
6
6
|
export type { IMotherboard } from "./device/motherboard.interface.js";
|
|
7
7
|
export type { ImySmartBoard } from "./device/mysmartboard.interface.js";
|
|
8
8
|
export type { INordicDfuDevice } from "./nordic.interface.js";
|
|
9
|
+
export type { IPB700BT } from "./device/pb-700bt.interface.js";
|
|
9
10
|
export type { IProgressor } from "./device/progressor.interface.js";
|
|
10
11
|
export type { ISmartBoardPro } from "./device/smartboard-pro.interface.js";
|
|
11
12
|
export type { IWHC06 } from "./device/wh-c06.interface.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAE7D,YAAY,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAEnE,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAErE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAE7D,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE/E,YAAY,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAEnE,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAErE,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAEvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,YAAY,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAE9D,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAEnE,YAAY,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAE1E,YAAY,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { Device } from "../device.model.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { AuroraLedPlacement, IAurora } from "../../interfaces/device/aurora.interface.js";
|
|
3
3
|
/**
|
|
4
4
|
* For API level 2 and API level 3.
|
|
5
5
|
* The first byte in the data is dependent on where the packet is in the message as a whole.
|
|
6
|
-
* More details: https://github.com/1-max-1/fake_kilter_board
|
|
7
6
|
*/
|
|
8
|
-
export declare enum
|
|
7
|
+
export declare enum AuroraPacket {
|
|
9
8
|
/** If this packet is in the middle, the byte gets set to 77 (M). */
|
|
10
9
|
V2_MIDDLE = 77,
|
|
11
10
|
/** If this packet is the first packet in the message, then this byte gets set to 78 (N). */
|
|
12
11
|
V2_FIRST = 78,
|
|
13
|
-
/** If this is the last packet in the message, this byte gets set to 79 (
|
|
12
|
+
/** If this is the last packet in the message, this byte gets set to 79 (O). */
|
|
14
13
|
V2_LAST = 79,
|
|
15
14
|
/** If this packet is the only packet in the message, the byte gets set to 80 (P). Note that this takes priority over the other conditions. */
|
|
16
15
|
V2_ONLY = 80,
|
|
@@ -23,27 +22,15 @@ export declare enum KilterBoardPacket {
|
|
|
23
22
|
/** If this packet is the only packet in the message, the byte gets set to 84 (T). Note that this takes priority over the other conditions. */
|
|
24
23
|
V3_ONLY = 84
|
|
25
24
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Extracted from placement_roles database table.
|
|
28
|
-
*/
|
|
29
|
-
export declare const KilterBoardPlacementRoles: {
|
|
30
|
-
id: number;
|
|
31
|
-
product_id: number;
|
|
32
|
-
position: number;
|
|
33
|
-
name: string;
|
|
34
|
-
full_name: string;
|
|
35
|
-
led_color: string;
|
|
36
|
-
screen_color: string;
|
|
37
|
-
}[];
|
|
38
25
|
/**
|
|
39
26
|
* Represents a Aurora Climbing device.
|
|
40
|
-
*
|
|
27
|
+
* Aurora Board
|
|
41
28
|
* {@link https://auroraclimbing.com}
|
|
42
29
|
*/
|
|
43
|
-
export declare class
|
|
30
|
+
export declare class Aurora extends Device implements IAurora {
|
|
44
31
|
/**
|
|
45
32
|
* UUID for the Aurora Climbing Advertising service.
|
|
46
|
-
* This constant is used to identify the specific Bluetooth service for
|
|
33
|
+
* This constant is used to identify the specific Bluetooth service for Aurora LED boards.
|
|
47
34
|
* @type {string}
|
|
48
35
|
* @static
|
|
49
36
|
* @readonly
|
|
@@ -70,9 +57,20 @@ export declare class KilterBoard extends Device implements IKilterBoard {
|
|
|
70
57
|
* @constant
|
|
71
58
|
*/
|
|
72
59
|
private static readonly maxBluetoothMessageSize;
|
|
60
|
+
private apiLevel;
|
|
61
|
+
private writeQueue;
|
|
73
62
|
constructor();
|
|
74
63
|
/**
|
|
75
|
-
*
|
|
64
|
+
* Sets the API level from the Aurora board name format:
|
|
65
|
+
* display name, optional #serial, optional trailing @apiLevel. Missing @apiLevel defaults to API level 2.
|
|
66
|
+
* @param name - The name of the device.
|
|
67
|
+
*/
|
|
68
|
+
protected setApiLevelFromDeviceName(name?: string | null): void;
|
|
69
|
+
protected onBluetoothDeviceSelected(device: BluetoothDevice): void;
|
|
70
|
+
private getApiLevelFromDeviceName;
|
|
71
|
+
private normalizeApiLevel;
|
|
72
|
+
/**
|
|
73
|
+
* Calculates the checksum for a byte array by summing up all packet-data bytes in a single-byte variable.
|
|
76
74
|
* @param data - The array of bytes to calculate the checksum for.
|
|
77
75
|
* @returns {number} The calculated checksum value.
|
|
78
76
|
*/
|
|
@@ -84,13 +82,20 @@ export declare class KilterBoard extends Device implements IKilterBoard {
|
|
|
84
82
|
*/
|
|
85
83
|
private wrapBytes;
|
|
86
84
|
/**
|
|
87
|
-
* Encodes
|
|
88
|
-
* The lowest 8 bits
|
|
89
|
-
* The highest 8 bits of the position get put in the second byte of the group.
|
|
85
|
+
* Encodes an API level 2 position into two bytes.
|
|
86
|
+
* The lowest 8 bits go in the first byte; the highest 2 bits are reserved for the second byte.
|
|
90
87
|
* @param position - The position to encode.
|
|
91
88
|
* @returns {number[]} The encoded byte array representing the position.
|
|
92
89
|
*/
|
|
93
|
-
private
|
|
90
|
+
private validatePosition;
|
|
91
|
+
private encodePositionV2;
|
|
92
|
+
/**
|
|
93
|
+
* Encodes an API level 3 position into two bytes.
|
|
94
|
+
* The lowest 8 bits go in the first byte; the highest 8 bits go in the second byte.
|
|
95
|
+
* @param position - The position to encode.
|
|
96
|
+
* @returns {number[]} The encoded byte array representing the position.
|
|
97
|
+
*/
|
|
98
|
+
private encodePositionV3;
|
|
94
99
|
/**
|
|
95
100
|
* Encodes a color string into a numeric representation.
|
|
96
101
|
* The rgb color, 3 bits for the R and G components, 2 bits for the B component, with the 3 R bits occupying the high end of the byte and the 2 B bits in the low end (hence 3 G bits in the middle).
|
|
@@ -98,20 +103,51 @@ export declare class KilterBoard extends Device implements IKilterBoard {
|
|
|
98
103
|
* @param color - The color string in hexadecimal format (e.g., 'FFFFFF').
|
|
99
104
|
* @returns The encoded /compressed color value.
|
|
100
105
|
*/
|
|
101
|
-
private
|
|
106
|
+
private encodeColorV3;
|
|
107
|
+
/**
|
|
108
|
+
* Encodes a color string using API level 2's 2-bit RGB format.
|
|
109
|
+
* Format: 0bRRGGBB00. The lowest two bits are reserved for the high bits of the LED position.
|
|
110
|
+
* @param color - The color string in hexadecimal format (e.g., 'FFFFFF').
|
|
111
|
+
* @returns The encoded /compressed color value.
|
|
112
|
+
*/
|
|
113
|
+
private encodeColorV2;
|
|
114
|
+
private normalizeColor;
|
|
102
115
|
/**
|
|
103
|
-
* Encodes
|
|
116
|
+
* Encodes an API level 2 placement into two bytes.
|
|
117
|
+
* API level 2 stores a 10-bit position and a 2-bit-per-channel RGB color.
|
|
104
118
|
* @param position - The position to encode.
|
|
105
119
|
* @param ledColor - The color of the LED in hexadecimal format (e.g., 'FFFFFF').
|
|
106
120
|
* @returns The encoded byte array representing the placement.
|
|
107
121
|
*/
|
|
108
|
-
private
|
|
122
|
+
private encodePlacementV2;
|
|
109
123
|
/**
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* @
|
|
124
|
+
* Encodes an API level 3 placement into three bytes.
|
|
125
|
+
* API level 3 stores a 16-bit position and a 3/3/2-bit RGB color.
|
|
126
|
+
* @param position - The position to encode.
|
|
127
|
+
* @param ledColor - The color of the LED in hexadecimal format (e.g., 'FFFFFF').
|
|
128
|
+
* @returns The encoded byte array representing the placement.
|
|
129
|
+
*/
|
|
130
|
+
private encodePlacementV3;
|
|
131
|
+
/**
|
|
132
|
+
* Resolves placements into LED positions and concrete hex colors.
|
|
133
|
+
* @param climbPlacementList - The list of climb placements containing position and color.
|
|
134
|
+
* @returns The resolved placements ready for API-level encoding.
|
|
135
|
+
*/
|
|
136
|
+
private resolvePlacements;
|
|
137
|
+
private buildPayload;
|
|
138
|
+
/**
|
|
139
|
+
* Prepares API level 2 byte arrays for transmission based on a list of climb placements.
|
|
140
|
+
* @param climbPlacementList - The list of climb placements containing position and color.
|
|
141
|
+
* @returns The final byte array ready for transmission.
|
|
142
|
+
*/
|
|
143
|
+
private prepBytesV2;
|
|
144
|
+
/**
|
|
145
|
+
* Prepares API level 3 byte arrays for transmission based on a list of climb placements.
|
|
146
|
+
* @param climbPlacementList - The list of climb placements containing position and color.
|
|
147
|
+
* @returns The final byte array ready for transmission.
|
|
113
148
|
*/
|
|
114
149
|
private prepBytesV3;
|
|
150
|
+
private prepBytes;
|
|
115
151
|
/**
|
|
116
152
|
* Splits a collection into slices of the specified length.
|
|
117
153
|
* https://github.com/ramda/ramda/blob/master/source/splitEvery
|
|
@@ -121,26 +157,32 @@ export declare class KilterBoard extends Device implements IKilterBoard {
|
|
|
121
157
|
*/
|
|
122
158
|
private splitEvery;
|
|
123
159
|
/**
|
|
124
|
-
*
|
|
160
|
+
* Aurora boards only support messages of 20 bytes
|
|
125
161
|
* at a time. This method splits a full message into parts
|
|
126
162
|
* of 20 bytes
|
|
127
163
|
*
|
|
128
164
|
* @param buffer
|
|
129
165
|
*/
|
|
130
166
|
private splitMessages;
|
|
167
|
+
private getWriteCharacteristic;
|
|
131
168
|
/**
|
|
132
169
|
* Sends a series of messages to a device.
|
|
133
170
|
*/
|
|
134
171
|
private writeMessageSeries;
|
|
172
|
+
private queueWrite;
|
|
173
|
+
private writeMessageChunk;
|
|
174
|
+
private canWriteWithoutResponse;
|
|
135
175
|
/**
|
|
136
176
|
* Configures the LEDs based on an array of climb placements.
|
|
137
|
-
* @param
|
|
138
|
-
* @returns {Promise<number[] | undefined>} A promise that resolves with the payload array for the
|
|
139
|
-
*/
|
|
140
|
-
led: (config
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
177
|
+
* @param config - Array of climb placements for the LEDs. Each placement must include a color hex string.
|
|
178
|
+
* @returns {Promise<number[] | undefined>} A promise that resolves with the payload array for the Aurora board if LED settings were applied, or `undefined` if no action was taken.
|
|
179
|
+
*/
|
|
180
|
+
led: (config?: AuroraLedPlacement[]) => Promise<number[] | undefined>;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Aurora Board
|
|
184
|
+
* {@link https://auroraboardapp.com}
|
|
185
|
+
*/
|
|
186
|
+
export declare class AuroraBoard extends Aurora implements IAurora {
|
|
145
187
|
}
|
|
146
|
-
//# sourceMappingURL=
|
|
188
|
+
//# sourceMappingURL=aurora.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aurora.model.d.ts","sourceRoot":"","sources":["../../../../src/models/device/aurora.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,6CAA6C,CAAA;AAgB9F;;;GAGG;AACH,oBAAY,YAAY;IACtB,oEAAoE;IACpE,SAAS,KAAK;IACd,4FAA4F;IAC5F,QAAQ,KAAA;IACR,+EAA+E;IAC/E,OAAO,KAAA;IACP,8IAA8I;IAC9I,OAAO,KAAA;IACP,oEAAoE;IACpE,SAAS,KAAA;IACT,4FAA4F;IAC5F,QAAQ,KAAA;IACR,+EAA+E;IAC/E,OAAO,KAAA;IACP,8IAA8I;IAC9I,OAAO,KAAA;CACR;AAED;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,MAAO,YAAW,OAAO;IACnD;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAyC;IAE3E;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAc;IAE1D;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAa;IAE5D,OAAO,CAAC,QAAQ,CAAgB;IAEhC,OAAO,CAAC,UAAU,CAAmC;;IAiCrD;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;cAM5C,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI3E,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,iBAAiB;IAQzB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAQhB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAiBjB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IASxB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAerB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,cAAc;IAUtB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,YAAY;IAoCpB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,SAAS;IAIjB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAYlB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CACsE;IAE3F,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;YACW,kBAAkB;YAUlB,UAAU;YAOV,iBAAiB;IAgB/B,OAAO,CAAC,uBAAuB;IAO/B;;;;OAIG;IACH,GAAG,GAAU,SAAQ,kBAAkB,EAAO,KAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAc7E;CACF;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,MAAO,YAAW,OAAO;CAAG"}
|