incyclist-services 1.0.35 → 1.0.37

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 (59) hide show
  1. package/README.MD +1 -0
  2. package/lib/devices/access/index.js.map +1 -0
  3. package/lib/devices/access/mock.d.ts +4 -0
  4. package/lib/devices/access/mock.js +10 -0
  5. package/lib/devices/access/mock.js.map +1 -0
  6. package/lib/devices/access/model.d.ts +5 -0
  7. package/lib/devices/access/model.js.map +1 -0
  8. package/lib/devices/access/service.d.ts +8 -2
  9. package/lib/devices/access/service.js +60 -22
  10. package/lib/devices/access/service.js.map +1 -0
  11. package/lib/devices/configuration/index.js.map +1 -0
  12. package/lib/devices/configuration/mock.d.ts +4 -0
  13. package/lib/devices/configuration/mock.js +16 -0
  14. package/lib/devices/configuration/mock.js.map +1 -0
  15. package/lib/devices/configuration/model/app/index.d.ts +1 -0
  16. package/lib/devices/configuration/model/app/index.js.map +1 -0
  17. package/lib/devices/configuration/model/index.js.map +1 -0
  18. package/lib/devices/configuration/model/repository/index.js.map +1 -0
  19. package/lib/devices/configuration/model/repository/legacy.js.map +1 -0
  20. package/lib/devices/configuration/model/service/index.js.map +1 -0
  21. package/lib/devices/configuration/service.d.ts +6 -1
  22. package/lib/devices/configuration/service.js +35 -10
  23. package/lib/devices/configuration/service.js.map +1 -0
  24. package/lib/devices/index.d.ts +1 -0
  25. package/lib/devices/index.js +1 -0
  26. package/lib/devices/index.js.map +1 -0
  27. package/lib/devices/pairing/index.d.ts +2 -0
  28. package/lib/devices/pairing/index.js +18 -0
  29. package/lib/devices/pairing/index.js.map +1 -0
  30. package/lib/devices/pairing/model.d.ts +59 -0
  31. package/lib/devices/pairing/model.js +2 -0
  32. package/lib/devices/pairing/model.js.map +1 -0
  33. package/lib/devices/pairing/service.d.ts +88 -0
  34. package/lib/devices/pairing/service.js +810 -0
  35. package/lib/devices/pairing/service.js.map +1 -0
  36. package/lib/devices/ride/index.js.map +1 -0
  37. package/lib/devices/ride/model.d.ts +8 -1
  38. package/lib/devices/ride/model.js.map +1 -0
  39. package/lib/devices/ride/service.d.ts +5 -11
  40. package/lib/devices/ride/service.js +8 -5
  41. package/lib/devices/ride/service.js.map +1 -0
  42. package/lib/index.js.map +1 -0
  43. package/lib/settings/index.js.map +1 -0
  44. package/lib/settings/user/bindings/index.js.map +1 -0
  45. package/lib/settings/user/bindings/json.js.map +1 -0
  46. package/lib/settings/user/bindings/types.js.map +1 -0
  47. package/lib/settings/user/mock.d.ts +4 -0
  48. package/lib/settings/user/mock.js +46 -0
  49. package/lib/settings/user/mock.js.map +1 -0
  50. package/lib/settings/user/service.d.ts +1 -1
  51. package/lib/settings/user/service.js +2 -1
  52. package/lib/settings/user/service.js.map +1 -0
  53. package/lib/utils/clone.js.map +1 -0
  54. package/lib/utils/index.js.map +1 -0
  55. package/lib/utils/logging.js.map +1 -0
  56. package/lib/utils/merge.js.map +1 -0
  57. package/lib/utils/sleep.js.map +1 -0
  58. package/lib/utils/valid.js.map +1 -0
  59. package/package.json +2 -2
package/README.MD CHANGED
@@ -26,3 +26,4 @@ The following Services are currently implemented in this library:
26
26
  - [DeviceConfiguration](./doc/classes/DeviceConfigurationService.md): manages the user configuration of scanned/added/selected devices
27
27
  - [DeviceAccess](./doc/classes/DeviceAccessService.md): manages the basic communication to the device (setting up interfacs, scanning,... )
28
28
  - [Device](./src/devices/device/README.MD): allows the Front-End to communicate with a device (reading, writing data)
29
+ - [DevicePairing](./doc/classes/DevicePairingService.md): implements the business logic og the DevicePairing screens
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/devices/access/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,4CAAyB"}
@@ -0,0 +1,4 @@
1
+ import { DeviceAccessService } from "./service";
2
+ export default class DeviceAccessMock extends DeviceAccessService {
3
+ constructor();
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const service_1 = require("./service");
4
+ class DeviceAccessMock extends service_1.DeviceAccessService {
5
+ constructor() {
6
+ super();
7
+ service_1.DeviceAccessService._instance = this;
8
+ }
9
+ }
10
+ exports.default = DeviceAccessMock;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/devices/access/mock.ts"],"names":[],"mappings":";;AAAA,uCAA+C;AAE/C,MAAqB,gBAAiB,SAAQ,6BAAmB;IAC7D;QACI,KAAK,EAAE,CAAA;QACP,6BAAmB,CAAC,SAAS,GAAG,IAAI,CAAC;IACzC,CAAC;CACJ;AALD,mCAKC"}
@@ -1,4 +1,5 @@
1
1
  import { DeviceSettings, IncyclistCapability } from "incyclist-devices";
2
+ import { InterfaceSetting } from "../configuration";
2
3
  export type InterfaceState = 'connected' | 'disconnected' | 'unknown' | 'connecting' | 'disconnecting' | 'unavailable';
3
4
  export type ScanState = 'start-requested' | 'started' | 'stop-requested' | 'stopped' | 'idle';
4
5
  export interface InterfaceInfo {
@@ -18,6 +19,10 @@ export interface InterfaceAccessProps {
18
19
  export interface InterfaceList {
19
20
  [index: string]: InterfaceInfo;
20
21
  }
22
+ export interface EnrichedInterfaceSetting extends InterfaceSetting {
23
+ state: InterfaceState;
24
+ isScanning: boolean;
25
+ }
21
26
  export interface ScanFilter {
22
27
  interfaces?: string[];
23
28
  capabilities?: (IncyclistCapability | 'bike')[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/devices/access/model.ts"],"names":[],"mappings":""}
@@ -2,7 +2,8 @@
2
2
  import EventEmitter from "events";
3
3
  import { EventLogger } from "gd-eventlog";
4
4
  import { DeviceSettings, IncyclistInterface } from "incyclist-devices";
5
- import { InterfaceList, ScanFilter, InterfaceInfo, InterfaceAccessProps, ScanState, ScanForNewFilter } from "./model";
5
+ import { InterfaceSetting } from "../configuration";
6
+ import { InterfaceList, ScanFilter, InterfaceInfo, InterfaceAccessProps, ScanState, ScanForNewFilter, EnrichedInterfaceSetting } from "./model";
6
7
  interface InternalScanState {
7
8
  promises: (Promise<DeviceSettings[]>)[];
8
9
  interfaces: IncyclistInterface[];
@@ -21,10 +22,15 @@ export declare class DeviceAccessService extends EventEmitter {
21
22
  disableInterface(ifaceName: string, avalailable?: boolean): void;
22
23
  setInterfaceProperties(ifaceName: string, props: InterfaceAccessProps): void;
23
24
  getInterfaceInfo(ifaceName: string): InterfaceInfo;
25
+ enrichWithAccessState(interfaces: InterfaceSetting[]): EnrichedInterfaceSetting[];
24
26
  protected getInterface(ifaceName: string): IncyclistInterface;
25
27
  connect(ifaceName?: string): Promise<boolean>;
28
+ private getScanTimeout;
26
29
  disconnect(ifaceName?: string): Promise<boolean>;
27
- scan(filter?: ScanFilter): Promise<DeviceSettings[]>;
30
+ scan(filter?: ScanFilter, props?: {
31
+ timeout?: number;
32
+ includeKnown?: boolean;
33
+ }): Promise<DeviceSettings[]>;
28
34
  scanForNew(filter?: ScanForNewFilter, maxDevices?: number, timeout?: number): Promise<DeviceSettings[] | DeviceSettings>;
29
35
  getPaths(ifaceName: string): Promise<string[]>;
30
36
  getProtocols(ifaceName: string): string[];
@@ -46,7 +46,8 @@ class DeviceAccessService extends events_1.default {
46
46
  enableInterface(ifaceName, binding, props = {}) {
47
47
  const existing = this.interfaces[ifaceName];
48
48
  if (!binding && !existing) {
49
- throw new Error('Interface has not been initialized with binding');
49
+ this.logEvent({ message: 'Interface has not been initialized with binding', interface: ifaceName });
50
+ this.emit('interface-changed', ifaceName, { name: ifaceName, state: 'unavailable', isScanning: false });
50
51
  }
51
52
  if (!existing) {
52
53
  const properties = (0, clone_1.default)(this.defaultProps);
@@ -60,7 +61,8 @@ class DeviceAccessService extends events_1.default {
60
61
  }
61
62
  else {
62
63
  if (this.isScanning(ifaceName)) {
63
- throw new Error('Illegal State, enable Interface cannot be called during an ongoing scan');
64
+ this.logEvent({ message: 'Illegal State, enable Interface cannot be called during an ongoing scan' });
65
+ return;
64
66
  }
65
67
  if (binding)
66
68
  existing.interface.setBinding(binding);
@@ -115,6 +117,21 @@ class DeviceAccessService extends events_1.default {
115
117
  getInterfaceInfo(ifaceName) {
116
118
  return this.interfaces[ifaceName];
117
119
  }
120
+ enrichWithAccessState(interfaces) {
121
+ return interfaces.map(i => {
122
+ const info = this.interfaces[i.name];
123
+ const enriched = Object.assign({}, i);
124
+ if (!info) {
125
+ enriched.state = 'unavailable';
126
+ enriched.isScanning = false;
127
+ }
128
+ else {
129
+ enriched.state = info.state;
130
+ enriched.isScanning = info.isScanning;
131
+ }
132
+ return enriched;
133
+ });
134
+ }
118
135
  getInterface(ifaceName) {
119
136
  const info = this.interfaces[ifaceName];
120
137
  return info === null || info === void 0 ? void 0 : info.interface;
@@ -130,6 +147,7 @@ class DeviceAccessService extends events_1.default {
130
147
  const impl = this.getInterface(ifaceName);
131
148
  if (!impl) {
132
149
  this.emit('interface-changed', ifaceName, { name: ifaceName, state: 'unavailable', isScanning: false });
150
+ this.interfaces[ifaceName].state = 'unavailable';
133
151
  return false;
134
152
  }
135
153
  const prevState = this.interfaces[ifaceName].state;
@@ -144,6 +162,17 @@ class DeviceAccessService extends events_1.default {
144
162
  return connected;
145
163
  });
146
164
  }
165
+ getScanTimeout(propsTimeout, interfaceSettingsTimeout) {
166
+ if (propsTimeout) {
167
+ if (propsTimeout === -1)
168
+ return undefined;
169
+ else
170
+ return propsTimeout;
171
+ }
172
+ else {
173
+ return interfaceSettingsTimeout;
174
+ }
175
+ }
147
176
  disconnect(ifaceName) {
148
177
  return __awaiter(this, void 0, void 0, function* () {
149
178
  if (!ifaceName) {
@@ -166,11 +195,13 @@ class DeviceAccessService extends events_1.default {
166
195
  return disconnected;
167
196
  });
168
197
  }
169
- scan(filter = {}) {
198
+ scan(filter = {}, props = {}) {
199
+ var _a, _b, _c;
170
200
  return __awaiter(this, void 0, void 0, function* () {
171
- this.logEvent({ message: 'device scan start', filter });
201
+ this.logEvent({ message: 'device scan start', filter, props });
172
202
  const detected = [];
173
203
  const onDataHandlers = {};
204
+ const { includeKnown = false } = props;
174
205
  if (!this.isScanning()) {
175
206
  this.emitScanStateChange('start-requested');
176
207
  this.scanState = {
@@ -192,17 +223,19 @@ class DeviceAccessService extends events_1.default {
192
223
  }
193
224
  };
194
225
  const onDevice = (deviceSettings) => __awaiter(this, void 0, void 0, function* () {
195
- if (adapters.find(a => a.isEqual(deviceSettings))) {
196
- return;
197
- }
198
- if (filter.profile && deviceSettings.profile !== filter.profile) {
199
- return;
200
- }
201
- if (filter.protocol && deviceSettings.protocol !== filter.protocol) {
202
- return;
203
- }
204
- if (filter.protocols && !filter.protocols.includes(deviceSettings.protocol)) {
205
- return;
226
+ if (!includeKnown) {
227
+ if (adapters.find(a => a.isEqual(deviceSettings))) {
228
+ return;
229
+ }
230
+ if (filter.profile && deviceSettings.profile !== filter.profile) {
231
+ return;
232
+ }
233
+ if (filter.protocol && deviceSettings.protocol !== filter.protocol) {
234
+ return;
235
+ }
236
+ if (filter.protocols && !filter.protocols.includes(deviceSettings.protocol)) {
237
+ return;
238
+ }
206
239
  }
207
240
  const adapter = incyclist_devices_1.AdapterFactory.create(deviceSettings);
208
241
  if (filter.capabilities) {
@@ -227,17 +260,18 @@ class DeviceAccessService extends events_1.default {
227
260
  const ifaceName = i.getName();
228
261
  const info = this.interfaces[ifaceName];
229
262
  info.isScanning = true;
230
- const props = info.properties || this.defaultProps;
231
- const { scanTimeout, port, protocol } = props;
232
- const properties = ifaceName === 'tcpip' || ifaceName === 'serial' ? { timeout: scanTimeout, port: port === null || port === void 0 ? void 0 : port.toString(), protocol } : { timeout: scanTimeout };
263
+ const scanProps = info.properties || this.defaultProps;
264
+ const { scanTimeout, port, protocol } = scanProps;
265
+ const timeout = this.getScanTimeout(props.timeout, scanTimeout);
266
+ const properties = ifaceName === 'tcpip' || ifaceName === 'serial' ? { timeout, port: port === null || port === void 0 ? void 0 : port.toString(), protocol } : { timeout: scanTimeout };
233
267
  this.scanState.promises.push(i.scan(properties));
234
268
  });
235
269
  this.emitScanStateChange('started');
236
270
  try {
237
- if (this.scanState.promises.length === 0) {
238
- this.scanState.promises.push(this.dummyScan());
271
+ if (((_a = this.scanState) === null || _a === void 0 ? void 0 : _a.promises.length) === 0) {
272
+ (_b = this.scanState) === null || _b === void 0 ? void 0 : _b.promises.push(this.dummyScan());
239
273
  }
240
- yield Promise.allSettled(this.scanState.promises);
274
+ yield Promise.allSettled((_c = this.scanState) === null || _c === void 0 ? void 0 : _c.promises);
241
275
  }
242
276
  catch (err) {
243
277
  this.logEvent({ message: 'device scan finished with errors', filter, error: err.message, stack: err.stack });
@@ -250,6 +284,7 @@ class DeviceAccessService extends events_1.default {
250
284
  if (i.getName() === 'tcpip')
251
285
  this.interfaces[i.getName()];
252
286
  });
287
+ adapters.forEach(adapter => adapter.removeAllListeners('data'));
253
288
  this.emitScanStateChange('stopped');
254
289
  this.logEvent({ message: 'device scan finished', filter, detected });
255
290
  return detected;
@@ -355,13 +390,15 @@ class DeviceAccessService extends events_1.default {
355
390
  this.logEvent({ message: 'stop device scan finished with errors', error: err.message, stack: err.stack });
356
391
  return false;
357
392
  }
358
- this.scanState.promises = [];
393
+ this.scanState = null;
359
394
  this.emitScanStateChange('stopped');
360
395
  this.logEvent({ message: 'stop device scan finished', stopScanresult: result });
361
396
  return true;
362
397
  });
363
398
  }
364
399
  isScanning(ifaceName) {
400
+ if (!this.scanState)
401
+ return false;
365
402
  if (!ifaceName)
366
403
  return this.scanState !== null && this.scanState.promises !== null && this.scanState.promises.length > 0;
367
404
  else
@@ -381,6 +418,7 @@ class DeviceAccessService extends events_1.default {
381
418
  const remaining = selectedInterfaces.filter(i => interfaceFilter.includes(i));
382
419
  interfaces = remaining.map(name => this.interfaces[name].interface);
383
420
  }
421
+ console.log('~~getINterfacesForScan', filter, interfaces);
384
422
  return interfaces;
385
423
  }
386
424
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/devices/access/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/devices/configuration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,4CAAyB"}
@@ -0,0 +1,4 @@
1
+ import { DeviceConfigurationService } from "./service";
2
+ export default class DeviceConfigurationMock extends DeviceConfigurationService {
3
+ constructor(settings: any);
4
+ }
@@ -0,0 +1,16 @@
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 mock_1 = __importDefault(require("../../settings/user/mock"));
7
+ const service_1 = require("./service");
8
+ class DeviceConfigurationMock extends service_1.DeviceConfigurationService {
9
+ constructor(settings) {
10
+ const svc = new mock_1.default(settings);
11
+ super();
12
+ this.userSettings = svc;
13
+ service_1.DeviceConfigurationService._instance = this;
14
+ }
15
+ }
16
+ exports.default = DeviceConfigurationMock;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/devices/configuration/mock.ts"],"names":[],"mappings":";;;;;AAAA,oEAAwD;AACxD,uCAAuD;AAEvD,MAAqB,uBAAwB,SAAQ,oCAA0B;IAE3E,YAAY,QAAQ;QAChB,MAAM,GAAG,GAAG,IAAI,cAAgB,CAAC,QAAQ,CAAC,CAAA;QAC1C,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QACvB,oCAA0B,CAAC,SAAS,GAAG,IAAI,CAAA;IAC/C,CAAC;CAEJ;AATD,0CASC"}
@@ -3,6 +3,7 @@ export type ExtendedIncyclistCapability = IncyclistCapability | 'bike';
3
3
  export interface DeviceInformation {
4
4
  udid: string;
5
5
  name: string;
6
+ interface: string;
6
7
  selected: boolean;
7
8
  mode?: string;
8
9
  modeSetting?: any;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/devices/configuration/model/app/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/devices/configuration/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,+CAA4B;AAC5B,4CAAyB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/devices/configuration/model/repository/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,2CAAwB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../../../src/devices/configuration/model/repository/legacy.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/devices/configuration/model/service/index.ts"],"names":[],"mappings":""}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { IncyclistCapability, IncyclistDeviceAdapter } from "incyclist-devices";
3
+ import { UserSettingsService } from "../../settings";
3
4
  import { AdapterInfo, DeviceConfigurationInfo, DeviceConfigurationSettings, DeviceModeInfo, ExtendedIncyclistCapability, IncyclistDeviceSettings, InterfaceSetting, LegacySettings } from "./model";
4
5
  import EventEmitter from "events";
5
6
  import { EventLogger } from "gd-eventlog";
@@ -15,7 +16,7 @@ export declare class DeviceConfigurationService extends EventEmitter {
15
16
  protected static _instance: DeviceConfigurationService;
16
17
  static getInstance(): DeviceConfigurationService;
17
18
  settings: DeviceConfigurationSettings;
18
- userSettings: any;
19
+ userSettings: UserSettingsService;
19
20
  adapters: DeviceAdapterList;
20
21
  protected logger: EventLogger;
21
22
  constructor();
@@ -31,6 +32,10 @@ export declare class DeviceConfigurationService extends EventEmitter {
31
32
  protected getDeviceConfigurationInfo(): DeviceConfigurationInfo;
32
33
  protected emitCapabiltyChanged(capability?: ExtendedIncyclistCapability): void;
33
34
  protected emitInitialized(): void;
35
+ load(): {
36
+ capabilities: DeviceConfigurationInfo;
37
+ interfaces: Array<InterfaceSetting>;
38
+ };
34
39
  disableCapability(cability: ExtendedIncyclistCapability, disabled?: boolean): void;
35
40
  select(udid: string, capability: ExtendedIncyclistCapability, props?: {
36
41
  noRecursive?: boolean;
@@ -36,7 +36,7 @@ class DeviceConfigurationService extends events_1.default {
36
36
  var _a;
37
37
  (_a = this.logger) === null || _a === void 0 ? void 0 : _a.logEvent(e);
38
38
  const w = global.window;
39
- if (w === null || w === void 0 ? void 0 : w.SERVICE_DEBUG) {
39
+ if ((w === null || w === void 0 ? void 0 : w.SERVICE_DEBUG) || process.env.DEBUG) {
40
40
  console.log('~~~ CONFIG-SVC', e);
41
41
  }
42
42
  }
@@ -45,6 +45,7 @@ class DeviceConfigurationService extends events_1.default {
45
45
  }
46
46
  init() {
47
47
  return __awaiter(this, void 0, void 0, function* () {
48
+ yield this.userSettings.init();
48
49
  if (this.isInitialized()) {
49
50
  this.emitInitialized();
50
51
  return;
@@ -57,6 +58,7 @@ class DeviceConfigurationService extends events_1.default {
57
58
  settings.modeSettings = this.userSettings.get('preferences.gear', {});
58
59
  try {
59
60
  yield this.initFromLegacy(settings);
61
+ this.verifyCapabilitySettings();
60
62
  }
61
63
  catch (err) {
62
64
  this.logError(err, 'init()');
@@ -91,12 +93,6 @@ class DeviceConfigurationService extends events_1.default {
91
93
  this.logEvent({ message: 'error', fn: 'init()->Adapterfactory.create()', error: err.message, udid: d.udid, settings: d.settings, devices: this.settings.devices, stack: err.stack, });
92
94
  }
93
95
  });
94
- const { capabilities } = this.settings;
95
- for (const capability of ['bike', incyclist_devices_1.IncyclistCapability.Control]) {
96
- const info = capabilities.find(c => c.capability === capability);
97
- if (info && info.devices.length > 0 && info.selected === undefined)
98
- this.select(info.devices[0], capability);
99
- }
100
96
  this.verifyCapabilitySettings();
101
97
  this.removeLegacySettings();
102
98
  this.logEvent({ message: 'DeviceConfig.init done' });
@@ -105,6 +101,14 @@ class DeviceConfigurationService extends events_1.default {
105
101
  }
106
102
  verifyCapabilitySettings() {
107
103
  const { capabilities } = this.settings;
104
+ const isNewUi = this.userSettings.get('NEW_UI', false);
105
+ if (isNewUi)
106
+ return;
107
+ for (const capability of ['bike', incyclist_devices_1.IncyclistCapability.Control]) {
108
+ const info = capabilities.find(c => c.capability === capability);
109
+ if (info && info.devices.length > 0 && info.selected === undefined)
110
+ this.select(info.devices[0], capability);
111
+ }
108
112
  const bikeCap = capabilities.find(c => c.capability === 'bike');
109
113
  if (bikeCap && bikeCap.selected) {
110
114
  const bike = bikeCap.selected;
@@ -113,16 +117,19 @@ class DeviceConfigurationService extends events_1.default {
113
117
  const speed = capabilities.find(c => c.capability === incyclist_devices_1.IncyclistCapability.Speed && c.selected !== undefined);
114
118
  const cadence = capabilities.find(c => c.capability === incyclist_devices_1.IncyclistCapability.Cadence && c.selected !== undefined);
115
119
  const adapter = this.getAdapter(bike);
120
+ let changed = false;
116
121
  const verify = (uuid, cap) => {
117
122
  if (!uuid && adapter.hasCapability(cap)) {
118
123
  const setting = capabilities.find(c => c.capability === cap);
119
124
  if (!setting) {
120
125
  capabilities.push({ capability: cap, devices: [bike], selected: bike, disabled: false });
126
+ changed = true;
121
127
  }
122
128
  else {
123
129
  setting.selected = bike;
124
130
  if (!setting.devices.includes(bike))
125
131
  setting.devices.push(bike);
132
+ changed = true;
126
133
  }
127
134
  }
128
135
  };
@@ -130,6 +137,10 @@ class DeviceConfigurationService extends events_1.default {
130
137
  verify(power, incyclist_devices_1.IncyclistCapability.Power);
131
138
  verify(speed, incyclist_devices_1.IncyclistCapability.Speed);
132
139
  verify(cadence, incyclist_devices_1.IncyclistCapability.Cadence);
140
+ if (changed) {
141
+ this.updateUserSettings();
142
+ this.logEvent({ message: 'capability changed after verification', capabilities });
143
+ }
133
144
  }
134
145
  }
135
146
  initCapabilties() {
@@ -303,7 +314,9 @@ class DeviceConfigurationService extends events_1.default {
303
314
  const device = devices.find(d => d.udid === udid);
304
315
  const mode = device.mode;
305
316
  const modeSetting = device.modes ? device.modes[mode] : undefined;
306
- return { udid, name: (device === null || device === void 0 ? void 0 : device.displayName) || (adapter === null || adapter === void 0 ? void 0 : adapter.getUniqueName()) || (adapter === null || adapter === void 0 ? void 0 : adapter.getName()), selected: udid === c.selected, mode, modeSetting };
317
+ const interfaceName = device.settings.interface;
318
+ const name = (device === null || device === void 0 ? void 0 : device.displayName) || (adapter === null || adapter === void 0 ? void 0 : adapter.getUniqueName()) || (adapter === null || adapter === void 0 ? void 0 : adapter.getName());
319
+ return { udid, name, interface: interfaceName, selected: udid === c.selected, mode, modeSetting };
307
320
  })
308
321
  };
309
322
  return ci;
@@ -323,6 +336,13 @@ class DeviceConfigurationService extends events_1.default {
323
336
  const configuration = this.getDeviceConfigurationInfo();
324
337
  this.emit('initialized', configuration, this.settings.interfaces);
325
338
  }
339
+ load() {
340
+ if (!this.isInitialized())
341
+ throw new Error('load cannot be called before init');
342
+ const capabilities = this.getDeviceConfigurationInfo();
343
+ const interfaces = this.settings.interfaces;
344
+ return { capabilities, interfaces };
345
+ }
326
346
  disableCapability(cability, disabled = true) {
327
347
  const cabilitySettings = this.settings.capabilities.find(c => c.capability === cability);
328
348
  cabilitySettings.disabled = disabled;
@@ -471,6 +491,7 @@ class DeviceConfigurationService extends events_1.default {
471
491
  const singleDelete = capability && ((capability !== 'bike' && capability !== incyclist_devices_1.IncyclistCapability.Control) || forceSingle);
472
492
  if (singleDelete) {
473
493
  const record = capabilities.find(c => c.capability === capability);
494
+ console.log('~~~ record', record);
474
495
  if (record) {
475
496
  const deviceIdx = record.devices.findIndex(d => d === udid);
476
497
  if (record.selected === udid) {
@@ -484,8 +505,10 @@ class DeviceConfigurationService extends events_1.default {
484
505
  }
485
506
  }
486
507
  if (deviceIdx !== -1) {
508
+ console.log('~~~ remove device', deviceIdx);
487
509
  record.devices.splice(deviceIdx, 1);
488
- if (!forceSingle) {
510
+ if (forceSingle) {
511
+ console.log('~~~ emit Update', deviceIdx);
489
512
  this.emitCapabiltyChanged(capability);
490
513
  this.updateUserSettings();
491
514
  }
@@ -564,13 +587,15 @@ class DeviceConfigurationService extends events_1.default {
564
587
  this.userSettings.set('interfaces', this.settings.interfaces);
565
588
  }
566
589
  canStartRide() {
590
+ const isNewUi = this.userSettings.get('NEW_UI', false);
567
591
  const { devices, capabilities } = this.settings || {};
568
592
  if (!devices || !capabilities)
569
593
  return false;
570
- return (this.getSelected('bike') !== undefined ||
594
+ const canStart = ((!isNewUi && this.getSelected('bike') !== undefined) ||
571
595
  this.getSelected(incyclist_devices_1.IncyclistCapability.Control) !== undefined ||
572
596
  this.getSelected(incyclist_devices_1.IncyclistCapability.Power) !== undefined ||
573
597
  this.getSelected(incyclist_devices_1.IncyclistCapability.Speed) !== undefined);
598
+ return canStart;
574
599
  }
575
600
  getModeSettings(requestedUdid, requestedMode) {
576
601
  var _a, _b, _c;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/devices/configuration/service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './configuration';
2
2
  export * from './access';
3
3
  export * from './ride';
4
+ export * from './pairing';
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./configuration"), exports);
18
18
  __exportStar(require("./access"), exports);
19
19
  __exportStar(require("./ride"), exports);
20
+ __exportStar(require("./pairing"), exports);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,2CAAyB;AACzB,yCAAuB;AACvB,4CAAyB"}
@@ -0,0 +1,2 @@
1
+ export * from './service';
2
+ export * from './model';