tirecheck-device-sdk 0.1.999 → 0.2.2
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/dist/index.cjs +98 -36
- package/dist/index.mjs +98 -36
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2907,6 +2907,22 @@ const bridgeSimulator = {
|
|
|
2907
2907
|
async setVehicle(deviceId, vehicle) {
|
|
2908
2908
|
const bridge = getSimulatedBridge(deviceId);
|
|
2909
2909
|
bridge.vin = vehicle.vin ?? bridge.vin;
|
|
2910
|
+
for (const tcTyre of vehicle.tcTyres) {
|
|
2911
|
+
if (tcTyre.tcTpmsSensor?.id && tcTyre.mountedOn?.positionId) {
|
|
2912
|
+
const currentSensor = bridge.simulatorData.sensors[tcTyre.mountedOn.positionId];
|
|
2913
|
+
if (currentSensor?.sensorId === tcTyre.tcTpmsSensor.id) {
|
|
2914
|
+
continue;
|
|
2915
|
+
}
|
|
2916
|
+
const tyreAxle = bridge.simulatorData.vehicle.axles[Math.floor(tcTyre.mountedOn.positionId / 100) - 1];
|
|
2917
|
+
if (!tyreAxle) continue;
|
|
2918
|
+
const sensorIdInBinary = bridgeTools.hexToDecimalArray(tcTyre.tcTpmsSensor.id).reverse();
|
|
2919
|
+
bridge.simulatorData.sensors[tcTyre.mountedOn.positionId] = createSensorData(
|
|
2920
|
+
tyreAxle,
|
|
2921
|
+
tcTyre.tcTpmsSensor.id,
|
|
2922
|
+
sensorIdInBinary
|
|
2923
|
+
);
|
|
2924
|
+
}
|
|
2925
|
+
}
|
|
2910
2926
|
bridge.simulatorData.vehicle = vehicle;
|
|
2911
2927
|
},
|
|
2912
2928
|
async getConfiguration(deviceId) {
|
|
@@ -3162,6 +3178,39 @@ function getSimulatedBridgeTemplate() {
|
|
|
3162
3178
|
}
|
|
3163
3179
|
};
|
|
3164
3180
|
}
|
|
3181
|
+
function createSensorData(tyreAxle, sensorId, sensorIdInBinary) {
|
|
3182
|
+
return {
|
|
3183
|
+
date: Date.now(),
|
|
3184
|
+
eceStatus: 0,
|
|
3185
|
+
sensorId,
|
|
3186
|
+
sensorStatus: 0,
|
|
3187
|
+
pressure: {
|
|
3188
|
+
bar: tyreAxle.targetPressure ?? 0,
|
|
3189
|
+
meas: tyreAxle.targetPressure ?? 0,
|
|
3190
|
+
raw: (tyreAxle.targetPressure ?? 0) * 19.753086
|
|
3191
|
+
},
|
|
3192
|
+
pressureIssue: void 0,
|
|
3193
|
+
temperature: { amb: 20, celsius: 24, raw: 64 },
|
|
3194
|
+
byteReading: [
|
|
3195
|
+
16,
|
|
3196
|
+
1,
|
|
3197
|
+
12,
|
|
3198
|
+
253,
|
|
3199
|
+
25,
|
|
3200
|
+
...sensorIdInBinary,
|
|
3201
|
+
tyreAxle.targetPressure ? tyreAxle.targetPressure * 19.753086 : 0,
|
|
3202
|
+
64,
|
|
3203
|
+
255,
|
|
3204
|
+
0,
|
|
3205
|
+
0,
|
|
3206
|
+
40,
|
|
3207
|
+
255,
|
|
3208
|
+
255,
|
|
3209
|
+
255,
|
|
3210
|
+
255
|
|
3211
|
+
]
|
|
3212
|
+
};
|
|
3213
|
+
}
|
|
3165
3214
|
|
|
3166
3215
|
const flexiGaugeTpmsSimulator = {
|
|
3167
3216
|
createSimulatedDevice(initialData) {
|
|
@@ -3241,7 +3290,12 @@ const simulator = {
|
|
|
3241
3290
|
const simulatedDevices = {};
|
|
3242
3291
|
for (const key in devices) {
|
|
3243
3292
|
const device = devices[key];
|
|
3244
|
-
|
|
3293
|
+
let normalizedDevice = normalizeSimulatedDevice(device);
|
|
3294
|
+
if (normalizedDevice) {
|
|
3295
|
+
if (normalizedDevice?.type === "bridge" && normalizedDevice?.simulatorData?.sensors) {
|
|
3296
|
+
normalizedDevice = processNormalizedBridgeDevice(normalizedDevice);
|
|
3297
|
+
}
|
|
3298
|
+
}
|
|
3245
3299
|
if (normalizedDevice) simulatedDevices[normalizedDevice.id] = normalizedDevice;
|
|
3246
3300
|
}
|
|
3247
3301
|
store.simulatedDevices = simulatedDevices;
|
|
@@ -3249,7 +3303,12 @@ const simulator = {
|
|
|
3249
3303
|
},
|
|
3250
3304
|
putSimulatedDevice(device) {
|
|
3251
3305
|
ensureSimulatorMethodsAreInjected();
|
|
3252
|
-
|
|
3306
|
+
let normalizedDevice = this.createSimulatedDevice(device);
|
|
3307
|
+
if (normalizedDevice) {
|
|
3308
|
+
if (normalizedDevice?.type === "bridge" && normalizedDevice?.simulatorData?.sensors) {
|
|
3309
|
+
normalizedDevice = processNormalizedBridgeDevice(normalizedDevice);
|
|
3310
|
+
}
|
|
3311
|
+
}
|
|
3253
3312
|
store.simulatedDevices[normalizedDevice.id] = normalizedDevice;
|
|
3254
3313
|
return normalizedDevice;
|
|
3255
3314
|
},
|
|
@@ -3258,40 +3317,10 @@ const simulator = {
|
|
|
3258
3317
|
},
|
|
3259
3318
|
createSimulatedDevice(device) {
|
|
3260
3319
|
ensureSimulatorMethodsAreInjected();
|
|
3261
|
-
|
|
3320
|
+
let normalizedDevice = normalizeSimulatedDevice(device);
|
|
3262
3321
|
if (normalizedDevice) {
|
|
3263
3322
|
if (normalizedDevice?.type === "bridge" && normalizedDevice?.simulatorData?.sensors) {
|
|
3264
|
-
|
|
3265
|
-
for (const key of keys) {
|
|
3266
|
-
const sensor = normalizedDevice.simulatorData.sensors[key];
|
|
3267
|
-
const sensorIdInBinary = bridgeTools.hexToDecimalArray(sensor.sensorId).reverse();
|
|
3268
|
-
const pressureTemperature = getRawPressureandTemperatureValue(
|
|
3269
|
-
sensor.pressure.bar,
|
|
3270
|
-
sensor.pressure.meas,
|
|
3271
|
-
sensor.temperature.celsius
|
|
3272
|
-
);
|
|
3273
|
-
const responseHeader = [16, 1, 12, 253];
|
|
3274
|
-
const rssiByte = 255;
|
|
3275
|
-
const sensorStatus = sensor.sensorStatus;
|
|
3276
|
-
const eceStatusByte = calculateEceStatusByte(
|
|
3277
|
-
key,
|
|
3278
|
-
normalizedDevice.simulatorData,
|
|
3279
|
-
normalizedDevice.advertisingData
|
|
3280
|
-
);
|
|
3281
|
-
const signatureBytes = [255, 255, 255, 255];
|
|
3282
|
-
sensor.byteReading = [
|
|
3283
|
-
...responseHeader,
|
|
3284
|
-
25,
|
|
3285
|
-
...sensorIdInBinary,
|
|
3286
|
-
...pressureTemperature,
|
|
3287
|
-
rssiByte,
|
|
3288
|
-
sensorStatus,
|
|
3289
|
-
eceStatusByte,
|
|
3290
|
-
40,
|
|
3291
|
-
...signatureBytes
|
|
3292
|
-
];
|
|
3293
|
-
sensor.eceStatus = eceStatusByte;
|
|
3294
|
-
}
|
|
3323
|
+
normalizedDevice = processNormalizedBridgeDevice(normalizedDevice);
|
|
3295
3324
|
}
|
|
3296
3325
|
}
|
|
3297
3326
|
return normalizedDevice;
|
|
@@ -3350,12 +3379,12 @@ function getRawPressureandTemperatureValue(barPressure, measPressure, measuredTe
|
|
|
3350
3379
|
const ambientTemperature = 20;
|
|
3351
3380
|
const rawTemperature = 40 + measuredTemperature;
|
|
3352
3381
|
if (measPressure !== null) {
|
|
3353
|
-
return
|
|
3382
|
+
return { rawPressure: Math.round((measPressure + 1) * 19.753086), rawTemperature };
|
|
3354
3383
|
}
|
|
3355
3384
|
const rawPressure = Math.round(
|
|
3356
3385
|
(barPressure + 1) * (273 + measuredTemperature) / (273 + ambientTemperature) * 19.753086
|
|
3357
3386
|
);
|
|
3358
|
-
return
|
|
3387
|
+
return { rawPressure, rawTemperature };
|
|
3359
3388
|
}
|
|
3360
3389
|
function ensureSimulatorMethodsAreInjected() {
|
|
3361
3390
|
if (areSimulatorMethodsInjected) return;
|
|
@@ -3407,6 +3436,39 @@ function ensureSimulatorMethodsAreInjected() {
|
|
|
3407
3436
|
}
|
|
3408
3437
|
}
|
|
3409
3438
|
}
|
|
3439
|
+
function processNormalizedBridgeDevice(device) {
|
|
3440
|
+
const keys = Object.keys(device.simulatorData.sensors);
|
|
3441
|
+
for (const key of keys) {
|
|
3442
|
+
const sensor = device.simulatorData.sensors[key];
|
|
3443
|
+
const sensorIdInBinary = bridgeTools.hexToDecimalArray(sensor.sensorId).reverse();
|
|
3444
|
+
const { rawPressure, rawTemperature } = getRawPressureandTemperatureValue(
|
|
3445
|
+
sensor.pressure.bar,
|
|
3446
|
+
sensor.pressure.meas,
|
|
3447
|
+
sensor.temperature.celsius
|
|
3448
|
+
);
|
|
3449
|
+
sensor.pressure.raw = rawPressure;
|
|
3450
|
+
sensor.temperature.raw = rawTemperature;
|
|
3451
|
+
const responseHeader = [16, 1, 12, 253];
|
|
3452
|
+
const rssiByte = 255;
|
|
3453
|
+
const sensorStatus = sensor.sensorStatus;
|
|
3454
|
+
const eceStatusByte = calculateEceStatusByte(key, device.simulatorData, device.advertisingData);
|
|
3455
|
+
const signatureBytes = [255, 255, 255, 255];
|
|
3456
|
+
sensor.byteReading = [
|
|
3457
|
+
...responseHeader,
|
|
3458
|
+
25,
|
|
3459
|
+
...sensorIdInBinary,
|
|
3460
|
+
rawPressure,
|
|
3461
|
+
rawTemperature,
|
|
3462
|
+
rssiByte,
|
|
3463
|
+
sensorStatus,
|
|
3464
|
+
eceStatusByte,
|
|
3465
|
+
40,
|
|
3466
|
+
...signatureBytes
|
|
3467
|
+
];
|
|
3468
|
+
sensor.eceStatus = eceStatusByte;
|
|
3469
|
+
}
|
|
3470
|
+
return device;
|
|
3471
|
+
}
|
|
3410
3472
|
|
|
3411
3473
|
class BridgeTcVehicleAxle {
|
|
3412
3474
|
targetPressure;
|
package/dist/index.mjs
CHANGED
|
@@ -2900,6 +2900,22 @@ const bridgeSimulator = {
|
|
|
2900
2900
|
async setVehicle(deviceId, vehicle) {
|
|
2901
2901
|
const bridge = getSimulatedBridge(deviceId);
|
|
2902
2902
|
bridge.vin = vehicle.vin ?? bridge.vin;
|
|
2903
|
+
for (const tcTyre of vehicle.tcTyres) {
|
|
2904
|
+
if (tcTyre.tcTpmsSensor?.id && tcTyre.mountedOn?.positionId) {
|
|
2905
|
+
const currentSensor = bridge.simulatorData.sensors[tcTyre.mountedOn.positionId];
|
|
2906
|
+
if (currentSensor?.sensorId === tcTyre.tcTpmsSensor.id) {
|
|
2907
|
+
continue;
|
|
2908
|
+
}
|
|
2909
|
+
const tyreAxle = bridge.simulatorData.vehicle.axles[Math.floor(tcTyre.mountedOn.positionId / 100) - 1];
|
|
2910
|
+
if (!tyreAxle) continue;
|
|
2911
|
+
const sensorIdInBinary = bridgeTools.hexToDecimalArray(tcTyre.tcTpmsSensor.id).reverse();
|
|
2912
|
+
bridge.simulatorData.sensors[tcTyre.mountedOn.positionId] = createSensorData(
|
|
2913
|
+
tyreAxle,
|
|
2914
|
+
tcTyre.tcTpmsSensor.id,
|
|
2915
|
+
sensorIdInBinary
|
|
2916
|
+
);
|
|
2917
|
+
}
|
|
2918
|
+
}
|
|
2903
2919
|
bridge.simulatorData.vehicle = vehicle;
|
|
2904
2920
|
},
|
|
2905
2921
|
async getConfiguration(deviceId) {
|
|
@@ -3155,6 +3171,39 @@ function getSimulatedBridgeTemplate() {
|
|
|
3155
3171
|
}
|
|
3156
3172
|
};
|
|
3157
3173
|
}
|
|
3174
|
+
function createSensorData(tyreAxle, sensorId, sensorIdInBinary) {
|
|
3175
|
+
return {
|
|
3176
|
+
date: Date.now(),
|
|
3177
|
+
eceStatus: 0,
|
|
3178
|
+
sensorId,
|
|
3179
|
+
sensorStatus: 0,
|
|
3180
|
+
pressure: {
|
|
3181
|
+
bar: tyreAxle.targetPressure ?? 0,
|
|
3182
|
+
meas: tyreAxle.targetPressure ?? 0,
|
|
3183
|
+
raw: (tyreAxle.targetPressure ?? 0) * 19.753086
|
|
3184
|
+
},
|
|
3185
|
+
pressureIssue: void 0,
|
|
3186
|
+
temperature: { amb: 20, celsius: 24, raw: 64 },
|
|
3187
|
+
byteReading: [
|
|
3188
|
+
16,
|
|
3189
|
+
1,
|
|
3190
|
+
12,
|
|
3191
|
+
253,
|
|
3192
|
+
25,
|
|
3193
|
+
...sensorIdInBinary,
|
|
3194
|
+
tyreAxle.targetPressure ? tyreAxle.targetPressure * 19.753086 : 0,
|
|
3195
|
+
64,
|
|
3196
|
+
255,
|
|
3197
|
+
0,
|
|
3198
|
+
0,
|
|
3199
|
+
40,
|
|
3200
|
+
255,
|
|
3201
|
+
255,
|
|
3202
|
+
255,
|
|
3203
|
+
255
|
|
3204
|
+
]
|
|
3205
|
+
};
|
|
3206
|
+
}
|
|
3158
3207
|
|
|
3159
3208
|
const flexiGaugeTpmsSimulator = {
|
|
3160
3209
|
createSimulatedDevice(initialData) {
|
|
@@ -3234,7 +3283,12 @@ const simulator = {
|
|
|
3234
3283
|
const simulatedDevices = {};
|
|
3235
3284
|
for (const key in devices) {
|
|
3236
3285
|
const device = devices[key];
|
|
3237
|
-
|
|
3286
|
+
let normalizedDevice = normalizeSimulatedDevice(device);
|
|
3287
|
+
if (normalizedDevice) {
|
|
3288
|
+
if (normalizedDevice?.type === "bridge" && normalizedDevice?.simulatorData?.sensors) {
|
|
3289
|
+
normalizedDevice = processNormalizedBridgeDevice(normalizedDevice);
|
|
3290
|
+
}
|
|
3291
|
+
}
|
|
3238
3292
|
if (normalizedDevice) simulatedDevices[normalizedDevice.id] = normalizedDevice;
|
|
3239
3293
|
}
|
|
3240
3294
|
store.simulatedDevices = simulatedDevices;
|
|
@@ -3242,7 +3296,12 @@ const simulator = {
|
|
|
3242
3296
|
},
|
|
3243
3297
|
putSimulatedDevice(device) {
|
|
3244
3298
|
ensureSimulatorMethodsAreInjected();
|
|
3245
|
-
|
|
3299
|
+
let normalizedDevice = this.createSimulatedDevice(device);
|
|
3300
|
+
if (normalizedDevice) {
|
|
3301
|
+
if (normalizedDevice?.type === "bridge" && normalizedDevice?.simulatorData?.sensors) {
|
|
3302
|
+
normalizedDevice = processNormalizedBridgeDevice(normalizedDevice);
|
|
3303
|
+
}
|
|
3304
|
+
}
|
|
3246
3305
|
store.simulatedDevices[normalizedDevice.id] = normalizedDevice;
|
|
3247
3306
|
return normalizedDevice;
|
|
3248
3307
|
},
|
|
@@ -3251,40 +3310,10 @@ const simulator = {
|
|
|
3251
3310
|
},
|
|
3252
3311
|
createSimulatedDevice(device) {
|
|
3253
3312
|
ensureSimulatorMethodsAreInjected();
|
|
3254
|
-
|
|
3313
|
+
let normalizedDevice = normalizeSimulatedDevice(device);
|
|
3255
3314
|
if (normalizedDevice) {
|
|
3256
3315
|
if (normalizedDevice?.type === "bridge" && normalizedDevice?.simulatorData?.sensors) {
|
|
3257
|
-
|
|
3258
|
-
for (const key of keys) {
|
|
3259
|
-
const sensor = normalizedDevice.simulatorData.sensors[key];
|
|
3260
|
-
const sensorIdInBinary = bridgeTools.hexToDecimalArray(sensor.sensorId).reverse();
|
|
3261
|
-
const pressureTemperature = getRawPressureandTemperatureValue(
|
|
3262
|
-
sensor.pressure.bar,
|
|
3263
|
-
sensor.pressure.meas,
|
|
3264
|
-
sensor.temperature.celsius
|
|
3265
|
-
);
|
|
3266
|
-
const responseHeader = [16, 1, 12, 253];
|
|
3267
|
-
const rssiByte = 255;
|
|
3268
|
-
const sensorStatus = sensor.sensorStatus;
|
|
3269
|
-
const eceStatusByte = calculateEceStatusByte(
|
|
3270
|
-
key,
|
|
3271
|
-
normalizedDevice.simulatorData,
|
|
3272
|
-
normalizedDevice.advertisingData
|
|
3273
|
-
);
|
|
3274
|
-
const signatureBytes = [255, 255, 255, 255];
|
|
3275
|
-
sensor.byteReading = [
|
|
3276
|
-
...responseHeader,
|
|
3277
|
-
25,
|
|
3278
|
-
...sensorIdInBinary,
|
|
3279
|
-
...pressureTemperature,
|
|
3280
|
-
rssiByte,
|
|
3281
|
-
sensorStatus,
|
|
3282
|
-
eceStatusByte,
|
|
3283
|
-
40,
|
|
3284
|
-
...signatureBytes
|
|
3285
|
-
];
|
|
3286
|
-
sensor.eceStatus = eceStatusByte;
|
|
3287
|
-
}
|
|
3316
|
+
normalizedDevice = processNormalizedBridgeDevice(normalizedDevice);
|
|
3288
3317
|
}
|
|
3289
3318
|
}
|
|
3290
3319
|
return normalizedDevice;
|
|
@@ -3343,12 +3372,12 @@ function getRawPressureandTemperatureValue(barPressure, measPressure, measuredTe
|
|
|
3343
3372
|
const ambientTemperature = 20;
|
|
3344
3373
|
const rawTemperature = 40 + measuredTemperature;
|
|
3345
3374
|
if (measPressure !== null) {
|
|
3346
|
-
return
|
|
3375
|
+
return { rawPressure: Math.round((measPressure + 1) * 19.753086), rawTemperature };
|
|
3347
3376
|
}
|
|
3348
3377
|
const rawPressure = Math.round(
|
|
3349
3378
|
(barPressure + 1) * (273 + measuredTemperature) / (273 + ambientTemperature) * 19.753086
|
|
3350
3379
|
);
|
|
3351
|
-
return
|
|
3380
|
+
return { rawPressure, rawTemperature };
|
|
3352
3381
|
}
|
|
3353
3382
|
function ensureSimulatorMethodsAreInjected() {
|
|
3354
3383
|
if (areSimulatorMethodsInjected) return;
|
|
@@ -3400,6 +3429,39 @@ function ensureSimulatorMethodsAreInjected() {
|
|
|
3400
3429
|
}
|
|
3401
3430
|
}
|
|
3402
3431
|
}
|
|
3432
|
+
function processNormalizedBridgeDevice(device) {
|
|
3433
|
+
const keys = Object.keys(device.simulatorData.sensors);
|
|
3434
|
+
for (const key of keys) {
|
|
3435
|
+
const sensor = device.simulatorData.sensors[key];
|
|
3436
|
+
const sensorIdInBinary = bridgeTools.hexToDecimalArray(sensor.sensorId).reverse();
|
|
3437
|
+
const { rawPressure, rawTemperature } = getRawPressureandTemperatureValue(
|
|
3438
|
+
sensor.pressure.bar,
|
|
3439
|
+
sensor.pressure.meas,
|
|
3440
|
+
sensor.temperature.celsius
|
|
3441
|
+
);
|
|
3442
|
+
sensor.pressure.raw = rawPressure;
|
|
3443
|
+
sensor.temperature.raw = rawTemperature;
|
|
3444
|
+
const responseHeader = [16, 1, 12, 253];
|
|
3445
|
+
const rssiByte = 255;
|
|
3446
|
+
const sensorStatus = sensor.sensorStatus;
|
|
3447
|
+
const eceStatusByte = calculateEceStatusByte(key, device.simulatorData, device.advertisingData);
|
|
3448
|
+
const signatureBytes = [255, 255, 255, 255];
|
|
3449
|
+
sensor.byteReading = [
|
|
3450
|
+
...responseHeader,
|
|
3451
|
+
25,
|
|
3452
|
+
...sensorIdInBinary,
|
|
3453
|
+
rawPressure,
|
|
3454
|
+
rawTemperature,
|
|
3455
|
+
rssiByte,
|
|
3456
|
+
sensorStatus,
|
|
3457
|
+
eceStatusByte,
|
|
3458
|
+
40,
|
|
3459
|
+
...signatureBytes
|
|
3460
|
+
];
|
|
3461
|
+
sensor.eceStatus = eceStatusByte;
|
|
3462
|
+
}
|
|
3463
|
+
return device;
|
|
3464
|
+
}
|
|
3403
3465
|
|
|
3404
3466
|
class BridgeTcVehicleAxle {
|
|
3405
3467
|
targetPressure;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tirecheck-device-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.02",
|
|
4
4
|
"description": "SDK for working with various devices produced by Tirecheck via Bluetooth (CAN Bridge, Routers, Sensors, FlexiGauge, PressureStick, etc)",
|
|
5
5
|
"author": "Leonid Buneev <leonid.buneev@tirecheck.com>",
|
|
6
6
|
"license": "ISC",
|