@golemio/pid 5.19.1-dev.2809129013 → 5.19.1-dev.2816062138
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/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.js +10 -4
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/BasePositionsManager.d.ts +29 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/BasePositionsManager.js +74 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/BasePositionsManager.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js +9 -9
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.d.ts +24 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.js +37 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager.js +9 -9
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/trip-context/TripContextHelper.js +4 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/trip-context/TripContextHelper.js.map +1 -1
- package/docs/processing/state_position_tracking/tcp_dpp_common.md +6 -0
- package/docs/processing/trip_context/index.md +109 -40
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const DateTimeUtils_1 = require("../../../../../../helpers/DateTimeUtils");
|
|
7
7
|
const const_1 = require("../../../../../../const");
|
|
8
|
+
const VPUtils_1 = require("../../helpers/VPUtils");
|
|
8
9
|
const TripsIdGenerator_1 = __importDefault(require("./TripsIdGenerator"));
|
|
9
10
|
class PositionsMapper {
|
|
10
11
|
static mapCommonRunToDto(runMessage, isCurrent, gtfsTrip, runInput) {
|
|
@@ -23,7 +24,7 @@ class PositionsMapper {
|
|
|
23
24
|
scheduled_timestamp: scheduledTimestamp,
|
|
24
25
|
state_position: const_1.StatePositionEnum.UNKNOWN,
|
|
25
26
|
state_process: const_1.StateProcessEnum.TCP_INPUT,
|
|
26
|
-
is_tracked: isCurrent && !isTerminated,
|
|
27
|
+
is_tracked: isCurrent && !isTerminated && VPUtils_1.VPUtils.hasValidCoordinates(runMessage.lat, runMessage.lng),
|
|
27
28
|
trips_id: TripsIdGenerator_1.default.generateFromCommonRun(gtfsTrip, runInput),
|
|
28
29
|
tcp_event: runMessage.events,
|
|
29
30
|
};
|
|
@@ -37,7 +38,7 @@ class PositionsMapper {
|
|
|
37
38
|
origin_timestamp: new Date(runMessage.actual_stop_timestamp_real),
|
|
38
39
|
state_position: const_1.StatePositionEnum.NOT_PUBLIC,
|
|
39
40
|
state_process: const_1.StateProcessEnum.PROCESSED,
|
|
40
|
-
is_tracked:
|
|
41
|
+
is_tracked: VPUtils_1.VPUtils.hasValidCoordinates(runMessage.lat, runMessage.lng),
|
|
41
42
|
trips_id: tripId,
|
|
42
43
|
tcp_event: runMessage.events,
|
|
43
44
|
};
|
|
@@ -46,7 +47,9 @@ class PositionsMapper {
|
|
|
46
47
|
const scheduledTimestamp = new Date(runInput.timestampScheduled);
|
|
47
48
|
const isTerminated = scheduledTimestamp >= new Date(gtfsTrip.end_timestamp);
|
|
48
49
|
const beforeTrack = scheduledTimestamp < new Date(gtfsTrip.start_timestamp);
|
|
49
|
-
const is_tracked = beforeTrack
|
|
50
|
+
const is_tracked = beforeTrack
|
|
51
|
+
? false
|
|
52
|
+
: isCurrent && !isTerminated && VPUtils_1.VPUtils.hasValidCoordinates(runInput.coordinates.lat, runInput.coordinates.lon);
|
|
50
53
|
return {
|
|
51
54
|
lat: runInput.coordinates.lat,
|
|
52
55
|
lng: runInput.coordinates.lon,
|
|
@@ -62,7 +65,10 @@ class PositionsMapper {
|
|
|
62
65
|
}
|
|
63
66
|
static mapRegionalBusRunToDto(isCurrent, gtfsTrip, runMessage) {
|
|
64
67
|
const isBeforeTrack = new Date() < new Date(gtfsTrip.start_timestamp);
|
|
65
|
-
const isTracked = isCurrent &&
|
|
68
|
+
const isTracked = isCurrent &&
|
|
69
|
+
!isBeforeTrack &&
|
|
70
|
+
!runMessage.is_terminated &&
|
|
71
|
+
VPUtils_1.VPUtils.hasValidCoordinates(runMessage.coordinates.coordinates[1], runMessage.coordinates.coordinates[0]);
|
|
66
72
|
return {
|
|
67
73
|
trips_id: TripsIdGenerator_1.default.generateFromRegionalBusRun(gtfsTrip, runMessage),
|
|
68
74
|
bearing: runMessage.bearing,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PositionsMapper.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.ts"],"names":[],"mappings":";;;;;AAAA,2EAAuD;AAMvD,mDAA8E;AAE9E,0EAAoD;AAEpD,MAAqB,eAAe;IACzB,MAAM,CAAC,iBAAiB,CAC3B,UAA2C,EAC3C,SAAkB,EAClB,QAAsB,EACtB,QAA0B;QAE1B,MAAM,kBAAkB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChG,MAAM,kBAAkB,GAAG,UAAU,CAAC,+BAA+B;YACjE,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC;YACtD,CAAC,CAAC,IAAI,CAAC;QAEX,MAAM,YAAY,GACd,UAAU,CAAC,MAAM,KAAK,oBAAY,CAAC,UAAU;YAC7C,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE1F,OAAO;YACH,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,WAAW,EAAE,6BAAa,CAAC,mBAAmB,CAAC,UAAU,CAAC,0BAA0B,CAAC;YACrF,gBAAgB,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC;YACjE,mBAAmB,EAAE,kBAAkB;YACvC,cAAc,EAAE,yBAAiB,CAAC,OAAO;YACzC,aAAa,EAAE,wBAAgB,CAAC,SAAS;YACzC,UAAU,EAAE,SAAS,IAAI,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"PositionsMapper.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,18 @@ import { IComputationTrip, ICurrentPositionProperties, IPositionToUpdate, IProce
|
|
|
8
8
|
import { PositionHandlerEnum } from "./PositionHandlerEnum";
|
|
9
9
|
import { ValidToCalculator } from "./ValidToCalculator";
|
|
10
10
|
import { IStopTime } from "../../../../ropid-gtfs/interfaces/TripModelInterfaces";
|
|
11
|
+
import { ILogger } from "@golemio/core/dist/helpers";
|
|
12
|
+
/**
|
|
13
|
+
* `fallback` non-null means give up and use it as-is; otherwise `currentPosition` is ready for
|
|
14
|
+
* getEstimatedPoint.
|
|
15
|
+
*/
|
|
16
|
+
type IResolvedTrackingPosition = {
|
|
17
|
+
fallback: null;
|
|
18
|
+
currentPosition: Feature<Point, ICurrentPositionProperties>;
|
|
19
|
+
usedStopCoordinatesFallback: boolean;
|
|
20
|
+
} | {
|
|
21
|
+
fallback: IPositionToUpdate;
|
|
22
|
+
};
|
|
11
23
|
export declare abstract class BasePositionsManager {
|
|
12
24
|
protected readonly useEndTimestamp: boolean;
|
|
13
25
|
protected readonly allowCancelState: boolean;
|
|
@@ -87,4 +99,21 @@ export declare abstract class BasePositionsManager {
|
|
|
87
99
|
protected isFreshNewVehicleInSystem(context: IVPTripsLastPositionContext, position: IVPTripsPositionAttributes, endTimestamp: Date | null): boolean;
|
|
88
100
|
protected setLastPositionTracking(position: IVPTripsPositionAttributes, context: IVPTripsLastPositionContext, positionToUpdate: IPositionToUpdate | null): void;
|
|
89
101
|
protected detectDuplicatePosition(position: IVPTripsPositionAttributes, lastPositionOriginTimestamp: number | null, positionsSource: IVPTripsPositionAttributes[]): StatePositionEnum.AFTER_TRACK | StatePositionEnum.DUPLICATE;
|
|
102
|
+
/**
|
|
103
|
+
* Invalid GPS would otherwise crash turf.point() downstream, so a known stop's coordinates are
|
|
104
|
+
* substituted when possible; when no stop match exists either, caller must use the returned
|
|
105
|
+
* `fallback` as-is instead of proceeding into getEstimatedPoint.
|
|
106
|
+
*/
|
|
107
|
+
protected resolveTrackingPosition(position: IVPTripsPositionAttributes, tripGtfsData: IComputationTrip, context: IVPTripsLastPositionContext, logger: ILogger): IResolvedTrackingPosition;
|
|
108
|
+
/**
|
|
109
|
+
* getEstimatedPoint/getClosestPoint never populate lat/lng - without this, downstream context
|
|
110
|
+
* merging would fall through to the still-invalid raw position.lat/lng.
|
|
111
|
+
*/
|
|
112
|
+
protected backfillStopCoordinatesFallback(positionToUpdate: IPositionToUpdate, currentPosition: Feature<Point, ICurrentPositionProperties>): void;
|
|
113
|
+
/**
|
|
114
|
+
* GPS loss != schedule position loss, so state/stop info carries forward instead of resetting.
|
|
115
|
+
* state_process is always PROCESSED - otherwise the row gets endlessly re-fetched and re-crashed.
|
|
116
|
+
*/
|
|
117
|
+
protected buildInvalidCoordinatesFallback(position: IVPTripsPositionAttributes, context: IVPTripsLastPositionContext, logger: ILogger): IPositionToUpdate;
|
|
90
118
|
}
|
|
119
|
+
export {};
|
|
@@ -38,8 +38,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.BasePositionsManager = void 0;
|
|
40
40
|
const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
|
|
41
|
+
const turf = __importStar(require("@turf/turf"));
|
|
41
42
|
const const_1 = require("../../../../../const");
|
|
42
43
|
const PositionHandlerEnum_1 = require("./PositionHandlerEnum");
|
|
44
|
+
const VPUtils_1 = require("./VPUtils");
|
|
43
45
|
const AnchorPointSegmenter_1 = require("./anchor-points/AnchorPointSegmenter");
|
|
44
46
|
const DateTimeUtils_1 = require("../../../../../helpers/DateTimeUtils");
|
|
45
47
|
const TripContextHelper = __importStar(require("./trip-context/TripContextHelper"));
|
|
@@ -266,6 +268,78 @@ class BasePositionsManager {
|
|
|
266
268
|
? const_1.StatePositionEnum.DUPLICATE
|
|
267
269
|
: const_1.StatePositionEnum.AFTER_TRACK;
|
|
268
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* Invalid GPS would otherwise crash turf.point() downstream, so a known stop's coordinates are
|
|
273
|
+
* substituted when possible; when no stop match exists either, caller must use the returned
|
|
274
|
+
* `fallback` as-is instead of proceeding into getEstimatedPoint.
|
|
275
|
+
*/
|
|
276
|
+
resolveTrackingPosition(position, tripGtfsData, context, logger) {
|
|
277
|
+
let positionLat = position.lat;
|
|
278
|
+
let positionLng = position.lng;
|
|
279
|
+
let usedStopCoordinatesFallback = false;
|
|
280
|
+
if (!VPUtils_1.VPUtils.hasValidCoordinates(positionLat, positionLng)) {
|
|
281
|
+
const fallbackStopCoordinates = VPUtils_1.VPUtils.findStopCoordinatesForFallback(position, tripGtfsData);
|
|
282
|
+
const lastKnownStopSequence = context.lastStopSequence ?? context.lastPositionTracking?.properties.last_stop_sequence;
|
|
283
|
+
const isFallbackStopBehindProgress = lastKnownStopSequence != null && fallbackStopCoordinates != null
|
|
284
|
+
? fallbackStopCoordinates.stopSequence < lastKnownStopSequence
|
|
285
|
+
: false;
|
|
286
|
+
if (!fallbackStopCoordinates ||
|
|
287
|
+
!VPUtils_1.VPUtils.hasValidCoordinates(fallbackStopCoordinates.lat, fallbackStopCoordinates.lng) ||
|
|
288
|
+
isFallbackStopBehindProgress) {
|
|
289
|
+
return { fallback: this.buildInvalidCoordinatesFallback(position, context, logger) };
|
|
290
|
+
}
|
|
291
|
+
positionLat = fallbackStopCoordinates.lat;
|
|
292
|
+
positionLng = fallbackStopCoordinates.lng;
|
|
293
|
+
usedStopCoordinatesFallback = true;
|
|
294
|
+
}
|
|
295
|
+
const currentPosition = turf.point([positionLng, positionLat], {
|
|
296
|
+
id: position.id,
|
|
297
|
+
origin_time: position.origin_time,
|
|
298
|
+
origin_timestamp: position.origin_timestamp,
|
|
299
|
+
scheduled_timestamp: position.scheduled_timestamp,
|
|
300
|
+
this_stop_id: position.this_stop_id,
|
|
301
|
+
tcp_event: position.tcp_event,
|
|
302
|
+
});
|
|
303
|
+
return { currentPosition, usedStopCoordinatesFallback, fallback: null };
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* getEstimatedPoint/getClosestPoint never populate lat/lng - without this, downstream context
|
|
307
|
+
* merging would fall through to the still-invalid raw position.lat/lng.
|
|
308
|
+
*/
|
|
309
|
+
backfillStopCoordinatesFallback(positionToUpdate, currentPosition) {
|
|
310
|
+
const [lng, lat] = currentPosition.geometry.coordinates;
|
|
311
|
+
positionToUpdate.lat ??= lat;
|
|
312
|
+
positionToUpdate.lng ??= lng;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* GPS loss != schedule position loss, so state/stop info carries forward instead of resetting.
|
|
316
|
+
* state_process is always PROCESSED - otherwise the row gets endlessly re-fetched and re-crashed.
|
|
317
|
+
*/
|
|
318
|
+
buildInvalidCoordinatesFallback(position, context, logger) {
|
|
319
|
+
logger.warn({
|
|
320
|
+
positionId: position.id,
|
|
321
|
+
lat: position.lat,
|
|
322
|
+
lng: position.lng,
|
|
323
|
+
}, `${this.constructor.name}: Invalid coordinates for tracked position, falling back to untracked/last-known coordinates`);
|
|
324
|
+
const lastTracking = context.lastPositionTracking?.properties;
|
|
325
|
+
// stale context would freeze stop progress at the point GPS died - the current row can be newer
|
|
326
|
+
const stopSequence = position.this_stop_sequence ?? position.last_stop_sequence ?? lastTracking?.last_stop_sequence;
|
|
327
|
+
const stopId = position.this_stop_id ?? position.last_stop_id ?? lastTracking?.last_stop_id;
|
|
328
|
+
const hasValidPositionCoordinates = VPUtils_1.VPUtils.hasValidCoordinates(position.lat, position.lng);
|
|
329
|
+
return {
|
|
330
|
+
id: position.id,
|
|
331
|
+
lat: (hasValidPositionCoordinates ? position.lat : context.lastPositionLat) ?? 0,
|
|
332
|
+
lng: (hasValidPositionCoordinates ? position.lng : context.lastPositionLng) ?? 0,
|
|
333
|
+
state_position: context.lastPositionState ?? const_1.StatePositionEnum.UNKNOWN,
|
|
334
|
+
state_process: const_1.StateProcessEnum.PROCESSED,
|
|
335
|
+
is_tracked: false,
|
|
336
|
+
...(stopSequence != null && {
|
|
337
|
+
last_stop_id: stopId,
|
|
338
|
+
last_stop_sequence: stopSequence,
|
|
339
|
+
shape_dist_traveled: lastTracking?.shape_dist_traveled,
|
|
340
|
+
}),
|
|
341
|
+
};
|
|
342
|
+
}
|
|
269
343
|
}
|
|
270
344
|
exports.BasePositionsManager = BasePositionsManager;
|
|
271
345
|
BasePositionsManager.sortByOriginTimestamp = (a, b) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasePositionsManager.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/BasePositionsManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BasePositionsManager.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/BasePositionsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,6 @@ exports.PositionsManager = void 0;
|
|
|
53
53
|
const DateTimeUtils_1 = require("../../../../../helpers/DateTimeUtils");
|
|
54
54
|
const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
|
|
55
55
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
56
|
-
const turf = __importStar(require("@turf/turf"));
|
|
57
56
|
const const_1 = require("../../../../../const");
|
|
58
57
|
const RouteTypeEnums_1 = require("../../../../../helpers/RouteTypeEnums");
|
|
59
58
|
const NotPublicVehiclesDataInterface_1 = require("../../../../../schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface");
|
|
@@ -89,15 +88,16 @@ let PositionsManager = PositionsManager_1 = class PositionsManager extends BaseP
|
|
|
89
88
|
try {
|
|
90
89
|
switch (this.setPositionUpdateHandler(position)) {
|
|
91
90
|
case PositionHandlerEnum_1.PositionHandlerEnum.TRACKING: {
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
tcp_event: position.tcp_event,
|
|
99
|
-
});
|
|
91
|
+
const resolved = this.resolveTrackingPosition(position, tripPositions.gtfsData, context, this.logger);
|
|
92
|
+
if (resolved.fallback != null) {
|
|
93
|
+
positionToUpdate = resolved.fallback;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
const { currentPosition, usedStopCoordinatesFallback } = resolved;
|
|
100
97
|
positionToUpdate = this.getEstimatedPoint(tripPositions.gtfsData, currentPosition, context, startDayTimestamp, tripPositions.gtfs_route_type);
|
|
98
|
+
if (usedStopCoordinatesFallback) {
|
|
99
|
+
this.backfillStopCoordinatesFallback(positionToUpdate, currentPosition);
|
|
100
|
+
}
|
|
101
101
|
if (positionToUpdate.state_position !== const_1.StatePositionEnum.MISMATCHED) {
|
|
102
102
|
positionToUpdate = ComputeDelayHelper_1.default.updatePositionToUpdate(context, positionToUpdate, position, gtfsRouteType);
|
|
103
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PositionsManager.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PositionsManager.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.ts"],"names":[],"mappings":"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"}
|
package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { IVPTripsPositionAttributes } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/IVPTripsPositionAttributes";
|
|
1
2
|
import { IUpdateDelayRunTripsData, IUpdateDelayTripsIdsData } from "../data-access/interfaces/TripRepositoryInterfaces";
|
|
2
3
|
import { IPositionTransformationResult } from "../interfaces/TransformationInterfaces";
|
|
3
|
-
import { TripStopsSchedule } from "../interfaces/VPInterfaces";
|
|
4
|
+
import { IComputationTrip, TripStopsSchedule } from "../interfaces/VPInterfaces";
|
|
4
5
|
export declare class VPUtils {
|
|
5
6
|
/**
|
|
6
7
|
* Set the delay computation cache to expire after 1 hour (plus 5 minutes leeway)
|
|
@@ -27,4 +28,26 @@ export declare class VPUtils {
|
|
|
27
28
|
* Get the next PXAT timestamp at which Redis keys should expire
|
|
28
29
|
*/
|
|
29
30
|
static getNextExpireTimestamp: () => number | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Guards against null/invalid GPS coords that would crash downstream turf.point().
|
|
33
|
+
* Range is deliberately broad (not a tight Czechia bbox) — module may cover other countries later.
|
|
34
|
+
*
|
|
35
|
+
* @param {number | null | undefined} lat - Latitude
|
|
36
|
+
* @param {number | null | undefined} lng - Longitude
|
|
37
|
+
*/
|
|
38
|
+
static hasValidCoordinates: (lat: number | null | undefined, lng: number | null | undefined) => boolean;
|
|
39
|
+
/**
|
|
40
|
+
* this_stop_id preferred over last_stop_id — latter already departed, more stale.
|
|
41
|
+
* Trusts only this trip's own schedule, not caller-supplied ids, to avoid mismatched stops.
|
|
42
|
+
* Returns the matched stop's own sequence too, so callers can reject a match that is behind
|
|
43
|
+
* the trip's current progress (see hasValidCoordinates callers in BasePositionsManager).
|
|
44
|
+
*
|
|
45
|
+
* @param {IVPTripsPositionAttributes} position - Input position row
|
|
46
|
+
* @param {IComputationTrip} tripGtfsData - Trip's GTFS data, including stop_times with real stop coordinates
|
|
47
|
+
*/
|
|
48
|
+
static findStopCoordinatesForFallback: (position: Pick<IVPTripsPositionAttributes, "this_stop_id" | "last_stop_id">, tripGtfsData: Pick<IComputationTrip, "stop_times">) => {
|
|
49
|
+
lat: number;
|
|
50
|
+
lng: number;
|
|
51
|
+
stopSequence: number;
|
|
52
|
+
} | null;
|
|
30
53
|
}
|
package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.js
CHANGED
|
@@ -67,4 +67,41 @@ VPUtils.getNextExpireTimestamp = () => {
|
|
|
67
67
|
}
|
|
68
68
|
return expireDateTime.valueOf();
|
|
69
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* Guards against null/invalid GPS coords that would crash downstream turf.point().
|
|
72
|
+
* Range is deliberately broad (not a tight Czechia bbox) — module may cover other countries later.
|
|
73
|
+
*
|
|
74
|
+
* @param {number | null | undefined} lat - Latitude
|
|
75
|
+
* @param {number | null | undefined} lng - Longitude
|
|
76
|
+
*/
|
|
77
|
+
VPUtils.hasValidCoordinates = (lat, lng) => {
|
|
78
|
+
if (lat === null || lng === null || lat === undefined || lng === undefined) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return Number.isFinite(lat) && Number.isFinite(lng) && lat > 0 && lat < 100 && lng > 0 && lng < 100;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* this_stop_id preferred over last_stop_id — latter already departed, more stale.
|
|
85
|
+
* Trusts only this trip's own schedule, not caller-supplied ids, to avoid mismatched stops.
|
|
86
|
+
* Returns the matched stop's own sequence too, so callers can reject a match that is behind
|
|
87
|
+
* the trip's current progress (see hasValidCoordinates callers in BasePositionsManager).
|
|
88
|
+
*
|
|
89
|
+
* @param {IVPTripsPositionAttributes} position - Input position row
|
|
90
|
+
* @param {IComputationTrip} tripGtfsData - Trip's GTFS data, including stop_times with real stop coordinates
|
|
91
|
+
*/
|
|
92
|
+
VPUtils.findStopCoordinatesForFallback = (position, tripGtfsData) => {
|
|
93
|
+
const wantedStopId = position.this_stop_id ?? position.last_stop_id;
|
|
94
|
+
if (!wantedStopId) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const matchingStopTime = tripGtfsData.stop_times.find((stopTime) => stopTime.stop.stop_id === wantedStopId);
|
|
98
|
+
if (!matchingStopTime) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
lat: matchingStopTime.stop.stop_lat,
|
|
103
|
+
lng: matchingStopTime.stop.stop_lon,
|
|
104
|
+
stopSequence: matchingStopTime.stop_sequence,
|
|
105
|
+
};
|
|
106
|
+
};
|
|
70
107
|
//# sourceMappingURL=VPUtils.js.map
|
package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VPUtils.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"VPUtils.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,6 @@ exports.RegionalBusPositionsManager = void 0;
|
|
|
50
50
|
const DateTimeUtils_1 = require("../../../../../../helpers/DateTimeUtils");
|
|
51
51
|
const VPContainerToken_1 = require("../../../../ioc/VPContainerToken");
|
|
52
52
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
53
|
-
const turf = __importStar(require("@turf/turf"));
|
|
54
53
|
const const_1 = require("../../../../../../const");
|
|
55
54
|
const PositionHandlerEnum_1 = require("../PositionHandlerEnum");
|
|
56
55
|
const ValidToCalculator_1 = require("../ValidToCalculator");
|
|
@@ -78,15 +77,16 @@ let RegionalBusPositionsManager = RegionalBusPositionsManager_1 = class Regional
|
|
|
78
77
|
try {
|
|
79
78
|
switch (this.setPositionUpdateHandler(position)) {
|
|
80
79
|
case PositionHandlerEnum_1.PositionHandlerEnum.TRACKING: {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
tcp_event: position.tcp_event,
|
|
88
|
-
});
|
|
80
|
+
const resolved = this.resolveTrackingPosition(position, tripPositions.gtfsData, context, this.logger);
|
|
81
|
+
if (resolved.fallback != null) {
|
|
82
|
+
positionToUpdate = resolved.fallback;
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
const { currentPosition, usedStopCoordinatesFallback } = resolved;
|
|
89
86
|
positionToUpdate = this.getEstimatedPoint(tripPositions.gtfsData, currentPosition, context, startDayTimestamp);
|
|
87
|
+
if (usedStopCoordinatesFallback) {
|
|
88
|
+
this.backfillStopCoordinatesFallback(positionToUpdate, currentPosition);
|
|
89
|
+
}
|
|
90
90
|
positionToUpdate = RegionalBusComputeDelayHelper_1.RegionalBusComputeDelayHelper.updatePositionToUpdate(context, positionToUpdate, position, gtfsRouteType);
|
|
91
91
|
positionToUpdate.bearing = position.bearing ?? positionToUpdate.bearing;
|
|
92
92
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionalBusPositionsManager.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2EAAuD;AACvD,uEAA8E;AAG9E,iEAAwE;
|
|
1
|
+
{"version":3,"file":"RegionalBusPositionsManager.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,7 +113,10 @@ function recordTracking(context, position, positionToUpdate) {
|
|
|
113
113
|
// Explicit literal with `?? null` per field: any field that would otherwise merge in as
|
|
114
114
|
// `undefined` now persists as `null` instead. This is an intentional, documented behavior
|
|
115
115
|
// change - `undefined` keys get dropped by `JSON.stringify`, `null` keys are kept.
|
|
116
|
-
|
|
116
|
+
//
|
|
117
|
+
// mergedPosition.lat/lng (not raw position's) - avoids re-crashing turf.point on the same
|
|
118
|
+
// invalid coordinates the caller's guard already sanitized.
|
|
119
|
+
context.lastPositionTracking = turf.point([mergedPosition.lng, mergedPosition.lat], {
|
|
117
120
|
bearing: mergedPosition.bearing ?? null,
|
|
118
121
|
shape_dist_traveled: mergedPosition.shape_dist_traveled ?? null,
|
|
119
122
|
tcp_event: mergedPosition.tcp_event ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TripContextHelper.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/trip-context/TripContextHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,sCAyBC;AAMD,kDAcC;AAMD,0CAWC;AAKD,
|
|
1
|
+
{"version":3,"file":"TripContextHelper.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/trip-context/TripContextHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,sCAyBC;AAMD,kDAcC;AAMD,0CAWC;AAKD,wCA6BC;AAMD,4DAWC;AAKD,gDAgBC;AAMD,8CAEC;AAKD,gDAIC;AAMD,sEAQC;AAMD,0DAEC;AAMD,8DAEC;AAMD,oDAMC;AAMD,sDAiBC;AAlOD,iDAAmC;AACnC,mDAA8C;AAM9C;;GAEG;AACH,SAAgB,aAAa,CAAC,MAAc;IACxC,OAAO;QACH,YAAY,EAAE;YACV,aAAa,EAAE,IAAI;YACnB,sBAAsB,EAAE,IAAI;YAC5B,kBAAkB,EAAE,IAAI;SAC3B;QACD,oBAAoB,EAAE;YAClB,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,IAAI;SACxB;QACD,iBAAiB,EAAE,IAAI;QACvB,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE,IAAI;QACrB,2BAA2B,EAAE,IAAI;QACjC,oBAAoB,EAAE,IAAI;QAC1B,oBAAoB,EAAE,IAAI;QAC1B,8BAA8B,EAAE,IAAI;QACpC,iBAAiB,EAAE,IAAI;QACvB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,MAAM;KACT,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAC/B,OAAoC,EACpC,QAAoC,EACpC,gBAAmC,EACnC,QAAiB;IAEjB,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC,EAAE,CAAC;IACrC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC;IACvC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC;IACvC,OAAO,CAAC,oBAAoB,GAAG,QAAQ,CAAC;IACxC,OAAO,CAAC,2BAA2B,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAC1E,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC;IAEnG,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAC3B,OAAoC,EACpC,KAAwB,EACxB,OAAiC;IAEjC,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,KAAK,CAAC;IAExD,IAAI,cAAc,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;QACxD,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAClC,OAAO,CAAC,uBAAuB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC1B,OAAoC,EACpC,QAAoC,EACpC,gBAA0C;IAE1C,IACI,gBAAgB,EAAE,cAAc,KAAK,yBAAiB,CAAC,OAAO;QAC9D,gBAAgB,EAAE,cAAc,KAAK,yBAAiB,CAAC,QAAQ;QAC/D,QAAQ,CAAC,cAAc,KAAK,yBAAiB,CAAC,OAAO;QACrD,QAAQ,CAAC,cAAc,KAAK,yBAAiB,CAAC,QAAQ,EACxD,CAAC;QACC,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,gBAAgB,EAAgC,CAAC;QAE1F,wFAAwF;QACxF,0FAA0F;QAC1F,mFAAmF;QACnF,EAAE;QACF,0FAA0F;QAC1F,4DAA4D;QAC5D,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE;YAChF,OAAO,EAAE,cAAc,CAAC,OAAO,IAAI,IAAI;YACvC,mBAAmB,EAAE,cAAc,CAAC,mBAAmB,IAAI,IAAI;YAC/D,SAAS,EAAE,cAAc,CAAC,SAAS,IAAI,IAAI;YAC3C,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,IAAI,IAAI;YAC7D,YAAY,EAAE,cAAc,CAAC,YAAY,IAAI,IAAI;YACjD,sBAAsB,EAAE,cAAc,CAAC,sBAAsB,IAAI,IAAI;YACrE,wBAAwB,EAAE,cAAc,CAAC,wBAAwB,IAAI,IAAI;SAC5E,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACpC,OAAoC,EACpC,QAAoC,EACpC,gBAA0C;IAE1C,IAAI,QAAQ,CAAC,cAAc,KAAK,yBAAiB,CAAC,oBAAoB,EAAE,CAAC;QACrE,OAAO,CAAC,8BAA8B,GAAG;YACrC,KAAK,EAAE,gBAAgB,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK;YAChD,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB;SACpF,CAAC;IACN,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAC9B,OAAoC,EACpC,QAAoC,EACpC,gBAA0C;IAE1C,MAAM,mBAAmB,GAAG,gBAAgB;QACxC,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,aAAa,KAAK,gBAAgB,CAAC,kBAAkB;QACnH,CAAC,CAAC,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,aAAa,KAAK,QAAQ,CAAC,kBAAkB,CAAC;IAExG,IAAI,mBAAmB,EAAE,CAAC;QACtB,OAAO,CAAC,YAAY,CAAC,aAAa,GAAG,gBAAgB;YACjD,CAAC,CAAC,gBAAgB,CAAC,kBAAmB;YACtC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAClC,OAAO,CAAC,YAAY,CAAC,sBAAsB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAClF,OAAO,CAAC,YAAY,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC1G,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,OAAoC;IAClE,OAAO,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,OAAoC;IACnE,OAAO,CAAC,oBAAoB,CAAC,aAAa,GAAG,IAAI,CAAC;IAClD,OAAO,CAAC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C,OAAO,CAAC,oBAAoB,CAAC,eAAe,GAAG,IAAI,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,SAAgB,6BAA6B,CACzC,OAAoC,EACpC,gBAA0C,EAC1C,QAAgD;IAEhD,IAAI,OAAO,CAAC,oBAAoB,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,CAAC,oBAAoB,CAAC,QAAQ,GAAG,gBAAgB,EAAE,kBAAkB,IAAI,QAAQ,EAAE,kBAAkB,IAAI,IAAI,CAAC;IACzH,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,OAAoC,EAAE,KAAgC;IAC1G,OAAO,CAAC,oBAAoB,CAAC,aAAa,GAAG,KAAsB,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,OAAoC,EAAE,KAAgC;IAC5G,OAAO,CAAC,oBAAoB,CAAC,eAAe,GAAG,KAAsB,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAChC,OAAoC,EACpC,gBAA0C,EAC1C,QAAoC;IAEpC,OAAO,CAAC,iBAAiB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAkB,CAAC;AAC9G,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACjC,OAAoC,EACpC,GAAoB,EACpB,GAAoB,EACpB,KAAa,EACb,eAAqB;IAErB,kDAAkD;IAClD,OAAO,CAAC,eAAe,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1E,OAAO,CAAC,eAAe,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAE1E,eAAe,CAAC,OAAO,EAAE,yBAAiB,CAAC,oBAAoB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3F,OAAO,CAAC,8BAA8B,GAAG;QACrC,KAAK;QACL,gBAAgB,EAAE,eAAe;KACpC,CAAC;AACN,CAAC"}
|
|
@@ -35,6 +35,12 @@
|
|
|
35
35
|
- jinak je stav `after_track`
|
|
36
36
|
- **zvláštní případ**: pokud má pozice `cis_last_stop_id = null`, stav se znovu nevyhodnocuje – pozice si zachovává poslední známý stav (zmrazení stavu); to zabraňuje nežádoucímu cyklování zpět do `untracked` pouze kvůli chybějící CIS zastávce
|
|
37
37
|
- Tracking (`tracking` je `2`)
|
|
38
|
+
- **neplatné/chybějící souřadnice** - pokud pozice nese `this_stop_id`/`last_stop_id`
|
|
39
|
+
odpovídající zastávce v GTFS trase spoje, dopočítá se poloha z této zastávky (stejný
|
|
40
|
+
pipeline jako reálné GPS, viz [trip_context/index.md](../trip_context/index.md#invalid-gps-coordinates-stop-based-fallback));
|
|
41
|
+
bez shody se stav zmrazí na posledním známém - v obou případech se pozice vždy uloží
|
|
42
|
+
jako zpracovaná (`state_process = processed`), aby se stejná chybná pozice nezacyklila
|
|
43
|
+
při dalším běhu
|
|
38
44
|
- pokud je vozidlo 200 metrů od nejblizšího bodu na trase, stav je `off_track`
|
|
39
45
|
- pokud je vozidlo v zastávce, je stav `at_stop`
|
|
40
46
|
- pokud je vozidlo mimo zastávku a zároveň vozidlo poslalo zprávu `O` mimo poslední zastávku, je stav `on_track`
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Per-trip state carried between consecutive vehicle position updates. It represents what is known
|
|
4
4
|
about a trip's last processed position - id, coordinates, state, delay bookkeeping, cancellation
|
|
5
5
|
and a small tracking snapshot. One context instance exists per `tripId` for the lifetime of the
|
|
6
|
-
trip's real-time processing.
|
|
6
|
+
trip's real-time processing. Defined in
|
|
7
|
+
`src/schema-definitions/vehicle-positions/models/interfaces/VPTripsLastPositionInterfaces.ts`.
|
|
7
8
|
|
|
8
9
|
- **Created**: `TripContextHelper.createInitial(tripId)` when a trip is seen for the first time
|
|
9
10
|
in a processing run and has no persisted context yet.
|
|
@@ -11,27 +12,40 @@ trip's real-time processing.
|
|
|
11
12
|
- **Persisted**: serialized to JSON and stored (Postgres); reloaded on the next run and merged back
|
|
12
13
|
into the working context.
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
This document covers, in order:
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
1. [Core lifecycle rules](#core-lifecycle-rules) - the write boundary and the timestamp rule that
|
|
18
|
+
apply to every context mutation.
|
|
19
|
+
2. [Field-specific contracts](#field-specific-contracts) - quirks of individual fields
|
|
20
|
+
(cancellation, the before-track-delayed seed, the date/string duality, last-stop delay
|
|
21
|
+
bookkeeping, the at-stop streak's asymmetric clear).
|
|
22
|
+
3. [Fallback behavior](#fallback-behavior) - what happens when the incoming GPS position is
|
|
23
|
+
invalid, and the lean shape used to persist tracking snapshots.
|
|
17
24
|
|
|
18
|
-
|
|
19
|
-
is the only module allowed to mutate `IVPTripsLastPositionContext` fields. Callers (`PositionsManager`,
|
|
20
|
-
`RegionalBusPositionsManager`, `ComputeDelayHelper`, delay-propagation tasks, ...) always go through one
|
|
21
|
-
of its exported functions instead of writing to the context object directly. New processing logic that
|
|
22
|
-
needs to change the context must add or reuse a function here rather than mutating the context inline.
|
|
25
|
+
## Core lifecycle rules
|
|
23
26
|
|
|
24
|
-
|
|
27
|
+
### Helper write boundary
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
only
|
|
28
|
-
|
|
29
|
+
- [`TripContextHelper.ts`](../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/trip-context/TripContextHelper.ts)
|
|
30
|
+
is the only module allowed to mutate `IVPTripsLastPositionContext` fields.
|
|
31
|
+
- Callers (`PositionsManager`, `RegionalBusPositionsManager`, `ComputeDelayHelper`,
|
|
32
|
+
delay-propagation tasks, ...) always go through one of its exported functions instead of writing
|
|
33
|
+
to the context object directly.
|
|
34
|
+
- New processing logic that needs to change the context must add or reuse a function here rather
|
|
35
|
+
than mutating the context inline.
|
|
29
36
|
|
|
30
|
-
|
|
31
|
-
(`TripContextHelper.recordPropagatedDelay`) to force a fresh `BEFORE_TRACK_DELAYED` transition and
|
|
32
|
-
timestamp even when the state did not change, since the propagated delay itself is new information.
|
|
37
|
+
### Timestamp rule (`transitionState`)
|
|
33
38
|
|
|
34
|
-
|
|
39
|
+
- `transitionState(context, state, options?)` stamps `lastPositionStateChange` (ISO string,
|
|
40
|
+
`new Date().toISOString()`) only when `state` actually differs from `context.lastPositionState`
|
|
41
|
+
- a state that repeats across consecutive positions does not re-stamp the timestamp.
|
|
42
|
+
- The one exception is `options.forceTimestamp`, used by delay propagation
|
|
43
|
+
(`TripContextHelper.recordPropagatedDelay`) to force a fresh `BEFORE_TRACK_DELAYED` transition and
|
|
44
|
+
timestamp even when the state did not change, since the propagated delay itself is new information.
|
|
45
|
+
|
|
46
|
+
## Field-specific contracts
|
|
47
|
+
|
|
48
|
+
### Cancellation: sticky vs. plain
|
|
35
49
|
|
|
36
50
|
`lastPositionCanceled` means different things depending on which manager writes it, both via the same
|
|
37
51
|
`TripContextHelper.commitValidPosition(context, position, positionToUpdate, canceled)` call:
|
|
@@ -39,32 +53,87 @@ timestamp even when the state did not change, since the propagated delay itself
|
|
|
39
53
|
- **`PositionsManager`** treats it as a sticky accumulator: once a position sets it (via
|
|
40
54
|
`lastPositionStaysCanceled`, driven by `hasTcpEventOrCancel`), later positions keep it canceled
|
|
41
55
|
even if they themselves are not canceled (`lastPositionStaysCanceled || position.is_canceled`).
|
|
42
|
-
A trip cannot un-cancel itself here.
|
|
56
|
+
- A trip cannot un-cancel itself here.
|
|
43
57
|
- **`RegionalBusPositionsManager`** passes the plain per-position `position.is_canceled` with no
|
|
44
58
|
stickiness - the flag reflects only the current position.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
`
|
|
51
|
-
`
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
opaque, already-resolved snapshot rather than something to recompute from.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
`lastPositionBeforeTrackDelayed.origin_timestamp` is typed `string | Date | null`.
|
|
59
|
-
to Postgres round-trips through `JSON.stringify`/`JSON.parse`, which
|
|
60
|
-
string - so a freshly created context in memory holds a `Date`,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
Because of this, and because `null` is a valid value distinct from "not a Date/string", consumers
|
|
64
|
-
never narrow with `=== null` (or `!== null`) alone - use `??`/`== null` so both `null` and
|
|
65
|
-
are treated consistently.
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
- Do not assume `lastPositionCanceled` is sticky across all managers; check which manager owns the trip.
|
|
60
|
+
|
|
61
|
+
### Sticky seed: `lastPositionBeforeTrackDelayed`
|
|
62
|
+
|
|
63
|
+
- `context.lastPositionBeforeTrackDelayed` stores `{ delay, origin_timestamp }` for the last
|
|
64
|
+
`BEFORE_TRACK_DELAYED` position, written by `TripContextHelper.recordBeforeTrackDelayed` and
|
|
65
|
+
`TripContextHelper.recordPropagatedDelay`.
|
|
66
|
+
- The timestamp is stored as-is (`Date` or whatever was passed in) - it is never re-derived by
|
|
67
|
+
calling `.getTime()` on an already-stored value.
|
|
68
|
+
- Treat it as an opaque, already-resolved snapshot rather than something to recompute from.
|
|
69
|
+
|
|
70
|
+
### Date/string contract on `origin_timestamp`-family fields
|
|
71
|
+
|
|
72
|
+
- `lastPositionBeforeTrackDelayed.origin_timestamp` is typed `string | Date | null`.
|
|
73
|
+
- A context persisted to Postgres round-trips through `JSON.stringify`/`JSON.parse`, which
|
|
74
|
+
serializes a `Date` to an ISO string - so a freshly created context in memory holds a `Date`,
|
|
75
|
+
while one reloaded from storage holds a `string`.
|
|
76
|
+
- Both must be handled on read.
|
|
77
|
+
- Because of this, and because `null` is a valid value distinct from "not a Date/string", consumers
|
|
78
|
+
must never narrow with `=== null` (or `!== null`) alone - use `??`/`== null` so both `null` and
|
|
79
|
+
`undefined` are treated consistently.
|
|
80
|
+
|
|
81
|
+
### Last-stop delay bookkeeping: `lastPositionLastStop`
|
|
82
|
+
|
|
83
|
+
- `context.lastPositionLastStop` holds `{ sequence, arrival_delay, departure_delay }` for the last
|
|
84
|
+
stop the trip was at.
|
|
85
|
+
- `TripContextHelper.resetLastStopDelay` clears all three fields to `null` together.
|
|
86
|
+
- `TripContextHelper.updateLastStopSequenceIfUnset` only writes `sequence` when it is currently
|
|
87
|
+
`null` - it never overwrites an already-set sequence.
|
|
88
|
+
- `TripContextHelper.setLastStopArrivalDelay`/`setLastStopDepartureDelay` are verbatim
|
|
89
|
+
pass-throughs: `undefined` must remain `undefined` (dropped by `JSON.stringify`) rather than
|
|
90
|
+
being coerced to `null`, since that would change the persisted bytes.
|
|
91
|
+
|
|
92
|
+
### Asymmetric clear: `atStopStreak`
|
|
93
|
+
|
|
94
|
+
- `context.atStopStreak` holds `{ stop_sequence, firstPositionTimestamp, firstPositionDelay }`,
|
|
95
|
+
tracking how long a trip has stayed at the same stop.
|
|
96
|
+
- `TripContextHelper.clearAtStopStreak` zeroes **only** `stop_sequence` to `null`.
|
|
97
|
+
- `firstPositionTimestamp` and `firstPositionDelay` are intentionally left untouched, persisted
|
|
98
|
+
as-is.
|
|
99
|
+
- Do not assume clearing the streak resets the whole object; check `stop_sequence` specifically
|
|
100
|
+
when deciding whether a streak is active.
|
|
101
|
+
|
|
102
|
+
## Fallback behavior
|
|
103
|
+
|
|
104
|
+
### Invalid GPS coordinates: stop-based fallback
|
|
105
|
+
|
|
106
|
+
`BasePositionsManager.resolveTrackingPosition` - guard before `lat`/`lng` feed into `turf.point`.
|
|
107
|
+
|
|
108
|
+
- Trigger: `VPUtils.hasValidCoordinates` fails (null, non-finite, outside `(0, 100)` on either axis).
|
|
109
|
+
- Step 1: `VPUtils.findStopCoordinatesForFallback` - look up `this_stop_id` (preferred) or
|
|
110
|
+
`last_stop_id` in trip's loaded GTFS `stop_times`. Covers: GPS dead, onboard stop-matching
|
|
111
|
+
(CIS/ASW) still correct.
|
|
112
|
+
- Step 2, match found: use stop's coords instead of raw GPS, build `turf` point, run normal
|
|
113
|
+
`getEstimatedPoint`/delay pipeline - real `AT_STOP`/`ON_TRACK` + delay, not frozen stale state.
|
|
114
|
+
- Step 2a: stop's own coords re-checked via `hasValidCoordinates` too - bad GTFS stop data
|
|
115
|
+
falls through to step 3, not trusted.
|
|
116
|
+
- Step 2b: match rejected (falls through to step 3) when the stop's sequence is behind the
|
|
117
|
+
trip's current progress (`context.lastStopSequence` /
|
|
118
|
+
`context.lastPositionTracking.last_stop_sequence`) - prevents `shape_dist_traveled`/
|
|
119
|
+
`last_stop_sequence` from regressing backward when a stale or mismatched stop id is echoed
|
|
120
|
+
back.
|
|
121
|
+
- Step 3, no match (no stop id, or id not in trip schedule): `buildInvalidCoordinatesFallback`.
|
|
122
|
+
- `lat`/`lng`: `position.lat`/`lng` re-checked via `hasValidCoordinates` (not plain `??`, since a
|
|
123
|
+
`NaN` from a bad upstream parse is not `null`/`undefined` and would otherwise pass through
|
|
124
|
+
unchanged); only on failure falls back to `context.lastPositionLat`/`Lng`, then `0` as last
|
|
125
|
+
resort.
|
|
126
|
+
- `state_position` from `context.lastPositionState`.
|
|
127
|
+
- `last_stop_id`/`last_stop_sequence`: current position's own fields first
|
|
128
|
+
(`this_stop_sequence ?? last_stop_sequence`), stale `context.lastPositionTracking` snapshot
|
|
129
|
+
only as last resort - avoids sticking at old sequence once GPS recovers.
|
|
130
|
+
- All branches: `state_process = PROCESSED` unconditionally. Why: pre-fix, crash on invalid
|
|
131
|
+
coords left row unprocessed - same bad row re-fetched + re-crashed worker every run (one bad
|
|
132
|
+
GPS event → hundreds of crashes/hour). Unconditional PROCESSED breaks that loop.
|
|
133
|
+
- Shared via base class by `PositionsManager` + `RegionalBusPositionsManager` - don't reimplement
|
|
134
|
+
inline in either subclass.
|
|
135
|
+
|
|
136
|
+
### Lean tracking shape: `lastPositionTracking`
|
|
68
137
|
|
|
69
138
|
`context.lastPositionTracking` is a GeoJSON `Feature<Point, IVPTripsTrackingProperties>` written by
|
|
70
139
|
`TripContextHelper.recordTracking`, only for positions in `AT_STOP` or `ON_TRACK` state.
|