incyclist-devices 2.4.14 → 3.0.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/lib/cjs/antv2/base/adapter.js +459 -0
- package/lib/cjs/antv2/base/interface.js +399 -0
- package/lib/{antv2 → cjs/antv2}/cad/adapter.js +6 -6
- package/lib/{antv2 → cjs/antv2}/cad/index.js +2 -2
- package/lib/{antv2 → cjs/antv2}/factories/adapter-factory.js +4 -2
- package/lib/{antv2 → cjs/antv2}/factories/index.js +1 -1
- package/lib/{antv2 → cjs/antv2}/factories/sensor-factory.js +3 -4
- package/lib/cjs/antv2/fe/adapter.js +273 -0
- package/lib/{antv2/pwr → cjs/antv2/fe}/index.js +2 -2
- package/lib/{antv2 → cjs/antv2}/hr/adapter.js +6 -6
- package/lib/{antv2 → cjs/antv2}/hr/index.js +2 -2
- package/lib/cjs/antv2/index.js +33 -0
- package/lib/{antv2 → cjs/antv2}/pwr/adapter.js +20 -31
- package/lib/{antv2/fe → cjs/antv2/pwr}/index.js +2 -2
- package/lib/{antv2 → cjs/antv2}/sc/adapter.js +6 -6
- package/lib/cjs/antv2/sc/index.js +7 -0
- package/lib/{antv2 → cjs/antv2}/spd/adapter.js +6 -6
- package/lib/cjs/antv2/spd/index.js +7 -0
- package/lib/{base → cjs/base}/adpater.js +65 -71
- package/lib/cjs/ble/base/adapter.js +404 -0
- package/lib/{ble → cjs/ble}/base/interface.js +270 -298
- package/lib/cjs/ble/base/peripheral.js +412 -0
- package/lib/cjs/ble/base/sensor.js +147 -0
- package/lib/{ble → cjs/ble}/bindings/index.js +2 -2
- package/lib/{ble → cjs/ble}/bindings/linux.js +3 -0
- package/lib/cjs/ble/bindings/mock.js +113 -0
- package/lib/{ble → cjs/ble}/bindings/types.js +11 -2
- package/lib/{ble → cjs/ble}/characteristics/csc/features.js +2 -2
- package/lib/{ble → cjs/ble}/characteristics/csc/measurement.js +9 -8
- package/lib/cjs/ble/cp/adapter.js +91 -0
- package/lib/{ble → cjs/ble}/cp/index.js +4 -4
- package/lib/{ble → cjs/ble}/cp/sensor.js +20 -23
- package/lib/cjs/ble/csc/adapter.js +55 -0
- package/lib/{ble → cjs/ble}/csc/index.js +3 -3
- package/lib/cjs/ble/csc/sensor.js +58 -0
- package/lib/{ble → cjs/ble}/factories/adapter-factory.js +12 -9
- package/lib/{ble → cjs/ble}/factories/index.js +2 -2
- package/lib/{ble → cjs/ble}/factories/interface-factory.js +2 -3
- package/lib/cjs/ble/fm/adapter.js +355 -0
- package/lib/{ble → cjs/ble}/fm/index.js +7 -7
- package/lib/cjs/ble/fm/sensor.js +494 -0
- package/lib/{ble → cjs/ble}/hr/adapter.js +9 -9
- package/lib/{ble → cjs/ble}/hr/index.js +4 -4
- package/lib/{ble → cjs/ble}/hr/mock.js +10 -9
- package/lib/{ble → cjs/ble}/hr/sensor.js +14 -12
- package/lib/cjs/ble/index.js +46 -0
- package/lib/cjs/ble/tacx/adapter.js +54 -0
- package/lib/{ble → cjs/ble}/tacx/index.js +4 -4
- package/lib/{ble → cjs/ble}/tacx/sensor.js +171 -193
- package/lib/cjs/ble/wahoo/adapter.js +36 -0
- package/lib/{ble → cjs/ble}/wahoo/index.js +4 -4
- package/lib/cjs/ble/wahoo/sensor.js +345 -0
- package/lib/cjs/ble/zwift/play/adapter.js +57 -0
- package/lib/{ble → cjs/ble}/zwift/play/index.js +2 -2
- package/lib/cjs/ble/zwift/play/sensor.js +512 -0
- package/lib/{direct-connect → cjs/direct-connect}/base/interface.js +104 -119
- package/lib/cjs/direct-connect/base/peripheral.js +498 -0
- package/lib/{features → cjs/direct-connect/bindings}/index.js +1 -1
- package/lib/cjs/direct-connect/index.js +22 -0
- package/lib/{direct-connect → cjs/direct-connect}/messages/CharacteristicNotification.js +4 -4
- package/lib/{direct-connect → cjs/direct-connect}/messages/DiscoverCharacteristics.js +7 -7
- package/lib/{direct-connect → cjs/direct-connect}/messages/DiscoverServices.js +7 -7
- package/lib/{direct-connect → cjs/direct-connect}/messages/EnableCharacteristicNotifications.js +4 -4
- package/lib/{direct-connect → cjs/direct-connect}/messages/ReadCharacteristic.js +4 -4
- package/lib/{direct-connect → cjs/direct-connect}/messages/WriteCharacteristic.js +4 -4
- package/lib/{direct-connect → cjs/direct-connect}/messages/error.js +5 -4
- package/lib/cjs/direct-connect/messages/factory.js +44 -0
- package/lib/cjs/direct-connect/messages/index.js +25 -0
- package/lib/{direct-connect → cjs/direct-connect}/messages/message.js +17 -14
- package/lib/{direct-connect → cjs/direct-connect}/types.js +4 -0
- package/lib/cjs/factories/adapters.js +56 -0
- package/lib/cjs/factories/interfaces.js +31 -0
- package/lib/{features → cjs/features}/features.js +2 -0
- package/lib/{direct-connect/bindings → cjs/features}/index.js +1 -1
- package/lib/cjs/index.js +51 -0
- package/lib/{modes → cjs/modes}/ant-fe-adv-st-mode.js +4 -5
- package/lib/cjs/modes/antble-erg.js +28 -0
- package/lib/{modes → cjs/modes}/antble-smarttrainer.js +61 -62
- package/lib/{modes → cjs/modes}/base.js +13 -8
- package/lib/{modes → cjs/modes}/daum-classic-standard.js +5 -4
- package/lib/{modes → cjs/modes}/daum-erg.js +21 -19
- package/lib/{modes → cjs/modes}/daum-power.js +2 -2
- package/lib/{modes → cjs/modes}/daum-premium-standard.js +12 -10
- package/lib/{modes → cjs/modes}/daum-smarttrainer.js +34 -30
- package/lib/{modes → cjs/modes}/fm-resistance.js +18 -17
- package/lib/{modes → cjs/modes}/kettler-erg.js +16 -14
- package/lib/{modes → cjs/modes}/power-base.js +24 -28
- package/lib/{modes → cjs/modes}/power-meter.js +7 -7
- package/lib/{modes → cjs/modes}/simulator.js +17 -17
- package/lib/{proto → cjs/proto}/zwift_hub.js +22 -22
- package/lib/{serial → cjs/serial}/base/adapter.js +4 -14
- package/lib/cjs/serial/base/comms.js +279 -0
- package/lib/cjs/serial/base/serial-interface.js +285 -0
- package/lib/cjs/serial/base/serial-scanner.js +89 -0
- package/lib/{serial → cjs/serial}/base/serialport.js +14 -22
- package/lib/cjs/serial/bindings/tcp.js +298 -0
- package/lib/cjs/serial/daum/DaumAdapter.js +503 -0
- package/lib/cjs/serial/daum/classic/adapter.js +183 -0
- package/lib/cjs/serial/daum/classic/comms.js +216 -0
- package/lib/{serial → cjs/serial}/daum/classic/mock.js +89 -98
- package/lib/cjs/serial/daum/premium/adapter.js +216 -0
- package/lib/cjs/serial/daum/premium/comms.js +542 -0
- package/lib/{serial → cjs/serial}/daum/premium/mock.js +119 -133
- package/lib/{serial → cjs/serial}/daum/premium/utils.js +3 -3
- package/lib/{serial → cjs/serial}/daum/types.js +1 -0
- package/lib/{serial → cjs/serial}/factories/adapter-factory.js +2 -0
- package/lib/{serial → cjs/serial}/index.js +20 -20
- package/lib/{serial → cjs/serial}/kettler/comms.js +75 -76
- package/lib/cjs/serial/kettler/ergo-racer/adapter.js +529 -0
- package/lib/{serial → cjs/serial}/kettler/ergo-racer/mock.js +74 -89
- package/lib/{simulator → cjs/simulator}/Simulator.js +75 -82
- package/lib/{ble/zwift/click → cjs/types}/index.js +6 -2
- package/lib/{utils → cjs/utils}/task.js +16 -27
- package/lib/cjs/utils/utils.js +180 -0
- package/lib/esm/antv2/base/adapter.js +453 -0
- package/lib/esm/antv2/base/binding.js +24 -0
- package/lib/esm/antv2/base/interface.js +393 -0
- package/lib/esm/antv2/cad/adapter.js +19 -0
- package/lib/esm/antv2/cad/index.js +2 -0
- package/lib/esm/antv2/consts.js +2 -0
- package/lib/esm/antv2/factories/adapter-factory.js +72 -0
- package/lib/esm/antv2/factories/index.js +1 -0
- package/lib/esm/antv2/factories/sensor-factory.js +20 -0
- package/lib/esm/antv2/fe/adapter.js +267 -0
- package/lib/esm/antv2/fe/index.js +2 -0
- package/lib/esm/antv2/hr/adapter.js +24 -0
- package/lib/esm/antv2/hr/index.js +2 -0
- package/lib/esm/antv2/index.js +19 -0
- package/lib/esm/antv2/pwr/adapter.js +61 -0
- package/lib/esm/antv2/pwr/index.js +2 -0
- package/lib/esm/antv2/sc/adapter.js +24 -0
- package/lib/esm/antv2/sc/index.js +2 -0
- package/lib/esm/antv2/spd/adapter.js +19 -0
- package/lib/esm/antv2/spd/index.js +2 -0
- package/lib/esm/antv2/types.js +1 -0
- package/lib/esm/antv2/utils.js +187 -0
- package/lib/esm/base/adpater.js +310 -0
- package/lib/esm/base/consts.js +6 -0
- package/lib/esm/ble/base/adapter.js +398 -0
- package/lib/esm/ble/base/interface.js +674 -0
- package/lib/esm/ble/base/peripheral.js +408 -0
- package/lib/esm/ble/base/sensor.js +143 -0
- package/lib/esm/ble/base/types.js +5 -0
- package/lib/esm/ble/bindings/index.js +2 -0
- package/lib/esm/ble/bindings/linux.js +41 -0
- package/lib/esm/ble/bindings/mock.js +108 -0
- package/lib/esm/ble/bindings/types.js +95 -0
- package/lib/esm/ble/characteristics/csc/features.js +15 -0
- package/lib/esm/ble/characteristics/csc/measurement.js +108 -0
- package/lib/esm/ble/characteristics/types.js +1 -0
- package/lib/esm/ble/consts.js +15 -0
- package/lib/esm/ble/cp/adapter.js +85 -0
- package/lib/esm/ble/cp/index.js +3 -0
- package/lib/{ble/cp/comm.js → esm/ble/cp/sensor.js} +26 -50
- package/lib/esm/ble/cp/types.js +1 -0
- package/lib/esm/ble/csc/adapter.js +48 -0
- package/lib/esm/ble/csc/index.js +3 -0
- package/lib/esm/ble/csc/sensor.js +54 -0
- package/lib/esm/ble/csc/types.js +1 -0
- package/lib/esm/ble/factories/adapter-factory.js +136 -0
- package/lib/esm/ble/factories/index.js +2 -0
- package/lib/esm/ble/factories/interface-factory.js +13 -0
- package/lib/esm/ble/factories/types.js +1 -0
- package/lib/esm/ble/fm/adapter.js +349 -0
- package/lib/esm/ble/fm/consts.js +61 -0
- package/lib/esm/ble/fm/index.js +4 -0
- package/lib/esm/ble/fm/sensor.js +491 -0
- package/lib/esm/ble/fm/types.js +1 -0
- package/lib/esm/ble/hr/adapter.js +34 -0
- package/lib/esm/ble/hr/index.js +3 -0
- package/lib/esm/ble/hr/mock.js +45 -0
- package/lib/esm/ble/hr/sensor.js +52 -0
- package/lib/esm/ble/hr/types.js +1 -0
- package/lib/esm/ble/index.js +22 -0
- package/lib/esm/ble/tacx/adapter.js +48 -0
- package/lib/esm/ble/tacx/consts.js +24 -0
- package/lib/esm/ble/tacx/index.js +3 -0
- package/lib/{ble/tacx/comms.js → esm/ble/tacx/sensor.js} +239 -297
- package/lib/esm/ble/tacx/types.js +1 -0
- package/lib/esm/ble/types.js +1 -0
- package/lib/esm/ble/utils.js +130 -0
- package/lib/esm/ble/wahoo/adapter.js +30 -0
- package/lib/esm/ble/wahoo/consts.js +4 -0
- package/lib/esm/ble/wahoo/index.js +3 -0
- package/lib/esm/ble/wahoo/sensor.js +339 -0
- package/lib/esm/ble/wahoo/types.js +1 -0
- package/lib/esm/ble/zwift/play/adapter.js +50 -0
- package/lib/esm/ble/zwift/play/index.js +2 -0
- package/lib/esm/ble/zwift/play/sensor.js +508 -0
- package/lib/esm/ble/zwift/play/types.js +1 -0
- package/lib/esm/direct-connect/base/interface.js +354 -0
- package/lib/esm/direct-connect/base/peripheral.js +491 -0
- package/lib/esm/direct-connect/bindings/index.js +1 -0
- package/lib/esm/direct-connect/bindings/types.js +1 -0
- package/lib/esm/direct-connect/consts.js +17 -0
- package/lib/esm/direct-connect/index.js +6 -0
- package/lib/esm/direct-connect/messages/CharacteristicNotification.js +19 -0
- package/lib/esm/direct-connect/messages/DiscoverCharacteristics.js +40 -0
- package/lib/esm/direct-connect/messages/DiscoverServices.js +31 -0
- package/lib/esm/direct-connect/messages/EnableCharacteristicNotifications.js +31 -0
- package/lib/esm/direct-connect/messages/ReadCharacteristic.js +30 -0
- package/lib/esm/direct-connect/messages/WriteCharacteristic.js +32 -0
- package/lib/esm/direct-connect/messages/error.js +14 -0
- package/lib/esm/direct-connect/messages/factory.js +40 -0
- package/lib/esm/direct-connect/messages/index.js +9 -0
- package/lib/esm/direct-connect/messages/message.js +103 -0
- package/lib/esm/direct-connect/types.js +8 -0
- package/lib/esm/factories/adapters.js +50 -0
- package/lib/esm/factories/interfaces.js +25 -0
- package/lib/esm/features/features.js +26 -0
- package/lib/esm/features/index.js +1 -0
- package/lib/esm/index.js +18 -0
- package/lib/esm/modes/ant-fe-adv-st-mode.js +77 -0
- package/lib/esm/modes/antble-erg.js +22 -0
- package/lib/esm/modes/antble-smarttrainer.js +440 -0
- package/lib/esm/modes/base.js +100 -0
- package/lib/esm/modes/daum-classic-standard.js +55 -0
- package/lib/esm/modes/daum-erg.js +196 -0
- package/lib/esm/modes/daum-power.js +6 -0
- package/lib/esm/modes/daum-premium-standard.js +70 -0
- package/lib/esm/modes/daum-smarttrainer.js +344 -0
- package/lib/esm/modes/fm-resistance.js +134 -0
- package/lib/esm/modes/kettler-erg.js +129 -0
- package/lib/esm/modes/power-base.js +265 -0
- package/lib/esm/modes/power-meter.js +33 -0
- package/lib/esm/modes/simulator.js +107 -0
- package/lib/esm/modes/types.js +70 -0
- package/lib/esm/proto/zwift_hub.js +1231 -0
- package/lib/esm/serial/base/adapter.js +50 -0
- package/lib/esm/serial/base/comms.js +276 -0
- package/lib/esm/serial/base/serial-interface.js +279 -0
- package/lib/esm/serial/base/serial-scanner.js +82 -0
- package/lib/esm/serial/base/serialport.js +74 -0
- package/lib/esm/serial/bindings/tcp.js +287 -0
- package/lib/esm/serial/daum/DaumAdapter.js +497 -0
- package/lib/esm/serial/daum/classic/adapter.js +177 -0
- package/lib/esm/serial/daum/classic/comms.js +210 -0
- package/lib/esm/serial/daum/classic/consts.js +2 -0
- package/lib/esm/serial/daum/classic/mock.js +389 -0
- package/lib/esm/serial/daum/classic/types.js +1 -0
- package/lib/esm/serial/daum/classic/utils.js +96 -0
- package/lib/esm/serial/daum/premium/adapter.js +210 -0
- package/lib/esm/serial/daum/premium/comms.js +536 -0
- package/lib/esm/serial/daum/premium/consts.js +6 -0
- package/lib/esm/serial/daum/premium/mock.js +398 -0
- package/lib/esm/serial/daum/premium/types.js +25 -0
- package/lib/esm/serial/daum/premium/utils.js +328 -0
- package/lib/esm/serial/daum/types.js +9 -0
- package/lib/esm/serial/factories/adapter-factory.js +29 -0
- package/lib/esm/serial/index.js +12 -0
- package/lib/esm/serial/kettler/comms.js +276 -0
- package/lib/esm/serial/kettler/ergo-racer/adapter.js +523 -0
- package/lib/esm/serial/kettler/ergo-racer/mock.js +195 -0
- package/lib/esm/serial/kettler/types.js +1 -0
- package/lib/esm/serial/types.js +6 -0
- package/lib/esm/simulator/Simulator.js +186 -0
- package/lib/esm/types/adapter.js +1 -0
- package/lib/esm/types/capabilities.js +9 -0
- package/lib/esm/types/data.js +1 -0
- package/lib/esm/types/device.js +10 -0
- package/lib/esm/types/index.js +6 -0
- package/lib/esm/types/interface.js +1 -0
- package/lib/esm/types/user.js +6 -0
- package/lib/esm/utils/calculations.js +151 -0
- package/lib/esm/utils/task.js +121 -0
- package/lib/esm/utils/utils.js +167 -0
- package/lib/{antv2 → types/antv2}/base/adapter.d.ts +6 -9
- package/lib/{antv2 → types/antv2}/base/binding.d.ts +1 -1
- package/lib/{antv2 → types/antv2}/base/interface.d.ts +4 -4
- package/lib/{antv2 → types/antv2}/cad/adapter.d.ts +2 -2
- package/lib/types/antv2/cad/index.d.ts +2 -0
- package/lib/{antv2 → types/antv2}/factories/adapter-factory.d.ts +2 -2
- package/lib/types/antv2/factories/index.d.ts +1 -0
- package/lib/{antv2 → types/antv2}/fe/adapter.d.ts +4 -4
- package/lib/types/antv2/fe/index.d.ts +2 -0
- package/lib/{antv2 → types/antv2}/hr/adapter.d.ts +2 -2
- package/lib/types/antv2/hr/index.d.ts +2 -0
- package/lib/types/antv2/index.d.ts +12 -0
- package/lib/{antv2 → types/antv2}/pwr/adapter.d.ts +4 -4
- package/lib/types/antv2/pwr/index.d.ts +2 -0
- package/lib/{antv2 → types/antv2}/sc/adapter.d.ts +3 -3
- package/lib/types/antv2/sc/index.d.ts +2 -0
- package/lib/{antv2 → types/antv2}/spd/adapter.d.ts +3 -3
- package/lib/types/antv2/spd/index.d.ts +2 -0
- package/lib/{antv2 → types/antv2}/types.d.ts +2 -2
- package/lib/{antv2 → types/antv2}/utils.d.ts +1 -1
- package/lib/{base → types/base}/adpater.d.ts +3 -3
- package/lib/{base → types/base}/consts.d.ts +1 -1
- package/lib/{ble → types/ble}/base/adapter.d.ts +8 -9
- package/lib/{ble → types/ble}/base/interface.d.ts +8 -8
- package/lib/{ble → types/ble}/base/peripheral.d.ts +2 -2
- package/lib/{ble → types/ble}/base/sensor.d.ts +3 -3
- package/lib/{ble → types/ble}/base/types.d.ts +2 -2
- package/lib/types/ble/bindings/index.d.ts +2 -0
- package/lib/{ble → types/ble}/bindings/linux.d.ts +1 -1
- package/lib/{ble → types/ble}/bindings/mock.d.ts +1 -1
- package/lib/{ble → types/ble}/bindings/types.d.ts +2 -2
- package/lib/{ble → types/ble}/characteristics/csc/features.d.ts +1 -1
- package/lib/{ble → types/ble}/characteristics/csc/measurement.d.ts +2 -2
- package/lib/{ble → types/ble}/cp/adapter.d.ts +7 -7
- package/lib/types/ble/cp/index.d.ts +4 -0
- package/lib/{ble → types/ble}/cp/sensor.d.ts +4 -4
- package/lib/{ble → types/ble}/csc/adapter.d.ts +6 -6
- package/lib/types/ble/csc/index.d.ts +3 -0
- package/lib/{ble → types/ble}/csc/sensor.d.ts +6 -6
- package/lib/{ble → types/ble}/csc/types.d.ts +1 -1
- package/lib/{ble → types/ble}/factories/adapter-factory.d.ts +6 -6
- package/lib/types/ble/factories/index.d.ts +2 -0
- package/lib/{ble → types/ble}/factories/interface-factory.d.ts +2 -2
- package/lib/{ble → types/ble}/factories/types.d.ts +5 -5
- package/lib/{ble → types/ble}/fm/adapter.d.ts +9 -9
- package/lib/types/ble/fm/index.d.ts +5 -0
- package/lib/{ble → types/ble}/fm/sensor.d.ts +4 -4
- package/lib/{ble → types/ble}/hr/adapter.d.ts +6 -6
- package/lib/types/ble/hr/index.d.ts +4 -0
- package/lib/{ble → types/ble}/hr/mock.d.ts +1 -1
- package/lib/{ble → types/ble}/hr/sensor.d.ts +4 -4
- package/lib/types/ble/index.d.ts +10 -0
- package/lib/{ble → types/ble}/tacx/adapter.d.ts +4 -4
- package/lib/types/ble/tacx/index.d.ts +4 -0
- package/lib/{ble → types/ble}/tacx/sensor.d.ts +6 -6
- package/lib/{ble → types/ble}/types.d.ts +1 -1
- package/lib/{ble → types/ble}/utils.d.ts +2 -2
- package/lib/{ble → types/ble}/wahoo/adapter.d.ts +4 -4
- package/lib/types/ble/wahoo/index.d.ts +4 -0
- package/lib/{ble → types/ble}/wahoo/sensor.d.ts +5 -5
- package/lib/{ble → types/ble}/zwift/play/adapter.d.ts +6 -6
- package/lib/types/ble/zwift/play/index.d.ts +2 -0
- package/lib/{ble → types/ble}/zwift/play/sensor.d.ts +6 -6
- package/lib/{direct-connect → types/direct-connect}/base/interface.d.ts +9 -9
- package/lib/{direct-connect → types/direct-connect}/base/peripheral.d.ts +6 -6
- package/lib/types/direct-connect/bindings/index.d.ts +1 -0
- package/lib/{direct-connect → types/direct-connect}/bindings/types.d.ts +2 -2
- package/lib/types/direct-connect/index.d.ts +3 -0
- package/lib/{direct-connect → types/direct-connect}/messages/CharacteristicNotification.d.ts +2 -2
- package/lib/{direct-connect → types/direct-connect}/messages/DiscoverCharacteristics.d.ts +3 -3
- package/lib/{direct-connect → types/direct-connect}/messages/DiscoverServices.d.ts +2 -2
- package/lib/{direct-connect → types/direct-connect}/messages/EnableCharacteristicNotifications.d.ts +2 -2
- package/lib/{direct-connect → types/direct-connect}/messages/ReadCharacteristic.d.ts +2 -2
- package/lib/{direct-connect → types/direct-connect}/messages/WriteCharacteristic.d.ts +2 -2
- package/lib/{direct-connect → types/direct-connect}/messages/factory.d.ts +1 -1
- package/lib/types/direct-connect/messages/index.d.ts +9 -0
- package/lib/{direct-connect → types/direct-connect}/messages/message.d.ts +1 -1
- package/lib/{direct-connect → types/direct-connect}/types.d.ts +1 -1
- package/lib/{factories → types/factories}/adapters.d.ts +2 -2
- package/lib/{factories → types/factories}/interfaces.d.ts +5 -5
- package/lib/types/features/index.d.ts +1 -0
- package/lib/types/index.d.ts +22 -6
- package/lib/{modes → types/modes}/ant-fe-adv-st-mode.d.ts +4 -4
- package/lib/{modes → types/modes}/antble-erg.d.ts +3 -3
- package/lib/{modes → types/modes}/antble-smarttrainer.d.ts +4 -4
- package/lib/{modes → types/modes}/base.d.ts +2 -2
- package/lib/{modes → types/modes}/daum-classic-standard.d.ts +4 -4
- package/lib/{modes → types/modes}/daum-erg.d.ts +3 -4
- package/lib/{modes → types/modes}/daum-power.d.ts +2 -2
- package/lib/{modes → types/modes}/daum-premium-standard.d.ts +4 -4
- package/lib/{modes → types/modes}/daum-smarttrainer.d.ts +4 -4
- package/lib/{modes → types/modes}/fm-resistance.d.ts +4 -4
- package/lib/{modes → types/modes}/kettler-erg.d.ts +3 -4
- package/lib/{modes → types/modes}/power-base.d.ts +3 -3
- package/lib/{modes → types/modes}/power-meter.d.ts +4 -4
- package/lib/{modes → types/modes}/simulator.d.ts +4 -7
- package/lib/{modes → types/modes}/types.d.ts +1 -1
- package/lib/{serial → types/serial}/base/adapter.d.ts +4 -4
- package/lib/{serial → types/serial}/base/comms.d.ts +3 -3
- package/lib/{serial → types/serial}/base/serial-interface.d.ts +3 -3
- package/lib/{serial → types/serial}/base/serial-scanner.d.ts +2 -2
- package/lib/{serial → types/serial}/base/serialport.d.ts +3 -4
- package/lib/{serial → types/serial}/bindings/tcp.d.ts +3 -3
- package/lib/{serial → types/serial}/daum/DaumAdapter.d.ts +7 -7
- package/lib/{serial → types/serial}/daum/classic/adapter.d.ts +5 -5
- package/lib/{serial → types/serial}/daum/classic/comms.d.ts +5 -5
- package/lib/{serial → types/serial}/daum/classic/mock.d.ts +2 -2
- package/lib/{serial → types/serial}/daum/classic/types.d.ts +3 -3
- package/lib/{serial → types/serial}/daum/classic/utils.d.ts +1 -1
- package/lib/{serial → types/serial}/daum/premium/adapter.d.ts +5 -5
- package/lib/{serial → types/serial}/daum/premium/comms.d.ts +5 -5
- package/lib/{serial → types/serial}/daum/premium/mock.d.ts +1 -1
- package/lib/{serial → types/serial}/daum/premium/types.d.ts +3 -3
- package/lib/{serial → types/serial}/daum/premium/utils.d.ts +2 -2
- package/lib/{serial → types/serial}/factories/adapter-factory.d.ts +3 -3
- package/lib/types/serial/index.d.ts +12 -0
- package/lib/{serial → types/serial}/kettler/comms.d.ts +3 -3
- package/lib/{serial → types/serial}/kettler/ergo-racer/adapter.d.ts +7 -8
- package/lib/{serial → types/serial}/kettler/ergo-racer/mock.d.ts +3 -3
- package/lib/{serial → types/serial}/types.d.ts +2 -2
- package/lib/{simulator → types/simulator}/Simulator.d.ts +4 -4
- package/lib/types/{adapter.d.ts → types/adapter.d.ts} +6 -6
- package/lib/types/{device.d.ts → types/device.d.ts} +3 -3
- package/lib/types/types/index.d.ts +6 -0
- package/lib/types/{interface.d.ts → types/interface.d.ts} +2 -2
- package/lib/{utils → types/utils}/task.d.ts +2 -2
- package/package.json +57 -65
- package/lib/antv2/base/adapter.js +0 -485
- package/lib/antv2/base/interface.js +0 -420
- package/lib/antv2/cad/index.d.ts +0 -2
- package/lib/antv2/factories/index.d.ts +0 -1
- package/lib/antv2/fe/adapter.js +0 -306
- package/lib/antv2/fe/index.d.ts +0 -2
- package/lib/antv2/hr/index.d.ts +0 -2
- package/lib/antv2/index.d.ts +0 -12
- package/lib/antv2/index.js +0 -33
- package/lib/antv2/pwr/index.d.ts +0 -2
- package/lib/antv2/sc/index.d.ts +0 -2
- package/lib/antv2/sc/index.js +0 -7
- package/lib/antv2/spd/index.d.ts +0 -2
- package/lib/antv2/spd/index.js +0 -7
- package/lib/ble/adapter-factory.d.ts +0 -34
- package/lib/ble/adapter-factory.js +0 -110
- package/lib/ble/base/adapter.js +0 -453
- package/lib/ble/base/comms-utils.d.ts +0 -7
- package/lib/ble/base/comms-utils.js +0 -90
- package/lib/ble/base/comms.d.ts +0 -75
- package/lib/ble/base/comms.js +0 -599
- package/lib/ble/base/peripheral.js +0 -449
- package/lib/ble/base/sensor.js +0 -169
- package/lib/ble/bindings/index.d.ts +0 -2
- package/lib/ble/bindings/mock.js +0 -120
- package/lib/ble/ble-interface.d.ts +0 -84
- package/lib/ble/ble-interface.js +0 -622
- package/lib/ble/ble-peripheral.d.ts +0 -39
- package/lib/ble/ble-peripheral.js +0 -252
- package/lib/ble/cp/adapter.js +0 -108
- package/lib/ble/cp/comm.d.ts +0 -30
- package/lib/ble/cp/index.d.ts +0 -4
- package/lib/ble/csc/adapter.js +0 -66
- package/lib/ble/csc/index.d.ts +0 -3
- package/lib/ble/csc/sensor.js +0 -67
- package/lib/ble/elite/adapter.d.ts +0 -21
- package/lib/ble/elite/adapter.js +0 -118
- package/lib/ble/elite/comms.d.ts +0 -31
- package/lib/ble/elite/comms.js +0 -127
- package/lib/ble/elite/index.d.ts +0 -3
- package/lib/ble/elite/index.js +0 -10
- package/lib/ble/factories/index.d.ts +0 -2
- package/lib/ble/fm/adapter.js +0 -380
- package/lib/ble/fm/comms.d.ts +0 -49
- package/lib/ble/fm/comms.js +0 -506
- package/lib/ble/fm/index.d.ts +0 -5
- package/lib/ble/fm/sensor.js +0 -531
- package/lib/ble/hr/comm.d.ts +0 -19
- package/lib/ble/hr/comm.js +0 -65
- package/lib/ble/hr/index.d.ts +0 -4
- package/lib/ble/index.d.ts +0 -10
- package/lib/ble/index.js +0 -46
- package/lib/ble/peripheral-cache.d.ts +0 -45
- package/lib/ble/peripheral-cache.js +0 -109
- package/lib/ble/tacx/adapter.js +0 -68
- package/lib/ble/tacx/comms.d.ts +0 -59
- package/lib/ble/tacx/index.d.ts +0 -4
- package/lib/ble/wahoo/adapter.js +0 -47
- package/lib/ble/wahoo/comms.d.ts +0 -64
- package/lib/ble/wahoo/comms.js +0 -399
- package/lib/ble/wahoo/index.d.ts +0 -4
- package/lib/ble/wahoo/sensor.js +0 -372
- package/lib/ble/zwift/click/adapter.d.ts +0 -19
- package/lib/ble/zwift/click/adapter.js +0 -74
- package/lib/ble/zwift/click/index.d.ts +0 -2
- package/lib/ble/zwift/click/sensor.d.ts +0 -40
- package/lib/ble/zwift/click/sensor.js +0 -221
- package/lib/ble/zwift/play/adapter.js +0 -73
- package/lib/ble/zwift/play/helperfactory.d.ts +0 -7
- package/lib/ble/zwift/play/helperfactory.js +0 -17
- package/lib/ble/zwift/play/index.d.ts +0 -2
- package/lib/ble/zwift/play/protohelper.d.ts +0 -4
- package/lib/ble/zwift/play/protohelper.js +0 -11
- package/lib/ble/zwift/play/sensor.js +0 -533
- package/lib/direct-connect/base/comms.d.ts +0 -3
- package/lib/direct-connect/base/comms.js +0 -7
- package/lib/direct-connect/base/peripheral.js +0 -543
- package/lib/direct-connect/base/sensor.d.ts +0 -3
- package/lib/direct-connect/base/sensor.js +0 -7
- package/lib/direct-connect/bindings/index.d.ts +0 -1
- package/lib/direct-connect/index.d.ts +0 -3
- package/lib/direct-connect/index.js +0 -22
- package/lib/direct-connect/messages/factory.js +0 -44
- package/lib/direct-connect/messages/index.d.ts +0 -9
- package/lib/direct-connect/messages/index.js +0 -25
- package/lib/direct-connect/utils.d.ts +0 -5
- package/lib/direct-connect/utils.js +0 -73
- package/lib/factories/adapters.js +0 -56
- package/lib/factories/index.d.ts +0 -3
- package/lib/factories/index.js +0 -10
- package/lib/factories/interfaces.js +0 -30
- package/lib/features/index.d.ts +0 -1
- package/lib/index.d.ts +0 -17
- package/lib/index.js +0 -38
- package/lib/modes/antble-erg.js +0 -28
- package/lib/proto/org/cagnulen/qdomyoszwift/zwift_hub_pb.d.ts +0 -156
- package/lib/proto/org/cagnulen/qdomyoszwift/zwift_hub_pb.js +0 -59
- package/lib/serial/base/comms.js +0 -304
- package/lib/serial/base/serial-interface.js +0 -296
- package/lib/serial/base/serial-scanner.js +0 -95
- package/lib/serial/bindings/tcp.js +0 -309
- package/lib/serial/daum/DaumAdapter.js +0 -556
- package/lib/serial/daum/classic/adapter.js +0 -196
- package/lib/serial/daum/classic/comms.js +0 -263
- package/lib/serial/daum/premium/adapter.js +0 -238
- package/lib/serial/daum/premium/comms.js +0 -617
- package/lib/serial/index.d.ts +0 -12
- package/lib/serial/kettler/ergo-racer/adapter.js +0 -569
- package/lib/types/index.js +0 -22
- package/lib/utils/operation.d.ts +0 -17
- package/lib/utils/operation.js +0 -20
- package/lib/utils/utils.js +0 -196
- /package/lib/{antv2 → cjs/antv2}/base/binding.js +0 -0
- /package/lib/{antv2 → cjs/antv2}/consts.js +0 -0
- /package/lib/{antv2 → cjs/antv2}/types.js +0 -0
- /package/lib/{antv2 → cjs/antv2}/utils.js +0 -0
- /package/lib/{base → cjs/base}/consts.js +0 -0
- /package/lib/{ble → cjs/ble}/base/types.js +0 -0
- /package/lib/{ble → cjs/ble}/characteristics/types.js +0 -0
- /package/lib/{ble → cjs/ble}/consts.js +0 -0
- /package/lib/{ble → cjs/ble}/cp/types.js +0 -0
- /package/lib/{ble → cjs/ble}/csc/types.js +0 -0
- /package/lib/{ble → cjs/ble}/factories/types.js +0 -0
- /package/lib/{ble → cjs/ble}/fm/consts.js +0 -0
- /package/lib/{ble → cjs/ble}/fm/types.js +0 -0
- /package/lib/{ble → cjs/ble}/hr/types.js +0 -0
- /package/lib/{ble → cjs/ble}/tacx/consts.js +0 -0
- /package/lib/{ble → cjs/ble}/tacx/types.js +0 -0
- /package/lib/{ble → cjs/ble}/types.js +0 -0
- /package/lib/{ble → cjs/ble}/utils.js +0 -0
- /package/lib/{ble → cjs/ble}/wahoo/consts.js +0 -0
- /package/lib/{ble → cjs/ble}/wahoo/types.js +0 -0
- /package/lib/{ble → cjs/ble}/zwift/play/types.js +0 -0
- /package/lib/{direct-connect → cjs/direct-connect}/bindings/types.js +0 -0
- /package/lib/{direct-connect → cjs/direct-connect}/consts.js +0 -0
- /package/lib/{modes → cjs/modes}/types.js +0 -0
- /package/lib/{serial → cjs/serial}/daum/classic/consts.js +0 -0
- /package/lib/{serial → cjs/serial}/daum/classic/types.js +0 -0
- /package/lib/{serial → cjs/serial}/daum/classic/utils.js +0 -0
- /package/lib/{serial → cjs/serial}/daum/premium/consts.js +0 -0
- /package/lib/{serial → cjs/serial}/daum/premium/types.js +0 -0
- /package/lib/{serial → cjs/serial}/kettler/types.js +0 -0
- /package/lib/{serial → cjs/serial}/types.js +0 -0
- /package/lib/{types → cjs/types}/adapter.js +0 -0
- /package/lib/{types → cjs/types}/capabilities.js +0 -0
- /package/lib/{types → cjs/types}/data.js +0 -0
- /package/lib/{types → cjs/types}/device.js +0 -0
- /package/lib/{types → cjs/types}/interface.js +0 -0
- /package/lib/{types → cjs/types}/user.js +0 -0
- /package/lib/{utils → cjs/utils}/calculations.js +0 -0
- /package/lib/{antv2 → types/antv2}/consts.d.ts +0 -0
- /package/lib/{antv2 → types/antv2}/factories/sensor-factory.d.ts +0 -0
- /package/lib/{ble → types/ble}/characteristics/types.d.ts +0 -0
- /package/lib/{ble → types/ble}/consts.d.ts +0 -0
- /package/lib/{ble → types/ble}/cp/types.d.ts +0 -0
- /package/lib/{ble → types/ble}/fm/consts.d.ts +0 -0
- /package/lib/{ble → types/ble}/fm/types.d.ts +0 -0
- /package/lib/{ble → types/ble}/hr/types.d.ts +0 -0
- /package/lib/{ble → types/ble}/tacx/consts.d.ts +0 -0
- /package/lib/{ble → types/ble}/tacx/types.d.ts +0 -0
- /package/lib/{ble → types/ble}/wahoo/consts.d.ts +0 -0
- /package/lib/{ble → types/ble}/wahoo/types.d.ts +0 -0
- /package/lib/{ble → types/ble}/zwift/play/types.d.ts +0 -0
- /package/lib/{direct-connect → types/direct-connect}/consts.d.ts +0 -0
- /package/lib/{direct-connect → types/direct-connect}/messages/error.d.ts +0 -0
- /package/lib/{features → types/features}/features.d.ts +0 -0
- /package/lib/{proto → types/proto}/zwift_hub.d.ts +0 -0
- /package/lib/{serial → types/serial}/daum/classic/consts.d.ts +0 -0
- /package/lib/{serial → types/serial}/daum/premium/consts.d.ts +0 -0
- /package/lib/{serial → types/serial}/daum/types.d.ts +0 -0
- /package/lib/{serial → types/serial}/kettler/types.d.ts +0 -0
- /package/lib/types/{capabilities.d.ts → types/capabilities.d.ts} +0 -0
- /package/lib/types/{data.d.ts → types/data.d.ts} +0 -0
- /package/lib/types/{user.d.ts → types/user.d.ts} +0 -0
- /package/lib/{utils → types/utils}/calculations.d.ts +0 -0
- /package/lib/{utils → types/utils}/utils.d.ts +0 -0
|
@@ -0,0 +1,459 @@
|
|
|
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 interface_js_1 = __importDefault(require("./interface.js"));
|
|
7
|
+
const adpater_js_1 = __importDefault(require("../../base/adpater.js"));
|
|
8
|
+
const types_js_1 = require("../types.js");
|
|
9
|
+
const index_js_1 = require("../../types/index.js");
|
|
10
|
+
const utils_js_1 = require("../../utils/utils.js");
|
|
11
|
+
const utils_js_2 = require("../utils.js");
|
|
12
|
+
const consts_js_1 = require("../consts.js");
|
|
13
|
+
const sensor_factory_js_1 = __importDefault(require("../factories/sensor-factory.js"));
|
|
14
|
+
const gd_eventlog_1 = require("gd-eventlog");
|
|
15
|
+
const node_events_1 = __importDefault(require("node:events"));
|
|
16
|
+
const INTERFACE_NAME = 'ant';
|
|
17
|
+
const MAX_RETRIES = 3;
|
|
18
|
+
class AntAdapter extends adpater_js_1.default {
|
|
19
|
+
sensor;
|
|
20
|
+
deviceData;
|
|
21
|
+
channel;
|
|
22
|
+
ant;
|
|
23
|
+
userSettings;
|
|
24
|
+
bikeSettings;
|
|
25
|
+
ivDataTimeout;
|
|
26
|
+
lastDataTS;
|
|
27
|
+
dataMsgCount;
|
|
28
|
+
ivWaitForData;
|
|
29
|
+
promiseWaitForData;
|
|
30
|
+
sensorConnected;
|
|
31
|
+
startStatus;
|
|
32
|
+
startupRetryPause = 1000;
|
|
33
|
+
internalEmitter = new node_events_1.default();
|
|
34
|
+
constructor(settings, props) {
|
|
35
|
+
super(settings, props);
|
|
36
|
+
const profile = this.getProfileName();
|
|
37
|
+
if (settings.protocol && settings.profile !== this.getLegacyProfileName())
|
|
38
|
+
throw new Error('Incorrect Profile');
|
|
39
|
+
if (!settings.protocol && settings.profile !== this.getProfileName())
|
|
40
|
+
throw new Error('Incorrect Profile');
|
|
41
|
+
const antSettings = this.settings;
|
|
42
|
+
if ((0, types_js_1.isLegacyProfile)(antSettings.profile))
|
|
43
|
+
antSettings.profile = (0, utils_js_2.mapLegacyProfile)(antSettings.profile);
|
|
44
|
+
if (this.settings.interface !== 'ant')
|
|
45
|
+
throw new Error('Incorrect interface');
|
|
46
|
+
this.sensor = this.createSensor(settings);
|
|
47
|
+
this.sensorConnected = false;
|
|
48
|
+
this.deviceData = {
|
|
49
|
+
DeviceID: Number(settings.deviceID)
|
|
50
|
+
};
|
|
51
|
+
this.data = {};
|
|
52
|
+
this.dataMsgCount = 0;
|
|
53
|
+
this.logger = new gd_eventlog_1.EventLogger(`Ant+${profile}`);
|
|
54
|
+
this.updateFrequency = consts_js_1.DEFAULT_UPDATE_FREQUENCY;
|
|
55
|
+
this.channel = undefined;
|
|
56
|
+
this.ant = interface_js_1.default.getInstance();
|
|
57
|
+
if (this.isDebugEnabled()) {
|
|
58
|
+
this.ant.setLogger(this);
|
|
59
|
+
}
|
|
60
|
+
if (this.getStaticCapabilities())
|
|
61
|
+
this.capabilities = this.getStaticCapabilities();
|
|
62
|
+
}
|
|
63
|
+
getProfileName() {
|
|
64
|
+
const C = this.constructor;
|
|
65
|
+
return C['ANT_PROFILE_NAME'];
|
|
66
|
+
}
|
|
67
|
+
getLegacyProfileName() {
|
|
68
|
+
const C = this.constructor;
|
|
69
|
+
return C['INCYCLIST_PROFILE_NAME'];
|
|
70
|
+
}
|
|
71
|
+
getStaticCapabilities() {
|
|
72
|
+
const C = this.constructor;
|
|
73
|
+
return C['CAPABILITIES'];
|
|
74
|
+
}
|
|
75
|
+
createSensor(settings) {
|
|
76
|
+
return sensor_factory_js_1.default.create(this.getProfileName(), Number(settings.deviceID));
|
|
77
|
+
}
|
|
78
|
+
isEqual(settings) {
|
|
79
|
+
const as = this.settings;
|
|
80
|
+
if (as.interface !== settings.interface)
|
|
81
|
+
return false;
|
|
82
|
+
if (Number(as.deviceID) !== Number(settings.deviceID) || as.profile !== settings.profile)
|
|
83
|
+
return false;
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
getDefaultReconnectDelay() {
|
|
87
|
+
return this.startupRetryPause;
|
|
88
|
+
}
|
|
89
|
+
async connect() {
|
|
90
|
+
const connected = await interface_js_1.default.getInstance().connect();
|
|
91
|
+
return connected;
|
|
92
|
+
}
|
|
93
|
+
async close() {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
resetData() {
|
|
97
|
+
this.dataMsgCount = 0;
|
|
98
|
+
const { DeviceID } = this.deviceData;
|
|
99
|
+
this.deviceData = { DeviceID };
|
|
100
|
+
this.data = {};
|
|
101
|
+
this.lastDataTS = undefined;
|
|
102
|
+
}
|
|
103
|
+
isSame(device) {
|
|
104
|
+
if (!(device instanceof AntAdapter))
|
|
105
|
+
return false;
|
|
106
|
+
const adapter = device;
|
|
107
|
+
return (adapter.getID() === this.getID() && adapter.getProfile() === this.getProfile());
|
|
108
|
+
}
|
|
109
|
+
hasData() {
|
|
110
|
+
return this.dataMsgCount > 0;
|
|
111
|
+
}
|
|
112
|
+
mapData(deviceData) {
|
|
113
|
+
throw new Error('message not implemented');
|
|
114
|
+
}
|
|
115
|
+
transformData(data, deviceData) {
|
|
116
|
+
throw new Error('message not implemented');
|
|
117
|
+
}
|
|
118
|
+
mapToAdapterData(deviceData) {
|
|
119
|
+
throw new Error('message not implemented');
|
|
120
|
+
}
|
|
121
|
+
refreshDeviceData() {
|
|
122
|
+
if (this.isStopped() || this.isPaused())
|
|
123
|
+
return;
|
|
124
|
+
const logData = this.getLogData(this.deviceData, ['PairedDevices', 'RawData', '_RawData']);
|
|
125
|
+
this.logEvent({ message: 'refreshDeviceData', data: logData, paused: this.paused, started: this.started, canEmit: this.canEmitData() });
|
|
126
|
+
if (this.isControllable()) {
|
|
127
|
+
let incyclistData = this.mapData(this.deviceData);
|
|
128
|
+
incyclistData = this.getCyclingMode().updateData(incyclistData);
|
|
129
|
+
this.transformData(incyclistData, this.deviceData);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
this.mapToAdapterData(this.deviceData);
|
|
133
|
+
}
|
|
134
|
+
this.emitData(this.data);
|
|
135
|
+
}
|
|
136
|
+
onDeviceData(deviceData) {
|
|
137
|
+
this.dataMsgCount++;
|
|
138
|
+
this.lastDataTS = Date.now();
|
|
139
|
+
try {
|
|
140
|
+
const { ManId } = this.deviceData;
|
|
141
|
+
this.deviceData = Object.assign({}, deviceData);
|
|
142
|
+
if (!ManId && deviceData.ManId) {
|
|
143
|
+
this.emit('device-info', this.getSettings(), { manufacturer: (0, utils_js_2.getBrand)(deviceData.ManId) });
|
|
144
|
+
}
|
|
145
|
+
const logData = this.getLogData(deviceData, ['PairedDevices', 'RawData', '_RawData']);
|
|
146
|
+
this.logEvent({ message: 'onDeviceData', device: this.getName(), interface: this.getInterface(), data: logData, paused: this.paused, started: this.started, canEmit: this.canEmitData() });
|
|
147
|
+
if (this.isStopped() || !this.canEmitData())
|
|
148
|
+
return;
|
|
149
|
+
if (this.isControllable()) {
|
|
150
|
+
let incyclistData = this.mapData(deviceData);
|
|
151
|
+
incyclistData = this.getCyclingMode().updateData(incyclistData);
|
|
152
|
+
this.transformData(incyclistData, deviceData);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
this.mapToAdapterData(deviceData);
|
|
156
|
+
}
|
|
157
|
+
this.emitData(this.data);
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
this.logEvent({ message: 'error', fn: 'onDeviceData()', error: err.message || err, stack: err.stack });
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
isWaitingForData() {
|
|
164
|
+
return this.promiseWaitForData !== undefined && this.promiseWaitForData !== null;
|
|
165
|
+
}
|
|
166
|
+
async _wait() {
|
|
167
|
+
const res = new Promise((resolve) => {
|
|
168
|
+
const iv = setInterval(() => {
|
|
169
|
+
if (this.hasData()) {
|
|
170
|
+
clearInterval(iv);
|
|
171
|
+
resolve(true);
|
|
172
|
+
}
|
|
173
|
+
if (this.promiseWaitForData === undefined || this.promiseWaitForData === null || this.stopped) {
|
|
174
|
+
resolve(false);
|
|
175
|
+
clearInterval(iv);
|
|
176
|
+
}
|
|
177
|
+
}, 10);
|
|
178
|
+
});
|
|
179
|
+
return res;
|
|
180
|
+
}
|
|
181
|
+
async waitForData(timeout) {
|
|
182
|
+
if (this.hasData()) {
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
const tsStart = Date.now();
|
|
186
|
+
if (this.promiseWaitForData !== undefined && this.promiseWaitForData !== null) {
|
|
187
|
+
let hasData = false;
|
|
188
|
+
try {
|
|
189
|
+
hasData = await this.promiseWaitForData;
|
|
190
|
+
}
|
|
191
|
+
catch { }
|
|
192
|
+
if (hasData || Date.now() > tsStart + timeout)
|
|
193
|
+
return hasData;
|
|
194
|
+
}
|
|
195
|
+
try {
|
|
196
|
+
this.promiseWaitForData = (0, utils_js_1.runWithTimeout)(this._wait(), timeout);
|
|
197
|
+
const hasData = await this.promiseWaitForData;
|
|
198
|
+
this.promiseWaitForData = null;
|
|
199
|
+
return hasData;
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
this.promiseWaitForData = null;
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
getID() {
|
|
207
|
+
const id = this.deviceData?.DeviceID ?? this.sensor?.getDeviceID();
|
|
208
|
+
return id?.toString();
|
|
209
|
+
}
|
|
210
|
+
getName() {
|
|
211
|
+
if (this.settings.name)
|
|
212
|
+
return this.settings.name;
|
|
213
|
+
const deviceID = this.getID();
|
|
214
|
+
const profile = this.getProfileName();
|
|
215
|
+
return `Ant+${profile} ${deviceID}`;
|
|
216
|
+
}
|
|
217
|
+
getUniqueName() {
|
|
218
|
+
if (this.settings.name)
|
|
219
|
+
return this.settings.name;
|
|
220
|
+
const { ManId } = this.deviceData;
|
|
221
|
+
const profile = this.getProfileName();
|
|
222
|
+
const brand = (0, utils_js_2.getBrand)(ManId);
|
|
223
|
+
const id = this.getID();
|
|
224
|
+
if (brand)
|
|
225
|
+
return `${brand} ${profile} ${id}`;
|
|
226
|
+
else
|
|
227
|
+
return `${this.getName()}`;
|
|
228
|
+
}
|
|
229
|
+
getDisplayName() {
|
|
230
|
+
return this.getUniqueName();
|
|
231
|
+
}
|
|
232
|
+
getInterface() {
|
|
233
|
+
return INTERFACE_NAME;
|
|
234
|
+
}
|
|
235
|
+
getProfile() {
|
|
236
|
+
const settings = this.settings;
|
|
237
|
+
if (settings.protocol === undefined)
|
|
238
|
+
return settings.profile;
|
|
239
|
+
else {
|
|
240
|
+
return (0, utils_js_2.mapLegacyProfile)(settings.profile);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
getLogData(data, excludeList) {
|
|
244
|
+
const logData = JSON.parse(JSON.stringify(data));
|
|
245
|
+
excludeList.forEach((key) => {
|
|
246
|
+
delete logData[key];
|
|
247
|
+
});
|
|
248
|
+
return logData;
|
|
249
|
+
}
|
|
250
|
+
async check() {
|
|
251
|
+
try {
|
|
252
|
+
return await this.start();
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
async checkCapabilities() {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
async initControl() {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
getDefaultStartupTimeout() {
|
|
265
|
+
return 20000;
|
|
266
|
+
}
|
|
267
|
+
async startPreChecks(props) {
|
|
268
|
+
const wasPaused = this.paused;
|
|
269
|
+
const wasStopped = this.stopped;
|
|
270
|
+
this.stopped = false;
|
|
271
|
+
if (wasPaused)
|
|
272
|
+
this.resume();
|
|
273
|
+
if (this.started && !wasPaused && !wasStopped) {
|
|
274
|
+
return 'done';
|
|
275
|
+
}
|
|
276
|
+
if (this.started && wasPaused) {
|
|
277
|
+
return 'done';
|
|
278
|
+
}
|
|
279
|
+
const connected = await this.connect();
|
|
280
|
+
if (!connected)
|
|
281
|
+
return 'connection-failed';
|
|
282
|
+
return 'connected';
|
|
283
|
+
}
|
|
284
|
+
resetStartStatus() {
|
|
285
|
+
this.startStatus = { timeout: false, hasData: false, sensorStarted: false };
|
|
286
|
+
}
|
|
287
|
+
isStartSuccess() {
|
|
288
|
+
const { timeout, hasData, sensorStarted, controlInitialized, userInitialized, interrupted } = this.startStatus;
|
|
289
|
+
if (interrupted)
|
|
290
|
+
return false;
|
|
291
|
+
if (this.hasCapability(index_js_1.IncyclistCapability.Control))
|
|
292
|
+
return sensorStarted && hasData && userInitialized && controlInitialized && !timeout;
|
|
293
|
+
else
|
|
294
|
+
return sensorStarted && hasData && !timeout;
|
|
295
|
+
}
|
|
296
|
+
reportStartStatus() {
|
|
297
|
+
const success = this.isStartSuccess();
|
|
298
|
+
if (success) {
|
|
299
|
+
this.logEvent({ message: 'start device success', device: this.getName() });
|
|
300
|
+
this.started = true;
|
|
301
|
+
this.paused = false;
|
|
302
|
+
return true;
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
this.started = false;
|
|
306
|
+
const { sensorStarted, hasData, interrupted } = this.startStatus;
|
|
307
|
+
if (interrupted) {
|
|
308
|
+
this.logEvent({ message: 'start device interrupted', device: this.getName() });
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
if (!sensorStarted) {
|
|
312
|
+
this.logEvent({ message: 'start device failed', device: this.getName(), reason: 'could not connect' });
|
|
313
|
+
throw new Error('could not start device, reason:could not connect');
|
|
314
|
+
}
|
|
315
|
+
else if (!hasData) {
|
|
316
|
+
this.logEvent({ message: 'start device failed', device: this.getName(), reason: 'no data received' });
|
|
317
|
+
throw new Error('could not start device, reason:no data received');
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
this.logEvent({ message: 'start device failed', device: this.getName(), reason: 'could not send FE commands' });
|
|
321
|
+
throw new Error('could not start device, reason:could not send FE commands');
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
async waitForInitialData(startupTimeout) {
|
|
326
|
+
const { sensorStarted, hasData, timeout } = this.startStatus;
|
|
327
|
+
if ((sensorStarted && hasData) || !sensorStarted || timeout)
|
|
328
|
+
return;
|
|
329
|
+
this.logEvent({ message: 'wait for sensor data', device: this.getName() });
|
|
330
|
+
this.startStatus.hasData = await this.waitForData(startupTimeout);
|
|
331
|
+
if (this.startStatus.hasData)
|
|
332
|
+
this.logEvent({ message: 'sensor data received', device: this.getName() });
|
|
333
|
+
}
|
|
334
|
+
async initSensor(props) {
|
|
335
|
+
this.startStatus.sensorStarted = this.sensorConnected;
|
|
336
|
+
if (this.startStatus.sensorStarted)
|
|
337
|
+
return;
|
|
338
|
+
this.logEvent({ message: 'start sensor', device: this.getName(), props });
|
|
339
|
+
try {
|
|
340
|
+
this.sensorConnected = await this.startSensor();
|
|
341
|
+
if (this.sensorConnected) {
|
|
342
|
+
this.logEvent({ message: 'sensor started', device: this.getName(), channel: this.sensor?.getChannel()?.getChannelNo(), props });
|
|
343
|
+
this.startStatus.sensorStarted = true;
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
this.logEvent({ message: 'start sensor failed', device: this.getName(), reason: 'unknown', props });
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
catch (err) {
|
|
350
|
+
this.logEvent({ message: 'start sensor failed', device: this.getName(), reason: err.message, props });
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
getLogProps(startProps) {
|
|
354
|
+
const { user, userWeight, bikeWeight, startupTimeout, automaticReconnect } = startProps ?? {};
|
|
355
|
+
return { user, userWeight, bikeWeight, startupTimeout, automaticReconnect };
|
|
356
|
+
}
|
|
357
|
+
async start(startProps) {
|
|
358
|
+
const props = this.getStartProps(startProps);
|
|
359
|
+
const logProps = this.getLogProps(startProps);
|
|
360
|
+
const preCheckResult = await this.startPreChecks(props);
|
|
361
|
+
if (preCheckResult === 'done')
|
|
362
|
+
return this.started;
|
|
363
|
+
if (preCheckResult === 'connection-failed')
|
|
364
|
+
throw new Error(`could not start device, reason:could not connect`);
|
|
365
|
+
this.logEvent({ message: 'starting device', device: this.getName(), props: logProps, isStarted: this.started, isPaused: this.isPaused, isStopped: this.isStopped });
|
|
366
|
+
this.resetStartStatus();
|
|
367
|
+
this.resetData();
|
|
368
|
+
const { startupTimeout = this.getDefaultStartupTimeout() } = props;
|
|
369
|
+
const retryDelay = this.getDefaultReconnectDelay();
|
|
370
|
+
const totalTimeout = Math.min(startupTimeout + 10000, (startupTimeout + retryDelay) * MAX_RETRIES);
|
|
371
|
+
const doStart = async () => {
|
|
372
|
+
let success = false;
|
|
373
|
+
let retry = 0;
|
|
374
|
+
while (!success && retry < MAX_RETRIES && !this.startStatus.timeout && !this.startStatus.interrupted) {
|
|
375
|
+
try {
|
|
376
|
+
retry++;
|
|
377
|
+
await this.initSensor(props);
|
|
378
|
+
await this.waitForInitialData(startupTimeout);
|
|
379
|
+
await this.checkCapabilities();
|
|
380
|
+
if (this.hasCapability(index_js_1.IncyclistCapability.Control))
|
|
381
|
+
await this.initControl();
|
|
382
|
+
if (!this.startStatus.hasData && !this.startStatus.interrupted) {
|
|
383
|
+
await this.stopSensor();
|
|
384
|
+
await (0, utils_js_1.sleep)(retryDelay);
|
|
385
|
+
continue;
|
|
386
|
+
}
|
|
387
|
+
success = this.isStartSuccess();
|
|
388
|
+
}
|
|
389
|
+
catch (err) {
|
|
390
|
+
this.logEvent({ message: 'error', fn: 'start#doStart', device: this.getName(), error: err.message, stack: err.stack });
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
this.reportStartStatus();
|
|
394
|
+
return this.started;
|
|
395
|
+
};
|
|
396
|
+
const checkInterrupt = () => new Promise(done => {
|
|
397
|
+
this.internalEmitter.on('stop', () => {
|
|
398
|
+
this.started = false;
|
|
399
|
+
this.startStatus.interrupted = true;
|
|
400
|
+
done(false);
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
try {
|
|
404
|
+
await (0, utils_js_1.runWithTimeout)(Promise.race([doStart(), checkInterrupt()]), totalTimeout);
|
|
405
|
+
}
|
|
406
|
+
catch (err) {
|
|
407
|
+
if (err.message === 'Timeout') {
|
|
408
|
+
this.started = false;
|
|
409
|
+
this.startStatus.timeout = true;
|
|
410
|
+
this.logEvent({ message: 'start device failed', device: this.getName(), reason: 'timeout' });
|
|
411
|
+
throw new Error(`could not start device, reason:timeout`);
|
|
412
|
+
}
|
|
413
|
+
throw err;
|
|
414
|
+
}
|
|
415
|
+
return this.started;
|
|
416
|
+
}
|
|
417
|
+
async stop() {
|
|
418
|
+
let stopped;
|
|
419
|
+
this.internalEmitter.emit('stop');
|
|
420
|
+
if (this.stopped)
|
|
421
|
+
return;
|
|
422
|
+
this.logger.logEvent({ message: 'stopping device', device: this.getName() });
|
|
423
|
+
this.promiseWaitForData = null;
|
|
424
|
+
if (this.startStatus) {
|
|
425
|
+
this.startStatus.interrupted = true;
|
|
426
|
+
await (0, utils_js_1.sleep)(20);
|
|
427
|
+
}
|
|
428
|
+
try {
|
|
429
|
+
stopped = await (0, utils_js_1.runWithTimeout)(this.ant.stopSensor(this.sensor), 5000);
|
|
430
|
+
}
|
|
431
|
+
catch (err) {
|
|
432
|
+
this.logEvent({ message: 'stop sensor failed', reason: err.message });
|
|
433
|
+
}
|
|
434
|
+
this.sensorConnected = false;
|
|
435
|
+
this.started = false;
|
|
436
|
+
this.stopped = true;
|
|
437
|
+
this.paused = false;
|
|
438
|
+
this.removeAllListeners();
|
|
439
|
+
this.logEvent({ message: 'stopping device finished', device: this.getName(), stopped });
|
|
440
|
+
return stopped;
|
|
441
|
+
}
|
|
442
|
+
async startSensor() {
|
|
443
|
+
return await this.ant.startSensor(this.sensor, this.onDeviceData.bind(this));
|
|
444
|
+
}
|
|
445
|
+
async stopSensor() {
|
|
446
|
+
if (!this.sensorConnected)
|
|
447
|
+
return;
|
|
448
|
+
try {
|
|
449
|
+
await await this.ant.stopSensor(this.sensor);
|
|
450
|
+
this.sensorConnected = false;
|
|
451
|
+
}
|
|
452
|
+
catch { }
|
|
453
|
+
}
|
|
454
|
+
setCyclingMode(mode, settings, sendInitCommands) {
|
|
455
|
+
super.setCyclingMode(mode, settings, sendInitCommands);
|
|
456
|
+
this.refreshDeviceData();
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
exports.default = AntAdapter;
|