Skip to content

Test SPAT Revision Counter

linda-baker edited this page Jul 15, 2024 · 6 revisions

Integration Test for SPAT Revision Counter

Inputs

A series of processed SPAT Messages. The first 2 are sent at the same time, while the rest are each separated by 1 second. The first 3 are identical, and the fourth is the same except for a changed revision number. The fifth and sixth SPAT both change different contents as well as their revision number. The seventh's contents change, but the revision number stays the same.

The third message generates the first revision counter event, as the separation of timing misaligns the signal state timing, which should have also triggered a revision count update. The last message triggers the second revision counter event, when the main body of the SPAT changes without updating the revision count.

Test Script

Spat_Revisions.csv

Output Kafka Topic

topic.CmSpatRevisionCounterEvent

Expected Output

Two SpatRevisionCounterEvent produced on the topic within 30 seconds.

Actual Output

Topic: topic.CmSpatRevisionCounterEvent

% Waiting for group rebalance
% Group grouph rebalanced (memberid rdkafka-19a51496-0d57-436a-b9aa-912e41cdc247): assigned: topic.CmSpatRevisionCounterEvents [0]
% Reached end of topic topic.CmSpatRevisionCounterEvents [0] at offset 105
{"eventGeneratedAt":1720647393676,"eventType":"SpatRevisionCounter","intersectionID":0,"roadRegulatorID":0,"previousSpat":{"schemaVersion":-1,"messageType":"SPAT","odeReceivedAt":"2024-07-11T17:17:23.184Z","originIp":"10.164.6.18","name":"N State St & E Center St","intersectionId":6311,"cti4501Conformant":false,"validationMessages":[{"message":"$.metadata.receivedMessageDetails.locationData: is missing but it is required","jsonPath":"$.metadata.receivedMessageDetails","schemaPath":"#/$defs/OdeSpatMetadata/properties/receivedMessageDetails/required"},{"message":"$.metadata.encodings: is missing but it is required","jsonPath":"$.metadata","schemaPath":"#/$defs/OdeSpatMetadata/required"},{"message":"$.metadata.recordGeneratedBy: is missing but it is required","jsonPath":"$.metadata","schemaPath":"#/$defs/OdeSpatMetadata/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].id.region: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].id","schemaPath":"#/$defs/J2735IntersectionReferenceID/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.maxEndTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"}],"revision":45,"status":{"manualControlIsEnabled":false,"stopTimeIsActivated":false,"failureFlash":false,"preemptIsActive":false,"signalPriorityIsActive":false,"fixedTimeOperation":false,"trafficDependentOperation":false,"standbyOperation":false,"failureMode":false,"off":false,"recentMAPmessageUpdate":true,"recentChangeInMAPassignedLanesIDsUsed":true,"noValidMAPisAvailableAtThisTime":false,"noValidSPATisAvailableAtThisTime":false},"utcTimeStamp":"2024-07-11T17:17:23.184Z","enabledLanes":[],"states":[{"signalGroup":1,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:53.781Z","maxEndTime":"2024-07-15T21:31:53.781Z"}}]},{"signalGroup":2,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:03.781Z","maxEndTime":"2024-07-15T21:31:03.781Z"}}]},{"signalGroup":3,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:32:13.781Z","maxEndTime":"2024-07-15T21:32:13.781Z"}}]},{"signalGroup":4,"stateTimeSpeed":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":"2024-07-15T21:30:49.581Z","maxEndTime":"2024-07-15T21:30:57.581Z"}}]},{"signalGroup":5,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:03.781Z","maxEndTime":"2024-07-15T21:31:03.781Z"}}]},{"signalGroup":6,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:33.781Z","maxEndTime":"2024-07-15T21:31:33.781Z"}}]},{"signalGroup":7,"stateTimeSpeed":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":"2024-07-15T21:30:38.481Z","maxEndTime":"2024-07-15T21:30:57.881Z"}}]},{"signalGroup":8,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:30:35.081Z"}}]}]},"newSpat":{"schemaVersion":-1,"messageType":"SPAT","odeReceivedAt":"2024-07-11T17:17:23.184Z","originIp":"10.164.6.18","name":"N State St & E Center St","intersectionId":6311,"cti4501Conformant":false,"validationMessages":[{"message":"$.metadata.receivedMessageDetails.locationData: is missing but it is required","jsonPath":"$.metadata.receivedMessageDetails","schemaPath":"#/$defs/OdeSpatMetadata/properties/receivedMessageDetails/required"},{"message":"$.metadata.encodings: is missing but it is required","jsonPath":"$.metadata","schemaPath":"#/$defs/OdeSpatMetadata/required"},{"message":"$.metadata.recordGeneratedBy: is missing but it is required","jsonPath":"$.metadata","schemaPath":"#/$defs/OdeSpatMetadata/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].id.region: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].id","schemaPath":"#/$defs/J2735IntersectionReferenceID/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.maxEndTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"}],"revision":45,"status":{"manualControlIsEnabled":false,"stopTimeIsActivated":false,"failureFlash":false,"preemptIsActive":false,"signalPriorityIsActive":false,"fixedTimeOperation":false,"trafficDependentOperation":false,"standbyOperation":false,"failureMode":false,"off":false,"recentMAPmessageUpdate":true,"recentChangeInMAPassignedLanesIDsUsed":true,"noValidMAPisAvailableAtThisTime":false,"noValidSPATisAvailableAtThisTime":false},"utcTimeStamp":"2024-07-11T17:17:23.184Z","enabledLanes":[],"states":[{"signalGroup":1,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:54.781Z","maxEndTime":"2024-07-15T21:31:54.781Z"}}]},{"signalGroup":2,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:04.781Z","maxEndTime":"2024-07-15T21:31:04.781Z"}}]},{"signalGroup":3,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:32:14.781Z","maxEndTime":"2024-07-15T21:32:14.781Z"}}]},{"signalGroup":4,"stateTimeSpeed":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":"2024-07-15T21:30:50.581Z","maxEndTime":"2024-07-15T21:30:58.581Z"}}]},{"signalGroup":5,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:04.781Z","maxEndTime":"2024-07-15T21:31:04.781Z"}}]},{"signalGroup":6,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:34.781Z","maxEndTime":"2024-07-15T21:31:34.781Z"}}]},{"signalGroup":7,"stateTimeSpeed":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":"2024-07-15T21:30:39.481Z","maxEndTime":"2024-07-15T21:30:58.881Z"}}]},{"signalGroup":8,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:30:36.081Z"}}]}]},"message":"Spat message changed without revision increment."}
% Reached end of topic topic.CmSpatRevisionCounterEvents [0] at offset 106
{"eventGeneratedAt":1720647393676,"eventType":"SpatRevisionCounter","intersectionID":0,"roadRegulatorID":0,"previousSpat":{"schemaVersion":-1,"messageType":"SPAT","odeReceivedAt":"2024-07-11T17:17:23.184Z","originIp":"10.164.6.18","name":"N State St & E Center St","intersectionId":6311,"cti4501Conformant":false,"validationMessages":[{"message":"$.metadata.receivedMessageDetails.locationData: is missing but it is required","jsonPath":"$.metadata.receivedMessageDetails","schemaPath":"#/$defs/OdeSpatMetadata/properties/receivedMessageDetails/required"},{"message":"$.metadata.encodings: is missing but it is required","jsonPath":"$.metadata","schemaPath":"#/$defs/OdeSpatMetadata/required"},{"message":"$.metadata.recordGeneratedBy: is missing but it is required","jsonPath":"$.metadata","schemaPath":"#/$defs/OdeSpatMetadata/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].id.region: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].id","schemaPath":"#/$defs/J2735IntersectionReferenceID/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.maxEndTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"}],"revision":48,"status":{"manualControlIsEnabled":false,"stopTimeIsActivated":false,"failureFlash":false,"preemptIsActive":true,"signalPriorityIsActive":false,"fixedTimeOperation":false,"trafficDependentOperation":false,"standbyOperation":false,"failureMode":false,"off":false,"recentMAPmessageUpdate":true,"recentChangeInMAPassignedLanesIDsUsed":true,"noValidMAPisAvailableAtThisTime":true,"noValidSPATisAvailableAtThisTime":false},"utcTimeStamp":"2024-07-11T17:17:23.184Z","enabledLanes":[],"states":[{"signalGroup":1,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:57.781Z","maxEndTime":"2024-07-15T21:31:57.781Z"}}]},{"signalGroup":2,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:07.781Z","maxEndTime":"2024-07-15T21:31:07.781Z"}}]},{"signalGroup":3,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:32:17.781Z","maxEndTime":"2024-07-15T21:32:17.781Z"}}]},{"signalGroup":4,"stateTimeSpeed":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":"2024-07-15T21:30:53.581Z","maxEndTime":"2024-07-15T21:31:01.581Z"}}]},{"signalGroup":5,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:07.781Z","maxEndTime":"2024-07-15T21:31:07.781Z"}}]},{"signalGroup":6,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:37.781Z","maxEndTime":"2024-07-15T21:31:37.781Z"}}]},{"signalGroup":7,"stateTimeSpeed":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":"2024-07-15T21:30:42.481Z","maxEndTime":"2024-07-15T21:31:01.881Z"}}]},{"signalGroup":8,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:30:39.081Z"}}]}]},"newSpat":{"schemaVersion":-1,"messageType":"SPAT","odeReceivedAt":"2024-07-11T17:17:23.184Z","originIp":"10.164.6.18","name":"N State St & E Centre St","intersectionId":6311,"cti4501Conformant":false,"validationMessages":[{"message":"$.metadata.receivedMessageDetails.locationData: is missing but it is required","jsonPath":"$.metadata.receivedMessageDetails","schemaPath":"#/$defs/OdeSpatMetadata/properties/receivedMessageDetails/required"},{"message":"$.metadata.encodings: is missing but it is required","jsonPath":"$.metadata","schemaPath":"#/$defs/OdeSpatMetadata/required"},{"message":"$.metadata.recordGeneratedBy: is missing but it is required","jsonPath":"$.metadata","schemaPath":"#/$defs/OdeSpatMetadata/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].id.region: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].id","schemaPath":"#/$defs/J2735IntersectionReferenceID/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[0].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[1].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[2].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[3].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[4].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[5].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[6].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.startTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.maxEndTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"},{"message":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing.nextTime: is missing but it is required","jsonPath":"$.payload.data.intersectionStateList.intersectionStatelist[0].states.movementList[7].state_time_speed.movementEventList[0].timing","schemaPath":"#/$defs/J2735TimeChangeDetails/required"}],"revision":48,"status":{"manualControlIsEnabled":false,"stopTimeIsActivated":false,"failureFlash":false,"preemptIsActive":true,"signalPriorityIsActive":false,"fixedTimeOperation":false,"trafficDependentOperation":false,"standbyOperation":false,"failureMode":false,"off":false,"recentMAPmessageUpdate":true,"recentChangeInMAPassignedLanesIDsUsed":true,"noValidMAPisAvailableAtThisTime":true,"noValidSPATisAvailableAtThisTime":false},"utcTimeStamp":"2024-07-11T17:17:23.184Z","enabledLanes":[],"states":[{"signalGroup":1,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:58.781Z","maxEndTime":"2024-07-15T21:31:58.781Z"}}]},{"signalGroup":2,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:08.781Z","maxEndTime":"2024-07-15T21:31:08.781Z"}}]},{"signalGroup":3,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:32:18.781Z","maxEndTime":"2024-07-15T21:32:18.781Z"}}]},{"signalGroup":4,"stateTimeSpeed":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":"2024-07-15T21:30:54.581Z","maxEndTime":"2024-07-15T21:31:02.581Z"}}]},{"signalGroup":5,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:08.781Z","maxEndTime":"2024-07-15T21:31:08.781Z"}}]},{"signalGroup":6,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:31:38.781Z","maxEndTime":"2024-07-15T21:31:38.781Z"}}]},{"signalGroup":7,"stateTimeSpeed":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":"2024-07-15T21:30:43.481Z","maxEndTime":"2024-07-15T21:31:02.881Z"}}]},{"signalGroup":8,"stateTimeSpeed":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":"2024-07-15T21:30:40.081Z"}}]}]},"message":"Spat message changed without revision increment."}
% Reached end of topic topic.CmSpatRevisionCounterEvents [0] at offset 107

Comments

If the SPAT message for this intersection has been sent prior to this test, the result may differ from the above.