sportident.js 1.6.0 → 1.7.0

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 (61) hide show
  1. package/SiCard/IRaceResultData.d.ts +13 -0
  2. package/SiCard/IRaceResultData.d.ts.map +1 -1
  3. package/SiCard/ISiCardEvents.d.ts +1 -1
  4. package/SiCard/ISiCardEvents.d.ts.map +1 -1
  5. package/SiCard/types/ModernSiCard.d.ts +10 -0
  6. package/SiCard/types/ModernSiCard.d.ts.map +1 -1
  7. package/SiCard/types/ModernSiCard.js +60 -14
  8. package/SiCard/types/ModernSiCard.js.map +1 -1
  9. package/SiCard/types/PCard.d.ts.map +1 -1
  10. package/SiCard/types/PCard.js +1 -1
  11. package/SiCard/types/PCard.js.map +1 -1
  12. package/SiCard/types/PCard.test.js +1 -1
  13. package/SiCard/types/PCard.test.js.map +1 -1
  14. package/SiCard/types/SIAC.d.ts +42 -2
  15. package/SiCard/types/SIAC.d.ts.map +1 -1
  16. package/SiCard/types/SIAC.js +159 -4
  17. package/SiCard/types/SIAC.js.map +1 -1
  18. package/SiCard/types/SIAC.test.js +236 -18
  19. package/SiCard/types/SIAC.test.js.map +1 -1
  20. package/SiCard/types/SiCard10.test.js +1 -1
  21. package/SiCard/types/SiCard10.test.js.map +1 -1
  22. package/SiCard/types/SiCard11.d.ts.map +1 -1
  23. package/SiCard/types/SiCard11.js +1 -3
  24. package/SiCard/types/SiCard11.js.map +1 -1
  25. package/SiCard/types/SiCard11.test.js +2 -2
  26. package/SiCard/types/SiCard11.test.js.map +1 -1
  27. package/SiCard/types/SiCard8.d.ts.map +1 -1
  28. package/SiCard/types/SiCard8.js +1 -1
  29. package/SiCard/types/SiCard8.js.map +1 -1
  30. package/SiCard/types/SiCard8.test.js +1 -1
  31. package/SiCard/types/SiCard8.test.js.map +1 -1
  32. package/SiCard/types/SiCard9.d.ts.map +1 -1
  33. package/SiCard/types/SiCard9.js +1 -1
  34. package/SiCard/types/SiCard9.js.map +1 -1
  35. package/SiCard/types/SiCard9.test.js +1 -1
  36. package/SiCard/types/SiCard9.test.js.map +1 -1
  37. package/SiStation/CoupledSiStation.d.ts +4 -0
  38. package/SiStation/CoupledSiStation.d.ts.map +1 -1
  39. package/SiStation/CoupledSiStation.js +108 -15
  40. package/SiStation/CoupledSiStation.js.map +1 -1
  41. package/SiStation/CoupledSiStation.test.js +558 -0
  42. package/SiStation/CoupledSiStation.test.js.map +1 -1
  43. package/SiStation/ISiStationEvents.d.ts +33 -0
  44. package/SiStation/ISiStationEvents.d.ts.map +1 -0
  45. package/SiStation/ISiStationEvents.js +73 -0
  46. package/SiStation/ISiStationEvents.js.map +1 -0
  47. package/SiStation/index.d.ts +1 -0
  48. package/SiStation/index.d.ts.map +1 -1
  49. package/SiStation/index.js +15 -0
  50. package/SiStation/index.js.map +1 -1
  51. package/fakes/FakeSiCard/types/FakeSIAC.d.ts +2 -2
  52. package/fakes/FakeSiCard/types/FakeSIAC.d.ts.map +1 -1
  53. package/fakes/FakeSiCard/types/FakeSIAC.js +4 -4
  54. package/fakes/FakeSiCard/types/FakeSIAC.js.map +1 -1
  55. package/index.d.ts +4 -0
  56. package/index.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/testUtils.d.ts +1 -0
  59. package/testUtils.d.ts.map +1 -1
  60. package/testUtils.js +5 -1
  61. package/testUtils.js.map +1 -1
@@ -2,6 +2,8 @@ import type { ISiDevice, ISiDeviceDriverData } from '../SiDevice/ISiDevice';
2
2
  import type { ISiStation } from './ISiStation';
3
3
  import { type ISiTargetMultiplexer, SiTargetMultiplexerTarget } from './ISiTargetMultiplexer';
4
4
  import { BaseSiStation } from './BaseSiStation';
5
+ import * as utils from '../utils';
6
+ import { type SiStationBackupReadEvents } from './ISiStationEvents';
5
7
  export declare class CoupledSiStation extends BaseSiStation<SiTargetMultiplexerTarget.Remote> implements ISiStation<SiTargetMultiplexerTarget.Remote> {
6
8
  static fromSiDevice(siDevice: ISiDevice<ISiDeviceDriverData<unknown>>): CoupledSiStation;
7
9
  static fromSiTargetMultiplexer(multiplexer: ISiTargetMultiplexer): CoupledSiStation;
@@ -11,4 +13,6 @@ export declare class CoupledSiStation extends BaseSiStation<SiTargetMultiplexerT
11
13
  date: Date | undefined;
12
14
  }[]>;
13
15
  }
16
+ export interface CoupledSiStation extends utils.EventTarget<SiStationBackupReadEvents> {
17
+ }
14
18
  //# sourceMappingURL=CoupledSiStation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoupledSiStation.d.ts","sourceRoot":"","sources":["../../src/SiStation/CoupledSiStation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,yBAAyB,CAAC,MAAM,CAAE,YAAW,UAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC;IAC5I,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,gBAAgB;IAKxF,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,oBAAoB,GAAG,gBAAgB;IAI7E,aAAa,CAAC,OAAO,GAAC,OAAY,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAC,SAAS,CAAE;QAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;KAAC,EAAE,CAAC;CA0H5H"}
1
+ {"version":3,"file":"CoupledSiStation.d.ts","sourceRoot":"","sources":["../../src/SiStation/CoupledSiStation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAClC,OAAO,EACN,KAAK,yBAAyB,EAK9B,MAAM,oBAAoB,CAAC;AAK5B,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,yBAAyB,CAAC,MAAM,CAAE,YAAW,UAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC;IAC5I,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,gBAAgB;IAKxF,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,oBAAoB,GAAG,gBAAgB;IAI7E,aAAa,CAAC,OAAO,GAAC,OAAY,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAC,SAAS,CAAE;QAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;KAAC,EAAE,CAAC;CAsN5H;AAGD,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,WAAW,CAAC,yBAAyB,CAAC;CAAG"}
@@ -49,7 +49,9 @@ const SiTargetMultiplexer_1 = require("./SiTargetMultiplexer");
49
49
  const constants_1 = require("../constants");
50
50
  const siProtocol = __importStar(require("../siProtocol"));
51
51
  const utils = __importStar(require("../utils"));
52
+ const ISiStationEvents_1 = require("./ISiStationEvents");
52
53
  const logger = utils.getLogger('CoupledSiStation');
54
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
53
55
  class CoupledSiStation extends BaseSiStation_1.BaseSiStation {
54
56
  static fromSiDevice(siDevice) {
55
57
  const multiplexer = SiTargetMultiplexer_1.SiTargetMultiplexer.fromSiDevice(siDevice);
@@ -63,6 +65,9 @@ class CoupledSiStation extends BaseSiStation_1.BaseSiStation {
63
65
  const backupData = [];
64
66
  let backupNextWritePointer = 0;
65
67
  let hasMemoryOverflow = false;
68
+ // Emit start event early (totalBytes unknown yet, will be updated)
69
+ this.dispatchEvent('backupReadStart', new ISiStationEvents_1.SiStationBackupReadStartEvent(this, 0));
70
+ this.dispatchEvent('backupReadProgress', new ISiStationEvents_1.SiStationBackupReadProgressEvent(this, 0, 0, 0, 0));
66
71
  // Get backup pointer
67
72
  for (let tries = 0; tries < 10 && (backupNextWritePointer == 0 || backupNextWritePointer == undefined); tries++) {
68
73
  try {
@@ -70,7 +75,9 @@ class CoupledSiStation extends BaseSiStation_1.BaseSiStation {
70
75
  command: constants_1.proto.cmd.GET_SYS_VAL,
71
76
  parameters: [0x1c, 0x07]
72
77
  }, 1, 10000).then((d) => {
78
+ logger.debug('Backup pointer response', { rawBytes: d[0].map(b => b.toString(16).padStart(2, '0')).join(' ') });
73
79
  backupNextWritePointer = (d[0][3] << 24) | (d[0][4] << 16) | (d[0][8] << 8) | d[0][9];
80
+ logger.debug('Parsed backup pointer', { pointer: '0x' + backupNextWritePointer.toString(16), decimal: backupNextWritePointer });
74
81
  }).catch((_e) => __awaiter(this, void 0, void 0, function* () {
75
82
  yield this.sendMessage({
76
83
  command: constants_1.proto.WAKEUP,
@@ -84,27 +91,76 @@ class CoupledSiStation extends BaseSiStation_1.BaseSiStation {
84
91
  }
85
92
  }
86
93
  if (backupNextWritePointer == 0 || backupNextWritePointer == undefined) {
87
- return Promise.reject(new Error("Unable to access coupled si station!"));
94
+ const error = new Error("Unable to access coupled si station!");
95
+ this.dispatchEvent('backupReadError', new ISiStationEvents_1.SiStationBackupReadErrorEvent(this, error));
96
+ return Promise.reject(error);
88
97
  }
89
- yield this.sendMessage({
90
- command: constants_1.proto.cmd.GET_SYS_VAL,
91
- parameters: [0x3d, 0x01]
92
- }, 1, 10000).then((d) => {
93
- hasMemoryOverflow = d[0][0] != 0;
94
- }).catch((_e) => __awaiter(this, void 0, void 0, function* () {
95
- return Promise.reject(new Error("Unable to read if backup is overflowed or not!"));
96
- }));
97
- let backupReadLocation = hasMemoryOverflow ? backupNextWritePointer + 1 : 0x0100;
98
+ // Pointer read successful - emit progress (1%)
99
+ this.dispatchEvent('backupReadProgress', new ISiStationEvents_1.SiStationBackupReadProgressEvent(this, 0, 0, 0, 1));
100
+ // Read overflow flag with retries
101
+ let overflowReadSuccess = false;
102
+ for (let overflowTries = 0; overflowTries < 5 && !overflowReadSuccess; overflowTries++) {
103
+ try {
104
+ const overflowResponse = yield this.sendMessage({
105
+ command: constants_1.proto.cmd.GET_SYS_VAL,
106
+ parameters: [0x3d, 0x01]
107
+ }, 1, 10000);
108
+ // Response format: [CN1, CN0, ADR, data...] - overflow flag is at index 3
109
+ logger.debug('Overflow flag response', { rawBytes: overflowResponse[0].map((b) => b.toString(16).padStart(2, '0')).join(' '), byteAtIndex3: overflowResponse[0][3] });
110
+ hasMemoryOverflow = overflowResponse[0][3] != 0;
111
+ logger.debug('Overflow flag parsed', { hasMemoryOverflow });
112
+ overflowReadSuccess = true;
113
+ }
114
+ catch (_b) {
115
+ logger.debug('Overflow flag read failed', { attempt: overflowTries + 1 });
116
+ if (overflowTries < 4) {
117
+ yield new Promise(resolve => setTimeout(resolve, 100));
118
+ }
119
+ else {
120
+ // All retries failed - assume no overflow
121
+ logger.warn('Unable to read overflow flag after retries, assuming no overflow');
122
+ hasMemoryOverflow = false;
123
+ }
124
+ }
125
+ }
126
+ // Overflow flag read complete - emit progress (2%)
127
+ this.dispatchEvent('backupReadProgress', new ISiStationEvents_1.SiStationBackupReadProgressEvent(this, 0, 0, 0, 2));
128
+ const backupStartLocation = hasMemoryOverflow ? backupNextWritePointer + 1 : 0x0100;
129
+ let backupReadLocation = backupStartLocation;
98
130
  const backupMaxLocation = 0x200000;
131
+ const totalBytes = hasMemoryOverflow
132
+ ? (backupMaxLocation - backupStartLocation) + (backupNextWritePointer - 0x0100)
133
+ : backupNextWritePointer - backupStartLocation;
99
134
  let backupStorageSize = 128;
100
- while (backupReadLocation < backupNextWritePointer && backupReadLocation < backupMaxLocation) {
135
+ let errorRetryCount = 0;
136
+ let bytesRead = 0;
137
+ const maxRetriesPerBlockSize = 5;
138
+ const expectedRecords = Math.floor(totalBytes / constants_1.proto.REC_LEN);
139
+ logger.debug('Backup read parameters', {
140
+ backupNextWritePointer: '0x' + backupNextWritePointer.toString(16),
141
+ backupStartLocation: '0x' + backupStartLocation.toString(16),
142
+ totalBytes,
143
+ expectedRecords,
144
+ hasMemoryOverflow
145
+ });
146
+ // Emit progress showing we're ready to read data (3%)
147
+ this.dispatchEvent('backupReadProgress', new ISiStationEvents_1.SiStationBackupReadProgressEvent(this, 0, totalBytes, 0, 3));
148
+ while ((hasMemoryOverflow || backupReadLocation < backupNextWritePointer) && backupReadLocation < backupMaxLocation) {
101
149
  try {
102
- const actualReadLength = Math.min(backupStorageSize, backupNextWritePointer - backupReadLocation);
150
+ const endLocation = hasMemoryOverflow ? backupMaxLocation : backupNextWritePointer;
151
+ const actualReadLength = Math.min(backupStorageSize, endLocation - backupReadLocation);
152
+ logger.debug('Reading backup block', {
153
+ address: '0x' + backupReadLocation.toString(16),
154
+ length: actualReadLength,
155
+ remaining: backupNextWritePointer - backupReadLocation,
156
+ recordsSoFar: backupData.length
157
+ });
103
158
  yield this.sendMessage({
104
159
  command: constants_1.proto.cmd.GET_BACKUP,
105
160
  parameters: [(backupReadLocation >> 16) & 0xff, (backupReadLocation >> 8) & 0xff, backupReadLocation & 0xff, actualReadLength]
106
161
  }, 1, 10000)
107
162
  .then((d) => {
163
+ errorRetryCount = 0; // Reset retry counter on success
108
164
  const cn = (d[0][0] << 8) | d[0][1];
109
165
  const addr = (d[0][2] << 16) | (d[0][3] << 8) | d[0][4];
110
166
  let p = 5;
@@ -129,23 +185,58 @@ class CoupledSiStation extends BaseSiStation_1.BaseSiStation {
129
185
  p += constants_1.proto.REC_LEN;
130
186
  }
131
187
  backupReadLocation += actualReadLength;
188
+ bytesRead += actualReadLength;
132
189
  // Rotate to start, if overflow
133
190
  if (hasMemoryOverflow && backupReadLocation >= backupMaxLocation) {
134
191
  hasMemoryOverflow = false;
135
192
  backupReadLocation = 0x0100;
136
193
  }
194
+ // Scale percentage from 3% (init done) to 100% (complete)
195
+ const percentage = totalBytes > 0 ? Math.round(3 + (bytesRead / totalBytes) * 97) : 3;
196
+ this.dispatchEvent('backupReadProgress', new ISiStationEvents_1.SiStationBackupReadProgressEvent(this, bytesRead, totalBytes, backupData.length, percentage));
137
197
  });
138
198
  }
139
- catch (_b) {
140
- if (backupStorageSize >= 2 * constants_1.proto.REC_LEN) {
199
+ catch (e) {
200
+ // On error (NAK), retry with delay first, then reduce block size per SI protocol spec
201
+ errorRetryCount++;
202
+ logger.debug('Backup read error', {
203
+ address: '0x' + backupReadLocation.toString(16),
204
+ blockSize: backupStorageSize,
205
+ recordsSoFar: backupData.length,
206
+ retryCount: errorRetryCount,
207
+ error: e instanceof Error ? e.message : String(e)
208
+ });
209
+ if (errorRetryCount < maxRetriesPerBlockSize) {
210
+ // Retry at same block size with a small delay
211
+ logger.debug('Retrying read', { attempt: errorRetryCount + 1, maxRetries: maxRetriesPerBlockSize });
212
+ yield new Promise(resolve => setTimeout(resolve, 100));
213
+ }
214
+ else if (backupStorageSize >= 2 * constants_1.proto.REC_LEN) {
215
+ // Max retries reached, reduce block size
141
216
  backupStorageSize /= 2;
217
+ errorRetryCount = 0;
142
218
  logger.info('Reducing backup block size', { newSize: backupStorageSize });
143
219
  }
144
220
  else {
145
- return Promise.reject("Unable to read backup data");
221
+ // At minimum block size and max retries exhausted
222
+ if (backupData.length > 0) {
223
+ // We have some data - might have reached actual end of backup
224
+ logger.info('Backup read stopped at minimum block size', { recordsRead: backupData.length, lastAddress: backupReadLocation });
225
+ break;
226
+ }
227
+ const error = new Error("Unable to read backup data");
228
+ this.dispatchEvent('backupReadError', new ISiStationEvents_1.SiStationBackupReadErrorEvent(this, error));
229
+ return Promise.reject(error);
146
230
  }
147
231
  }
148
232
  }
233
+ logger.debug('Backup read loop exited', {
234
+ finalAddress: '0x' + backupReadLocation.toString(16),
235
+ targetPointer: '0x' + backupNextWritePointer.toString(16),
236
+ reachedPointer: backupReadLocation >= backupNextWritePointer,
237
+ reachedMaxLocation: backupReadLocation >= backupMaxLocation,
238
+ totalRecords: backupData.length
239
+ });
149
240
  // Confirm read end with signal
150
241
  yield this.sendMessage({
151
242
  command: constants_1.proto.cmd.SIGNAL,
@@ -165,9 +256,11 @@ class CoupledSiStation extends BaseSiStation_1.BaseSiStation {
165
256
  });
166
257
  }
167
258
  }
259
+ this.dispatchEvent('backupReadComplete', new ISiStationEvents_1.SiStationBackupReadCompleteEvent(this, backupData.length));
168
260
  return backupData;
169
261
  });
170
262
  }
171
263
  }
172
264
  exports.CoupledSiStation = CoupledSiStation;
265
+ utils.applyMixins(CoupledSiStation, [utils.EventTarget]);
173
266
  //# sourceMappingURL=CoupledSiStation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoupledSiStation.js","sourceRoot":"","sources":["../../src/SiStation/CoupledSiStation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoupledSiStation.js","sourceRoot":"","sources":["../../src/SiStation/CoupledSiStation.ts"],"names":[],"mappings":"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"}