incyclist-devices 1.5.37 → 2.0.0-beta.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.
Files changed (251) hide show
  1. package/README.MD +0 -0
  2. package/lib/adapters.d.ts +6 -0
  3. package/lib/adapters.js +30 -0
  4. package/lib/antv2/adapter-factory.d.ts +20 -10
  5. package/lib/antv2/adapter-factory.js +49 -33
  6. package/lib/antv2/adapter.d.ts +64 -0
  7. package/lib/antv2/adapter.js +299 -0
  8. package/lib/antv2/ant-interface.d.ts +11 -9
  9. package/lib/antv2/ant-interface.js +15 -11
  10. package/lib/antv2/fe/adapter.d.ts +25 -0
  11. package/lib/antv2/{fe.js → fe/adapter.js} +48 -72
  12. package/lib/antv2/fe/index.d.ts +2 -0
  13. package/lib/antv2/fe/index.js +7 -0
  14. package/lib/antv2/hr/adapter.d.ts +14 -0
  15. package/lib/antv2/hr/adapter.js +73 -0
  16. package/lib/antv2/hr/index.d.ts +2 -0
  17. package/lib/antv2/hr/index.js +7 -0
  18. package/lib/antv2/index.d.ts +7 -0
  19. package/lib/antv2/index.js +20 -0
  20. package/lib/antv2/modes/ant-fe-adv-st-mode.d.ts +9 -0
  21. package/lib/{ant/antfe → antv2/modes}/ant-fe-adv-st-mode.js +1 -1
  22. package/lib/antv2/modes/ant-fe-erg-mode.d.ts +6 -0
  23. package/lib/{ant/antfe → antv2/modes}/ant-fe-erg-mode.js +1 -1
  24. package/lib/antv2/modes/ant-fe-st-mode.d.ts +5 -0
  25. package/lib/{ant/antfe → antv2/modes}/ant-fe-st-mode.js +1 -1
  26. package/lib/antv2/pwr/adapter.d.ts +22 -0
  27. package/lib/antv2/{pwr.js → pwr/adapter.js} +38 -76
  28. package/lib/antv2/pwr/index.d.ts +2 -0
  29. package/lib/antv2/pwr/index.js +7 -0
  30. package/lib/antv2/types.d.ts +19 -0
  31. package/lib/antv2/types.js +2 -0
  32. package/lib/antv2/utils.d.ts +1 -0
  33. package/lib/antv2/utils.js +181 -0
  34. package/lib/base/adpater.d.ts +56 -0
  35. package/lib/base/adpater.js +144 -0
  36. package/lib/ble/adapter-factory.d.ts +31 -0
  37. package/lib/ble/adapter-factory.js +96 -0
  38. package/lib/ble/adapter.d.ts +41 -0
  39. package/lib/ble/adapter.js +188 -0
  40. package/lib/ble/{ble-device.d.ts → ble-comms.d.ts} +9 -4
  41. package/lib/ble/{ble-device.js → ble-comms.js} +23 -11
  42. package/lib/ble/ble-interface.d.ts +15 -24
  43. package/lib/ble/ble-interface.js +32 -137
  44. package/lib/ble/ble-peripheral.d.ts +3 -3
  45. package/lib/ble/ble-peripheral.js +14 -14
  46. package/lib/ble/ble.d.ts +9 -81
  47. package/lib/ble/ble.js +1 -39
  48. package/lib/ble/consts.d.ts +2 -0
  49. package/lib/ble/consts.js +3 -1
  50. package/lib/ble/cp/adapter.d.ts +23 -0
  51. package/lib/ble/cp/adapter.js +124 -0
  52. package/lib/ble/cp/comm.d.ts +28 -0
  53. package/lib/ble/cp/comm.js +140 -0
  54. package/lib/ble/cp/index.d.ts +4 -0
  55. package/lib/ble/cp/index.js +10 -0
  56. package/lib/ble/cp/types.d.ts +13 -0
  57. package/lib/ble/cp/types.js +2 -0
  58. package/lib/ble/elite/adapter.d.ts +20 -0
  59. package/lib/ble/elite/adapter.js +127 -0
  60. package/lib/ble/elite/comms.d.ts +28 -0
  61. package/lib/ble/elite/comms.js +139 -0
  62. package/lib/ble/elite/index.d.ts +3 -0
  63. package/lib/ble/elite/index.js +10 -0
  64. package/lib/ble/fm/adapter.d.ts +21 -0
  65. package/lib/ble/fm/adapter.js +190 -0
  66. package/lib/ble/fm/comms.d.ts +50 -0
  67. package/lib/ble/{fm.js → fm/comms.js} +3 -224
  68. package/lib/ble/fm/consts.d.ts +6 -0
  69. package/lib/ble/fm/consts.js +9 -0
  70. package/lib/ble/fm/index.d.ts +5 -0
  71. package/lib/ble/fm/index.js +13 -0
  72. package/lib/ble/fm/types.d.ts +25 -0
  73. package/lib/ble/fm/types.js +2 -0
  74. package/lib/ble/hr/adapter.d.ts +17 -0
  75. package/lib/ble/hr/adapter.js +62 -0
  76. package/lib/ble/hr/comm.d.ts +15 -0
  77. package/lib/ble/hr/comm.js +52 -0
  78. package/lib/ble/hr/index.d.ts +4 -0
  79. package/lib/ble/hr/index.js +10 -0
  80. package/lib/ble/hr/types.d.ts +5 -0
  81. package/lib/ble/hr/types.js +2 -0
  82. package/lib/ble/index.d.ts +8 -0
  83. package/lib/ble/index.js +26 -0
  84. package/lib/ble/tacx/adapter.d.ts +10 -0
  85. package/lib/ble/tacx/adapter.js +93 -0
  86. package/lib/ble/{tacx.d.ts → tacx/comms.d.ts} +6 -38
  87. package/lib/ble/{tacx.js → tacx/comms.js} +13 -112
  88. package/lib/ble/tacx/index.d.ts +4 -0
  89. package/lib/ble/tacx/index.js +10 -0
  90. package/lib/ble/tacx/types.d.ts +25 -0
  91. package/lib/ble/tacx/types.js +2 -0
  92. package/lib/ble/types.d.ts +101 -0
  93. package/lib/ble/types.js +19 -0
  94. package/lib/ble/utils.d.ts +7 -0
  95. package/lib/ble/utils.js +95 -0
  96. package/lib/ble/wahoo/adapter.d.ts +9 -0
  97. package/lib/ble/wahoo/adapter.js +93 -0
  98. package/lib/ble/{wahoo-kickr.d.ts → wahoo/comms.d.ts} +5 -39
  99. package/lib/ble/{wahoo-kickr.js → wahoo/comms.js} +14 -112
  100. package/lib/ble/wahoo/index.d.ts +4 -0
  101. package/lib/ble/wahoo/index.js +10 -0
  102. package/lib/ble/wahoo/types.d.ts +19 -0
  103. package/lib/ble/wahoo/types.js +2 -0
  104. package/lib/device.d.ts +0 -94
  105. package/lib/device.js +0 -76
  106. package/lib/index.d.ts +12 -0
  107. package/lib/index.js +38 -0
  108. package/lib/interfaces.d.ts +6 -0
  109. package/lib/interfaces.js +23 -0
  110. package/lib/{ble → modes}/ble-erg-mode.d.ts +4 -4
  111. package/lib/{ble → modes}/ble-erg-mode.js +2 -2
  112. package/lib/{ble → modes}/ble-st-mode.d.ts +3 -3
  113. package/lib/{ble → modes}/ble-st-mode.js +1 -1
  114. package/lib/{cycling-mode.d.ts → modes/cycling-mode.d.ts} +8 -8
  115. package/lib/modes/power-base.d.ts +3 -3
  116. package/lib/modes/power-base.js +4 -4
  117. package/lib/modes/power-meter.d.ts +3 -3
  118. package/lib/modes/simulator.d.ts +2 -2
  119. package/lib/modes/simulator.js +1 -1
  120. package/lib/serial/adapter-factory.d.ts +12 -0
  121. package/lib/serial/adapter-factory.js +30 -0
  122. package/lib/serial/adapter.d.ts +16 -0
  123. package/lib/serial/adapter.js +42 -0
  124. package/lib/serial/bindings/tcp.d.ts +44 -0
  125. package/lib/serial/bindings/tcp.js +270 -0
  126. package/lib/serial/comm.d.ts +7 -0
  127. package/lib/serial/comm.js +2 -0
  128. package/lib/{daum → serial/daum}/DaumAdapter.d.ts +13 -22
  129. package/lib/{daum → serial/daum}/DaumAdapter.js +44 -90
  130. package/lib/{daum → serial/daum}/DaumPowerMeterCyclingMode.d.ts +2 -2
  131. package/lib/{daum → serial/daum}/DaumPowerMeterCyclingMode.js +1 -1
  132. package/lib/{daum → serial/daum}/ERGCyclingMode.d.ts +3 -3
  133. package/lib/{daum → serial/daum}/ERGCyclingMode.js +3 -3
  134. package/lib/{daum → serial/daum}/SmartTrainerCyclingMode.d.ts +3 -3
  135. package/lib/{daum → serial/daum}/SmartTrainerCyclingMode.js +4 -3
  136. package/lib/serial/daum/classic/adapter.d.ts +29 -0
  137. package/lib/{daum/classic/DaumClassicAdapter.js → serial/daum/classic/adapter.js} +77 -50
  138. package/lib/{daum/classic/bike.d.ts → serial/daum/classic/comms.d.ts} +14 -16
  139. package/lib/{daum/classic/bike.js → serial/daum/classic/comms.js} +68 -152
  140. package/lib/serial/daum/classic/mock.d.ts +96 -0
  141. package/lib/serial/daum/classic/mock.js +365 -0
  142. package/lib/{daum/classic/DaumClassicCyclingMode.d.ts → serial/daum/classic/modes/daum-classic.d.ts} +3 -3
  143. package/lib/{daum/classic/DaumClassicCyclingMode.js → serial/daum/classic/modes/daum-classic.js} +2 -2
  144. package/lib/{daum → serial/daum}/classic/utils.d.ts +1 -1
  145. package/lib/serial/daum/premium/adapter.d.ts +24 -0
  146. package/lib/{daum/premium/DaumPremiumAdapter.js → serial/daum/premium/adapter.js} +99 -46
  147. package/lib/{daum/premium/bike.d.ts → serial/daum/premium/comms.d.ts} +26 -54
  148. package/lib/{daum/premium/bike.js → serial/daum/premium/comms.js} +214 -420
  149. package/lib/serial/daum/premium/mock.d.ts +75 -0
  150. package/lib/serial/daum/premium/mock.js +290 -0
  151. package/lib/{daum/premium/DaumClassicCyclingMode.d.ts → serial/daum/premium/modes/daum-classic.d.ts} +3 -3
  152. package/lib/{daum/premium/DaumClassicCyclingMode.js → serial/daum/premium/modes/daum-classic.js} +2 -2
  153. package/lib/serial/daum/premium/types.d.ts +12 -0
  154. package/lib/serial/daum/premium/types.js +2 -0
  155. package/lib/{daum → serial/daum}/premium/utils.d.ts +8 -11
  156. package/lib/{daum → serial/daum}/premium/utils.js +22 -63
  157. package/lib/serial/index.d.ts +9 -0
  158. package/lib/serial/index.js +49 -0
  159. package/lib/{kettler → serial/kettler}/comms.d.ts +8 -6
  160. package/lib/{kettler → serial/kettler}/comms.js +71 -32
  161. package/lib/{kettler → serial/kettler}/ergo-racer/adapter.d.ts +13 -24
  162. package/lib/{kettler → serial/kettler}/ergo-racer/adapter.js +87 -130
  163. package/lib/serial/kettler/ergo-racer/mock.d.ts +66 -0
  164. package/lib/serial/kettler/ergo-racer/mock.js +216 -0
  165. package/lib/{kettler/ergo-racer/ERGCyclingMode.d.ts → serial/kettler/ergo-racer/modes/erg.d.ts} +4 -4
  166. package/lib/{kettler/ergo-racer/ERGCyclingMode.js → serial/kettler/ergo-racer/modes/erg.js} +2 -2
  167. package/lib/serial/serial-interface.d.ts +58 -0
  168. package/lib/serial/serial-interface.js +283 -0
  169. package/lib/simulator/Simulator.d.ts +10 -25
  170. package/lib/simulator/Simulator.js +19 -83
  171. package/lib/types/adapter.d.ts +32 -0
  172. package/lib/types/adapter.js +2 -0
  173. package/lib/types/capabilities.d.ts +8 -0
  174. package/lib/types/capabilities.js +12 -0
  175. package/lib/types/data.d.ts +12 -0
  176. package/lib/types/data.js +2 -0
  177. package/lib/types/device.d.ts +29 -0
  178. package/lib/types/device.js +11 -0
  179. package/lib/types/interface.d.ts +14 -0
  180. package/lib/types/interface.js +2 -0
  181. package/lib/types/route.d.ts +2 -2
  182. package/lib/types/user.d.ts +1 -1
  183. package/lib/{utils.d.ts → utils/utils.d.ts} +1 -0
  184. package/lib/{utils.js → utils/utils.js} +5 -1
  185. package/package.json +15 -11
  186. package/lib/DeviceSupport.d.ts +0 -36
  187. package/lib/DeviceSupport.js +0 -82
  188. package/lib/ant/AntAdapter.d.ts +0 -50
  189. package/lib/ant/AntAdapter.js +0 -109
  190. package/lib/ant/AntScanner.d.ts +0 -60
  191. package/lib/ant/AntScanner.js +0 -651
  192. package/lib/ant/antfe/AntFEAdapter.d.ts +0 -83
  193. package/lib/ant/antfe/AntFEAdapter.js +0 -652
  194. package/lib/ant/antfe/ant-fe-adv-st-mode.d.ts +0 -9
  195. package/lib/ant/antfe/ant-fe-erg-mode.d.ts +0 -6
  196. package/lib/ant/antfe/ant-fe-st-mode.d.ts +0 -5
  197. package/lib/ant/anthrm/AntHrmAdapter.d.ts +0 -16
  198. package/lib/ant/anthrm/AntHrmAdapter.js +0 -130
  199. package/lib/ant/antpwr/pwr-adapter.d.ts +0 -49
  200. package/lib/ant/antpwr/pwr-adapter.js +0 -251
  201. package/lib/ant/utils.d.ts +0 -1
  202. package/lib/ant/utils.js +0 -23
  203. package/lib/antv2/AntAdapter.d.ts +0 -48
  204. package/lib/antv2/AntAdapter.js +0 -104
  205. package/lib/antv2/ant-device.d.ts +0 -59
  206. package/lib/antv2/ant-device.js +0 -161
  207. package/lib/antv2/fe.d.ts +0 -32
  208. package/lib/antv2/hr.d.ts +0 -18
  209. package/lib/antv2/hr.js +0 -102
  210. package/lib/antv2/incyclist-protocol.d.ts +0 -37
  211. package/lib/antv2/incyclist-protocol.js +0 -126
  212. package/lib/antv2/pwr.d.ts +0 -28
  213. package/lib/ble/elite.d.ts +0 -90
  214. package/lib/ble/elite.js +0 -322
  215. package/lib/ble/fm.d.ts +0 -125
  216. package/lib/ble/hrm.d.ts +0 -48
  217. package/lib/ble/hrm.js +0 -134
  218. package/lib/ble/incyclist-protocol.d.ts +0 -31
  219. package/lib/ble/incyclist-protocol.js +0 -153
  220. package/lib/ble/pwr.d.ts +0 -89
  221. package/lib/ble/pwr.js +0 -322
  222. package/lib/daum/classic/DaumClassicAdapter.d.ts +0 -28
  223. package/lib/daum/classic/DaumClassicProtocol.d.ts +0 -27
  224. package/lib/daum/classic/DaumClassicProtocol.js +0 -185
  225. package/lib/daum/premium/DaumPremiumAdapter.d.ts +0 -16
  226. package/lib/daum/premium/DaumPremiumProtocol.d.ts +0 -32
  227. package/lib/daum/premium/DaumPremiumProtocol.js +0 -207
  228. package/lib/daum/premium/tcpserial.d.ts +0 -33
  229. package/lib/daum/premium/tcpserial.js +0 -123
  230. package/lib/kettler/ergo-racer/protocol.d.ts +0 -41
  231. package/lib/kettler/ergo-racer/protocol.js +0 -203
  232. package/lib/protocol.d.ts +0 -74
  233. package/lib/protocol.js +0 -41
  234. package/lib/registry.d.ts +0 -8
  235. package/lib/registry.js +0 -33
  236. package/lib/serialport/bindings/tcp.d.ts +0 -20
  237. package/lib/serialport/bindings/tcp.js +0 -33
  238. package/lib/serialport/index.d.ts +0 -2
  239. package/lib/serialport/index.js +0 -29
  240. package/lib/serialport/serialport.d.ts +0 -29
  241. package/lib/serialport/serialport.js +0 -87
  242. /package/lib/antv2/{ant-binding.d.ts → binding.d.ts} +0 -0
  243. /package/lib/antv2/{ant-binding.js → binding.js} +0 -0
  244. /package/lib/{cycling-mode.js → modes/cycling-mode.js} +0 -0
  245. /package/lib/{daum → serial/daum}/classic/utils.js +0 -0
  246. /package/lib/{daum → serial/daum}/constants.d.ts +0 -0
  247. /package/lib/{daum → serial/daum}/constants.js +0 -0
  248. /package/lib/{serialport.d.ts → serial/serialport.d.ts} +0 -0
  249. /package/lib/{serialport.js → serial/serialport.js} +0 -0
  250. /package/lib/{calculations.d.ts → utils/calculations.d.ts} +0 -0
  251. /package/lib/{calculations.js → utils/calculations.js} +0 -0
package/lib/index.js ADDED
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.KettlerRacerAdapter = exports.DaumPremiumAdapter = exports.DaumClassicAdapter = exports.TCPBinding = exports.SerialInterface = exports.useSerialPortProvider = exports.SerialPortProvider = exports.BleTacxAdapter = exports.BleWahooAdapter = exports.BleFmAdapter = exports.BlePwrAdapter = exports.BleHrmAdapter = exports.BleInterface = exports.BleAdapterFactory = exports.CyclingModeProperyType = exports.AntInterface = exports.AntPwrAdapter = exports.AntHrAdapter = exports.AntFEAdapter = exports.AntAdapterFactory = exports.IncyclistCapability = exports.AdapterFactory = exports.InterfaceFactory = exports.INTERFACE = void 0;
7
+ const device_1 = require("./types/device");
8
+ Object.defineProperty(exports, "INTERFACE", { enumerable: true, get: function () { return device_1.INTERFACE; } });
9
+ const interfaces_1 = __importDefault(require("./interfaces"));
10
+ exports.InterfaceFactory = interfaces_1.default;
11
+ const adapters_1 = __importDefault(require("./adapters"));
12
+ exports.AdapterFactory = adapters_1.default;
13
+ const capabilities_1 = require("./types/capabilities");
14
+ Object.defineProperty(exports, "IncyclistCapability", { enumerable: true, get: function () { return capabilities_1.IncyclistCapability; } });
15
+ const serial_1 = require("./serial");
16
+ Object.defineProperty(exports, "SerialPortProvider", { enumerable: true, get: function () { return serial_1.SerialPortProvider; } });
17
+ Object.defineProperty(exports, "useSerialPortProvider", { enumerable: true, get: function () { return serial_1.useSerialPortProvider; } });
18
+ Object.defineProperty(exports, "SerialInterface", { enumerable: true, get: function () { return serial_1.SerialInterface; } });
19
+ Object.defineProperty(exports, "TCPBinding", { enumerable: true, get: function () { return serial_1.TCPBinding; } });
20
+ Object.defineProperty(exports, "DaumPremiumAdapter", { enumerable: true, get: function () { return serial_1.DaumPremiumAdapter; } });
21
+ Object.defineProperty(exports, "DaumClassicAdapter", { enumerable: true, get: function () { return serial_1.DaumClassicAdapter; } });
22
+ Object.defineProperty(exports, "KettlerRacerAdapter", { enumerable: true, get: function () { return serial_1.KettlerRacerAdapter; } });
23
+ const antv2_1 = require("./antv2");
24
+ Object.defineProperty(exports, "AntAdapterFactory", { enumerable: true, get: function () { return antv2_1.AntAdapterFactory; } });
25
+ Object.defineProperty(exports, "AntFEAdapter", { enumerable: true, get: function () { return antv2_1.AntFEAdapter; } });
26
+ Object.defineProperty(exports, "AntHrAdapter", { enumerable: true, get: function () { return antv2_1.AntHrAdapter; } });
27
+ Object.defineProperty(exports, "AntPwrAdapter", { enumerable: true, get: function () { return antv2_1.AntPwrAdapter; } });
28
+ Object.defineProperty(exports, "AntInterface", { enumerable: true, get: function () { return antv2_1.AntInterface; } });
29
+ const ble_1 = require("./ble");
30
+ Object.defineProperty(exports, "BleAdapterFactory", { enumerable: true, get: function () { return ble_1.BleAdapterFactory; } });
31
+ Object.defineProperty(exports, "BleInterface", { enumerable: true, get: function () { return ble_1.BleInterface; } });
32
+ Object.defineProperty(exports, "BleHrmAdapter", { enumerable: true, get: function () { return ble_1.BleHrmAdapter; } });
33
+ Object.defineProperty(exports, "BlePwrAdapter", { enumerable: true, get: function () { return ble_1.BlePwrAdapter; } });
34
+ Object.defineProperty(exports, "BleFmAdapter", { enumerable: true, get: function () { return ble_1.BleFmAdapter; } });
35
+ Object.defineProperty(exports, "BleWahooAdapter", { enumerable: true, get: function () { return ble_1.BleWahooAdapter; } });
36
+ Object.defineProperty(exports, "BleTacxAdapter", { enumerable: true, get: function () { return ble_1.BleTacxAdapter; } });
37
+ const cycling_mode_1 = require("./modes/cycling-mode");
38
+ Object.defineProperty(exports, "CyclingModeProperyType", { enumerable: true, get: function () { return cycling_mode_1.CyclingModeProperyType; } });
@@ -0,0 +1,6 @@
1
+ import { InterfaceProps } from "./types/interface";
2
+ import { SerialInterface } from "./serial";
3
+ import AntInterface from "./antv2/ant-interface";
4
+ export default class InterfaceFactory {
5
+ static create(ifaceName: string, props?: InterfaceProps): AntInterface | SerialInterface;
6
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const serial_1 = require("./serial");
7
+ const ant_interface_1 = __importDefault(require("./antv2/ant-interface"));
8
+ const device_1 = require("./types/device");
9
+ class InterfaceFactory {
10
+ static create(ifaceName, props) {
11
+ switch (ifaceName) {
12
+ case device_1.INTERFACE.SERIAL:
13
+ case device_1.INTERFACE.TCPIP:
14
+ const serialProps = props;
15
+ serialProps.ifaceName = ifaceName;
16
+ return serial_1.SerialInterface.getInstance(serialProps);
17
+ case device_1.INTERFACE.ANT:
18
+ const antProps = props;
19
+ return ant_interface_1.default.getInstance(antProps);
20
+ }
21
+ }
22
+ }
23
+ exports.default = InterfaceFactory;
@@ -1,13 +1,13 @@
1
- import CyclingMode, { CyclingModeProperty, IncyclistBikeData, UpdateRequest } from "../cycling-mode";
2
- import { DeviceAdapter } from "../device";
3
- import PowerBasedCyclingModeBase from "../modes/power-base";
1
+ import { IncyclistDeviceAdapter } from "../types/adapter";
2
+ import CyclingMode, { CyclingModeProperty, IncyclistBikeData, UpdateRequest } from "./cycling-mode";
3
+ import PowerBasedCyclingModeBase from "./power-base";
4
4
  export default class BleERGCyclingMode extends PowerBasedCyclingModeBase implements CyclingMode {
5
5
  static isERG: boolean;
6
6
  prevRequest: UpdateRequest;
7
7
  hasBikeUpdate: boolean;
8
8
  chain: number[];
9
9
  cassette: number[];
10
- constructor(adapter: DeviceAdapter, props?: any);
10
+ constructor(adapter: IncyclistDeviceAdapter, props?: any);
11
11
  getName(): string;
12
12
  getDescription(): string;
13
13
  getProperties(): CyclingModeProperty[];
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const cycling_mode_1 = require("../cycling-mode");
7
- const power_base_1 = __importDefault(require("../modes/power-base"));
6
+ const cycling_mode_1 = require("./cycling-mode");
7
+ const power_base_1 = __importDefault(require("./power-base"));
8
8
  const config = {
9
9
  name: "ERG",
10
10
  description: "Calculates speed based on power and slope. Power targets are set by workout or remain stable throughout the workout",
@@ -1,10 +1,10 @@
1
- import CyclingMode, { CyclingModeProperty, IncyclistBikeData, UpdateRequest } from "../cycling-mode";
2
- import { DeviceAdapter } from "../device";
1
+ import CyclingMode, { CyclingModeProperty, IncyclistBikeData, UpdateRequest } from "../modes/cycling-mode";
3
2
  import PowerBasedCyclingModeBase from "../modes/power-base";
3
+ import { IncyclistDeviceAdapter } from "../types/adapter";
4
4
  export default class FtmsCyclingMode extends PowerBasedCyclingModeBase implements CyclingMode {
5
5
  prevRequest: UpdateRequest;
6
6
  hasBikeUpdate: boolean;
7
- constructor(adapter: DeviceAdapter, props?: any);
7
+ constructor(adapter: IncyclistDeviceAdapter, props?: any);
8
8
  getName(): string;
9
9
  getDescription(): string;
10
10
  getProperties(): CyclingModeProperty[];
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const cycling_mode_1 = require("../cycling-mode");
6
+ const cycling_mode_1 = require("../modes/cycling-mode");
7
7
  const power_base_1 = __importDefault(require("../modes/power-base"));
8
8
  const config = {
9
9
  name: "Smart Trainer",
@@ -1,5 +1,5 @@
1
- import { Device } from "./protocol";
2
- export declare type UpdateRequest = {
1
+ import { IncyclistDeviceAdapter } from "../types/adapter";
2
+ export type UpdateRequest = {
3
3
  slope?: number;
4
4
  minPower?: number;
5
5
  maxPower?: number;
@@ -17,7 +17,7 @@ export declare enum CyclingModeProperyType {
17
17
  SingleSelect = "SingleSelect",
18
18
  MultiSelect = "MultiSelect"
19
19
  }
20
- export declare type CyclingModeProperty = {
20
+ export type CyclingModeProperty = {
21
21
  key: string;
22
22
  name: string;
23
23
  description: string;
@@ -27,7 +27,7 @@ export declare type CyclingModeProperty = {
27
27
  default?: any;
28
28
  options?: any[];
29
29
  };
30
- export declare type IncyclistBikeData = {
30
+ export type IncyclistBikeData = {
31
31
  isPedalling: boolean;
32
32
  power: number;
33
33
  pedalRpm: number;
@@ -38,7 +38,7 @@ export declare type IncyclistBikeData = {
38
38
  gear?: number;
39
39
  slope?: number;
40
40
  };
41
- export declare type Settings = {
41
+ export type Settings = {
42
42
  [key: string]: any;
43
43
  };
44
44
  export default interface CyclingMode {
@@ -57,11 +57,11 @@ export default interface CyclingMode {
57
57
  getModeProperty(name: string): any;
58
58
  }
59
59
  export declare class CyclingModeBase implements CyclingMode {
60
- adapter: Device;
60
+ adapter: IncyclistDeviceAdapter;
61
61
  settings: Settings;
62
62
  properties: Settings;
63
- constructor(adapter: Device, props?: any);
64
- setAdapter(adapter: Device): void;
63
+ constructor(adapter: IncyclistDeviceAdapter, props?: any);
64
+ setAdapter(adapter: IncyclistDeviceAdapter): void;
65
65
  getBikeInitRequest(): UpdateRequest;
66
66
  getName(): string;
67
67
  getDescription(): string;
@@ -1,11 +1,11 @@
1
- import { IncyclistBikeData, Settings, CyclingModeBase } from '../cycling-mode';
2
- import { DeviceAdapter } from '../device';
1
+ import { IncyclistBikeData, Settings, CyclingModeBase } from './cycling-mode';
3
2
  import { EventLogger } from 'gd-eventlog';
3
+ import { IncyclistDeviceAdapter } from '../types/adapter';
4
4
  export default class PowerBasedCyclingModeBase extends CyclingModeBase {
5
5
  data: IncyclistBikeData;
6
6
  prevUpdateTS: number;
7
7
  logger: EventLogger;
8
- constructor(adapter: DeviceAdapter, props?: Settings);
8
+ constructor(adapter: IncyclistDeviceAdapter, props?: Settings);
9
9
  initLogger(defaultLogName: any): void;
10
10
  getWeight(): any;
11
11
  getTimeSinceLastUpdate(): number;
@@ -3,9 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const cycling_mode_1 = require("../cycling-mode");
7
- const device_1 = require("../device");
8
- const calculations_1 = __importDefault(require("../calculations"));
6
+ const cycling_mode_1 = require("./cycling-mode");
7
+ const adpater_1 = require("../base/adpater");
8
+ const calculations_1 = __importDefault(require("../utils/calculations"));
9
9
  const gd_eventlog_1 = require("gd-eventlog");
10
10
  class PowerBasedCyclingModeBase extends cycling_mode_1.CyclingModeBase {
11
11
  constructor(adapter, props) {
@@ -21,7 +21,7 @@ class PowerBasedCyclingModeBase extends cycling_mode_1.CyclingModeBase {
21
21
  }
22
22
  getWeight() {
23
23
  const a = this.adapter;
24
- const m = (a && a.getWeight && a.getWeight()) ? a.getWeight() : device_1.DEFAULT_BIKE_WEIGHT + device_1.DEFAULT_USER_WEIGHT;
24
+ const m = (a && a.getWeight && a.getWeight()) ? a.getWeight() : adpater_1.DEFAULT_BIKE_WEIGHT + adpater_1.DEFAULT_USER_WEIGHT;
25
25
  return m;
26
26
  }
27
27
  getTimeSinceLastUpdate() {
@@ -1,13 +1,13 @@
1
- import CyclingMode, { CyclingModeProperty, IncyclistBikeData, Settings, UpdateRequest } from '../cycling-mode';
1
+ import CyclingMode, { CyclingModeProperty, IncyclistBikeData, Settings, UpdateRequest } from '../modes/cycling-mode';
2
2
  import PowerBasedCyclingModeBase from './power-base';
3
- import { DeviceAdapter } from '../device';
3
+ import { IncyclistDeviceAdapter } from '../types/adapter';
4
4
  export declare const config: {
5
5
  name: string;
6
6
  description: string;
7
7
  properties: any[];
8
8
  };
9
9
  export default class PowerMeterCyclingMode extends PowerBasedCyclingModeBase implements CyclingMode {
10
- constructor(adapter: DeviceAdapter, props?: Settings);
10
+ constructor(adapter: IncyclistDeviceAdapter, props?: Settings);
11
11
  getName(): string;
12
12
  getDescription(): string;
13
13
  getProperties(): CyclingModeProperty[];
@@ -1,8 +1,8 @@
1
1
  import { EventLogger } from "gd-eventlog";
2
- import { CyclingModeProperty, IncyclistBikeData, UpdateRequest } from "../cycling-mode";
2
+ import { CyclingModeProperty, IncyclistBikeData, UpdateRequest } from "../modes/cycling-mode";
3
3
  import { Simulator } from "../simulator/Simulator";
4
4
  import PowerBasedCyclingModeBase from "./power-base";
5
- export declare type ERGEvent = {
5
+ export type ERGEvent = {
6
6
  rpmUpdated?: boolean;
7
7
  gearUpdated?: boolean;
8
8
  starting?: boolean;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const gd_eventlog_1 = require("gd-eventlog");
7
- const cycling_mode_1 = require("../cycling-mode");
7
+ const cycling_mode_1 = require("../modes/cycling-mode");
8
8
  const power_base_1 = __importDefault(require("./power-base"));
9
9
  const MIN_SPEED = 10;
10
10
  const config = {
@@ -0,0 +1,12 @@
1
+ import { SerialIncyclistDevice, SerialDeviceSettings } from './adapter';
2
+ export default class SerialAdapterFactory {
3
+ static _instance: SerialAdapterFactory;
4
+ adapters: {
5
+ protocol: string;
6
+ AdapterClass: typeof SerialIncyclistDevice;
7
+ }[];
8
+ static getInstance(): SerialAdapterFactory;
9
+ constructor();
10
+ registerAdapter(protocol: string, AdapterClass: typeof SerialIncyclistDevice): void;
11
+ createInstance(props: SerialDeviceSettings, settings?: any): SerialIncyclistDevice;
12
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class SerialAdapterFactory {
4
+ static getInstance() {
5
+ if (!SerialAdapterFactory._instance)
6
+ SerialAdapterFactory._instance = new SerialAdapterFactory();
7
+ return SerialAdapterFactory._instance;
8
+ }
9
+ constructor() {
10
+ this.adapters = [];
11
+ }
12
+ registerAdapter(protocol, AdapterClass) {
13
+ const existing = this.adapters.findIndex(a => a.protocol === protocol);
14
+ if (existing !== -1)
15
+ this.adapters[existing].AdapterClass = AdapterClass;
16
+ else
17
+ this.adapters.push({ protocol, AdapterClass });
18
+ }
19
+ createInstance(props, settings) {
20
+ const { protocol } = props;
21
+ if (!protocol)
22
+ return null;
23
+ const adapter = this.adapters.find(a => a.protocol === protocol);
24
+ if (!adapter)
25
+ return null;
26
+ const { AdapterClass } = adapter;
27
+ return new AdapterClass(props, settings);
28
+ }
29
+ }
30
+ exports.default = SerialAdapterFactory;
@@ -0,0 +1,16 @@
1
+ import { DeviceProperties, DeviceSettings } from "../types/device";
2
+ import { ControllableDevice } from "../base/adpater";
3
+ import SerialInterface from "./serial-interface";
4
+ export interface SerialDeviceSettings extends DeviceSettings {
5
+ protocol: string;
6
+ host?: string;
7
+ port?: string;
8
+ interface: string | SerialInterface;
9
+ }
10
+ export declare class SerialIncyclistDevice extends ControllableDevice {
11
+ check(): Promise<boolean>;
12
+ constructor(settings: SerialDeviceSettings, props?: DeviceProperties);
13
+ isEqual(settings: SerialDeviceSettings): boolean;
14
+ getPort(): string;
15
+ getInterface(): string;
16
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SerialIncyclistDevice = void 0;
13
+ const adpater_1 = require("../base/adpater");
14
+ class SerialIncyclistDevice extends adpater_1.ControllableDevice {
15
+ check() {
16
+ return __awaiter(this, void 0, void 0, function* () { throw new Error('not implemnted'); });
17
+ }
18
+ ;
19
+ constructor(settings, props) {
20
+ super(settings, props);
21
+ }
22
+ isEqual(settings) {
23
+ if (settings.interface !== this.getInterface())
24
+ return false;
25
+ const s = this.settings;
26
+ if (settings.protocol !== s.protocol)
27
+ return false;
28
+ if (settings.port !== s.port)
29
+ return false;
30
+ if (settings.host && (!s.host || s.host !== settings.host))
31
+ return false;
32
+ return true;
33
+ }
34
+ getPort() {
35
+ const settings = this.settings;
36
+ return settings.port;
37
+ }
38
+ getInterface() {
39
+ return 'serial';
40
+ }
41
+ }
42
+ exports.SerialIncyclistDevice = SerialIncyclistDevice;
@@ -0,0 +1,44 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { BindingPortInterface, OpenOptions, PortStatus, PortInfo, SetOptions, UpdateOptions, BindingInterface } from "@serialport/bindings-interface";
4
+ import { EventLogger } from 'gd-eventlog';
5
+ import net from 'net';
6
+ export interface TCPOpenOptions extends OpenOptions {
7
+ timeout?: number;
8
+ }
9
+ export declare interface TCPBindingInterface<T extends BindingPortInterface = BindingPortInterface, R extends OpenOptions = OpenOptions, P extends PortInfo = PortInfo> extends BindingInterface<TCPPortBinding, TCPOpenOptions> {
10
+ list(port?: number): Promise<P[]>;
11
+ }
12
+ export declare class CanceledError extends Error {
13
+ canceled: true;
14
+ constructor(message: string);
15
+ }
16
+ export declare function scanPort(host: string, port: number): Promise<boolean>;
17
+ export declare function scanSubNet(sn: string, port: number): Promise<string[]>;
18
+ export declare function getSubnets(): string[];
19
+ export declare const TCPBinding: TCPBindingInterface;
20
+ export declare class TCPPortBinding implements BindingPortInterface {
21
+ openOptions: Required<OpenOptions>;
22
+ socket: any;
23
+ logger: EventLogger;
24
+ writeOperation: null | Promise<void>;
25
+ data: Buffer;
26
+ private pendingRead;
27
+ constructor(socket: net.Socket, options: Required<OpenOptions>);
28
+ get isOpen(): boolean;
29
+ onData(data: Buffer): void;
30
+ close(): Promise<void>;
31
+ read(buffer: Buffer, offset: number, length: number): Promise<{
32
+ buffer: Buffer;
33
+ bytesRead: number;
34
+ }>;
35
+ write(buffer: Buffer): Promise<void>;
36
+ update(options: UpdateOptions): Promise<void>;
37
+ set(options: SetOptions): Promise<void>;
38
+ get(): Promise<PortStatus>;
39
+ getBaudRate(): Promise<{
40
+ baudRate: number;
41
+ }>;
42
+ flush(): Promise<void>;
43
+ drain(): Promise<void>;
44
+ }