truckcord-client 1.0.13 → 1.0.16
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/detectors/index.d.ts +0 -1
- package/dist/detectors/index.d.ts.map +1 -1
- package/dist/detectors/index.js +1 -21
- package/dist/detectors/index.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -58
- package/dist/index.js.map +1 -1
- package/dist/tracker/index.d.ts.map +1 -1
- package/dist/tracker/index.js +5 -1
- package/dist/tracker/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,6 +15,5 @@ export interface DetectorEvent {
|
|
|
15
15
|
}
|
|
16
16
|
export declare function detectDamageSpike(data: SCSSDKTelemetry, state: DetectorState): DetectorEvent | null;
|
|
17
17
|
export declare function detectLowFuel(data: SCSSDKTelemetry, state: DetectorState): DetectorEvent | null;
|
|
18
|
-
export declare function detectSpeeding(data: SCSSDKTelemetry, _speedLimit: number | null): DetectorEvent | null;
|
|
19
18
|
export {};
|
|
20
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/detectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,UAAU,aAAa;IACrB,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAMnD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IACpD,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI,CAmCnG;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI,CAuB/F
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/detectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,UAAU,aAAa;IACrB,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAMnD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IACpD,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI,CAmCnG;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI,CAuB/F"}
|
package/dist/detectors/index.js
CHANGED
|
@@ -20,7 +20,7 @@ export function detectDamageSpike(data, state) {
|
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
22
|
logger.warn({ damageDiff, timeDiff }, 'Damage spike detected');
|
|
23
|
-
state.lastDamageCheck = { time:
|
|
23
|
+
state.lastDamageCheck = { time: now, totalDamage };
|
|
24
24
|
const severity = damageDiff >= 20 ? 'critical' : damageDiff >= 10 ? 'high' : 'medium';
|
|
25
25
|
return {
|
|
26
26
|
type: 'accident',
|
|
@@ -58,24 +58,4 @@ export function detectLowFuel(data, state) {
|
|
|
58
58
|
}
|
|
59
59
|
return null;
|
|
60
60
|
}
|
|
61
|
-
export function detectSpeeding(data, _speedLimit) {
|
|
62
|
-
if (!data.speedLimit || data.speedLimit <= 0)
|
|
63
|
-
return null;
|
|
64
|
-
const speedKmh = data.speed * 3.6;
|
|
65
|
-
const limitKmh = data.speedLimit * 3.6;
|
|
66
|
-
if (speedKmh > limitKmh * 1.2 && speedKmh > 30) {
|
|
67
|
-
const overPercent = Math.round(((speedKmh - limitKmh) / limitKmh) * 100);
|
|
68
|
-
const severity = overPercent > 50 ? 'high' : overPercent > 30 ? 'medium' : 'low';
|
|
69
|
-
return {
|
|
70
|
-
type: 'speeding',
|
|
71
|
-
severity,
|
|
72
|
-
details: {
|
|
73
|
-
speedKmh: Math.round(speedKmh),
|
|
74
|
-
limitKmh: Math.round(limitKmh),
|
|
75
|
-
overPercent,
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
61
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detectors/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAQtC,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE,KAAK;QACtB,YAAY,EAAE,CAAC;KAChB,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAAC,IAAqB,EAAE,KAAoB;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;IAClH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QAC3E,MAAM,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;QAElD,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,IAAI,sBAAsB,EAAE,CAAC;YAC7D,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,8CAA8C,CAAC,CAAC;gBAC5E,KAAK,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC;YAE/D,KAAK,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detectors/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuRrE"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { logger } from './logger.js';
|
|
2
2
|
import { createTelemetry } from './telemetry/index.js';
|
|
3
3
|
import { SpeedTracker } from './tracker/index.js';
|
|
4
|
-
import { createDetectorState, detectDamageSpike, detectLowFuel
|
|
4
|
+
import { createDetectorState, detectDamageSpike, detectLowFuel } from './detectors/index.js';
|
|
5
5
|
import { WebSocketClient } from './ws/index.js';
|
|
6
6
|
import { TELEMETRY_INTERVAL_MS } from './constants.js';
|
|
7
7
|
import { calcTotalTruckDamage, calcFuelPercent } from './utils.js';
|
|
@@ -28,9 +28,7 @@ export async function startClient(config) {
|
|
|
28
28
|
let isJobInProgress = false;
|
|
29
29
|
let ets2Connected = false;
|
|
30
30
|
let lastTelemetrySend = 0;
|
|
31
|
-
let lastSpeedingAlert = 0;
|
|
32
31
|
let lastBlockedLog = 0;
|
|
33
|
-
let lastJobChangeMs = 0;
|
|
34
32
|
let statusInterval = null;
|
|
35
33
|
const tracker = new SpeedTracker();
|
|
36
34
|
const detectorState = createDetectorState();
|
|
@@ -56,21 +54,32 @@ export async function startClient(config) {
|
|
|
56
54
|
const h = hours % 24;
|
|
57
55
|
return `Day ${days + 1} - ${String(h).padStart(2, '0')}:${String(mins).padStart(2, '0')}`;
|
|
58
56
|
}
|
|
57
|
+
function getTruckInfo() {
|
|
58
|
+
const data = telemetry.getData();
|
|
59
|
+
return {
|
|
60
|
+
truck_brand: data?.truckBrand ?? '',
|
|
61
|
+
truck_name: data?.truckName ?? '',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
59
64
|
ws.connect();
|
|
60
65
|
const telemetry = await createTelemetry();
|
|
61
66
|
telemetry.on('connected', () => {
|
|
62
67
|
ets2Connected = true;
|
|
68
|
+
detectorState.lastDamageCheck = null;
|
|
63
69
|
});
|
|
64
70
|
telemetry.on('disconnected', () => {
|
|
65
71
|
ets2Connected = false;
|
|
66
72
|
});
|
|
67
73
|
telemetry.on('job-started', (event) => {
|
|
74
|
+
if (isJobInProgress)
|
|
75
|
+
return;
|
|
68
76
|
logger.info('Job started');
|
|
69
77
|
activeJobId = crypto.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
70
78
|
isJobInProgress = true;
|
|
71
79
|
tracker.reset();
|
|
72
80
|
const startTimeReal = new Date().toISOString();
|
|
73
81
|
const timeAbs = telemetry.data?.current?.timeAbs ?? 0;
|
|
82
|
+
const truck = getTruckInfo();
|
|
74
83
|
send('job_started', {
|
|
75
84
|
job_id: activeJobId,
|
|
76
85
|
source_city: event.citySrc ?? '',
|
|
@@ -79,6 +88,8 @@ export async function startClient(config) {
|
|
|
79
88
|
destination_company: event.compDst ?? '',
|
|
80
89
|
cargo_name: event.cargo ?? '',
|
|
81
90
|
cargo_mass: event.cargoMass ?? 0,
|
|
91
|
+
truck_brand: truck.truck_brand,
|
|
92
|
+
truck_name: truck.truck_name,
|
|
82
93
|
start_time_real: startTimeReal,
|
|
83
94
|
start_time_game: gameMinutesToISO(timeAbs),
|
|
84
95
|
});
|
|
@@ -90,8 +101,12 @@ export async function startClient(config) {
|
|
|
90
101
|
const endTimeReal = new Date().toISOString();
|
|
91
102
|
const timeAbs = telemetry.data?.current?.timeAbs ?? 0;
|
|
92
103
|
const data = telemetry.getData();
|
|
93
|
-
const
|
|
104
|
+
const rawProfit = event.jobDeliveredRevenue ?? 0n;
|
|
105
|
+
const profit = rawProfit > BigInt(Number.MAX_SAFE_INTEGER)
|
|
106
|
+
? (logger.warn({ profit: rawProfit }, 'Profit exceeds safe integer, truncating'), Number(rawProfit / 100n))
|
|
107
|
+
: Number(rawProfit);
|
|
94
108
|
const cargoDamage = (event.jobDeliveredCargoDamage ?? 0) * 100;
|
|
109
|
+
const truck = getTruckInfo();
|
|
95
110
|
send('job_completed', {
|
|
96
111
|
job_id: activeJobId,
|
|
97
112
|
profit,
|
|
@@ -107,32 +122,42 @@ export async function startClient(config) {
|
|
|
107
122
|
}),
|
|
108
123
|
cargo_damage: cargoDamage,
|
|
109
124
|
fines_count: 0,
|
|
125
|
+
truck_brand: truck.truck_brand,
|
|
126
|
+
truck_name: truck.truck_name,
|
|
110
127
|
end_time_real: endTimeReal,
|
|
111
128
|
end_time_game: gameMinutesToISO(timeAbs),
|
|
112
129
|
});
|
|
113
130
|
activeJobId = null;
|
|
114
131
|
isJobInProgress = false;
|
|
115
132
|
});
|
|
116
|
-
telemetry.on('job-cancelled', (
|
|
133
|
+
telemetry.on('job-cancelled', (event) => {
|
|
117
134
|
logger.info('Job cancelled');
|
|
118
135
|
if (!activeJobId)
|
|
119
136
|
return;
|
|
137
|
+
const truck = getTruckInfo();
|
|
120
138
|
send('job_cancelled', {
|
|
121
139
|
job_id: activeJobId,
|
|
122
|
-
penalty: Number(
|
|
140
|
+
penalty: Number(event.jobCancelledPenalty ?? 0n),
|
|
141
|
+
truck_brand: truck.truck_brand,
|
|
142
|
+
truck_name: truck.truck_name,
|
|
123
143
|
});
|
|
124
144
|
activeJobId = null;
|
|
125
145
|
isJobInProgress = false;
|
|
126
146
|
});
|
|
127
147
|
telemetry.on('fine', (event) => {
|
|
128
148
|
logger.info({ event }, 'Fine received');
|
|
149
|
+
const rawFine = event.fineAmount ?? 0n;
|
|
150
|
+
const amountEuro = rawFine > BigInt(Number.MAX_SAFE_INTEGER) ? Number(rawFine / 100n) : Number(rawFine);
|
|
151
|
+
const truck = getTruckInfo();
|
|
129
152
|
send('incident', {
|
|
130
153
|
type: 'fine',
|
|
131
154
|
severity: 'low',
|
|
132
155
|
details: {
|
|
133
|
-
offence: event.fineOffence ?? 'Unknown',
|
|
134
|
-
amountEuro
|
|
156
|
+
offence: (event.fineOffence ?? 'Unknown').replace(/_/g, ' '),
|
|
157
|
+
amountEuro,
|
|
135
158
|
},
|
|
159
|
+
truck_brand: truck.truck_brand,
|
|
160
|
+
truck_name: truck.truck_name,
|
|
136
161
|
});
|
|
137
162
|
});
|
|
138
163
|
telemetryInterval = setInterval(() => {
|
|
@@ -154,6 +179,7 @@ export async function startClient(config) {
|
|
|
154
179
|
lastTelemetrySend = now;
|
|
155
180
|
send('telemetry', {
|
|
156
181
|
speed: Math.round(speedKmh * 10) / 10,
|
|
182
|
+
speed_limit: data.speedLimit ? Math.round(data.speedLimit * 3.6) : 0,
|
|
157
183
|
truck_damage: calcTotalTruckDamage({
|
|
158
184
|
engine: data.wearEngine,
|
|
159
185
|
transmission: data.wearTransmission,
|
|
@@ -166,63 +192,17 @@ export async function startClient(config) {
|
|
|
166
192
|
total_distance: tracker.getTotalDistance(),
|
|
167
193
|
odometer: data.truckOdometer,
|
|
168
194
|
is_job_active: isJobInProgress,
|
|
195
|
+
truck_brand: data.truckBrand ?? '',
|
|
196
|
+
truck_name: data.truckName ?? '',
|
|
169
197
|
});
|
|
170
198
|
}
|
|
171
199
|
const damageSpike = detectDamageSpike(data, detectorState);
|
|
172
200
|
if (damageSpike) {
|
|
173
|
-
send('incident', damageSpike);
|
|
201
|
+
send('incident', { ...damageSpike, truck_brand: data.truckBrand ?? '', truck_name: data.truckName ?? '' });
|
|
174
202
|
}
|
|
175
203
|
const lowFuel = detectLowFuel(data, detectorState);
|
|
176
204
|
if (lowFuel) {
|
|
177
|
-
send('incident', lowFuel);
|
|
178
|
-
}
|
|
179
|
-
if (now - lastSpeedingAlert >= 30000) {
|
|
180
|
-
const speeding = detectSpeeding(data, null);
|
|
181
|
-
if (speeding) {
|
|
182
|
-
lastSpeedingAlert = now;
|
|
183
|
-
send('incident', speeding);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
const hasJob = data.isCargoLoaded === true;
|
|
187
|
-
if (hasJob && !isJobInProgress && now - lastJobChangeMs > 3000) {
|
|
188
|
-
isJobInProgress = true;
|
|
189
|
-
activeJobId = crypto.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
190
|
-
tracker.reset();
|
|
191
|
-
lastJobChangeMs = now;
|
|
192
|
-
send('job_started', {
|
|
193
|
-
job_id: activeJobId,
|
|
194
|
-
source_city: data.citySrc ?? '',
|
|
195
|
-
source_company: data.compSrc ?? '',
|
|
196
|
-
destination_city: data.cityDst ?? '',
|
|
197
|
-
destination_company: data.compDst ?? '',
|
|
198
|
-
cargo_name: data.cargo ?? '',
|
|
199
|
-
cargo_mass: data.cargoMass ?? 0,
|
|
200
|
-
start_time_real: new Date().toISOString(),
|
|
201
|
-
start_time_game: gameMinutesToISO(data.timeAbs ?? 0),
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
else if (!hasJob && isJobInProgress && now - lastJobChangeMs > 3000) {
|
|
205
|
-
lastJobChangeMs = now;
|
|
206
|
-
send('job_completed', {
|
|
207
|
-
job_id: activeJobId ?? '',
|
|
208
|
-
profit: 0,
|
|
209
|
-
max_speed: tracker.getMaxSpeed(),
|
|
210
|
-
avg_speed: tracker.getAverageSpeed(),
|
|
211
|
-
total_distance: tracker.getTotalDistance(),
|
|
212
|
-
truck_damage: calcTotalTruckDamage({
|
|
213
|
-
engine: data.wearEngine,
|
|
214
|
-
transmission: data.wearTransmission,
|
|
215
|
-
cabin: data.wearCabin,
|
|
216
|
-
chassis: data.wearChassis,
|
|
217
|
-
wheels: data.wearWheels,
|
|
218
|
-
}),
|
|
219
|
-
cargo_damage: data.cargoDamage * 100,
|
|
220
|
-
fines_count: 0,
|
|
221
|
-
end_time_real: new Date().toISOString(),
|
|
222
|
-
end_time_game: gameMinutesToISO(data.timeAbs ?? 0),
|
|
223
|
-
});
|
|
224
|
-
isJobInProgress = false;
|
|
225
|
-
activeJobId = null;
|
|
205
|
+
send('incident', { ...lowFuel, truck_brand: data.truckBrand ?? '', truck_name: data.truckName ?? '' });
|
|
226
206
|
}
|
|
227
207
|
}, TELEMETRY_INTERVAL_MS);
|
|
228
208
|
statusInterval = setInterval(() => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tracker/index.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,SAAS,CAAuB;IAExC,KAAK,IAAI,IAAI;IAQb,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tracker/index.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,SAAS,CAAuB;IAExC,KAAK,IAAI,IAAI;IAQb,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IA4BlD,WAAW,IAAI,MAAM;IAIrB,eAAe,IAAI,MAAM;IAMzB,gBAAgB,IAAI,MAAM;IAI1B,YAAY,IAAI,MAAM;CAIvB"}
|
package/dist/tracker/index.js
CHANGED
|
@@ -9,13 +9,17 @@ export class SpeedTracker {
|
|
|
9
9
|
this.maxSpeed = 0;
|
|
10
10
|
this.totalDistance = 0;
|
|
11
11
|
this.lastDistance = 0;
|
|
12
|
-
this.startTime =
|
|
12
|
+
this.startTime = null;
|
|
13
13
|
}
|
|
14
14
|
update(speedKmh, odometerKm) {
|
|
15
15
|
const now = Date.now();
|
|
16
16
|
if (this.startTime === null) {
|
|
17
17
|
this.startTime = now;
|
|
18
18
|
this.lastDistance = odometerKm;
|
|
19
|
+
this.speedSamples.push({ time: now, speed: speedKmh });
|
|
20
|
+
if (speedKmh > this.maxSpeed) {
|
|
21
|
+
this.maxSpeed = speedKmh;
|
|
22
|
+
}
|
|
19
23
|
return;
|
|
20
24
|
}
|
|
21
25
|
this.speedSamples.push({ time: now, speed: speedKmh });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracker/index.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACf,YAAY,GAAkB,EAAE,CAAC;IACjC,QAAQ,GAAG,CAAC,CAAC;IACb,aAAa,GAAG,CAAC,CAAC;IAClB,YAAY,GAAG,CAAC,CAAC;IACjB,SAAS,GAAkB,IAAI,CAAC;IAExC,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracker/index.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACf,YAAY,GAAkB,EAAE,CAAC;IACjC,QAAQ,GAAG,CAAC,CAAC;IACb,aAAa,GAAG,CAAC,CAAC;IAClB,YAAY,GAAG,CAAC,CAAC;IACjB,SAAS,GAAkB,IAAI,CAAC;IAExC,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,QAAgB,EAAE,UAAkB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEvD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;YACrD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC7C,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAChE,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACpD,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;IACrC,CAAC;CACF"}
|