From 6c2914a759485489abf159094e96fe8215ee3beb Mon Sep 17 00:00:00 2001 From: Drew Johnston <31270488+drewjj@users.noreply.github.com> Date: Mon, 23 Dec 2024 16:48:25 -0700 Subject: [PATCH 1/5] Update the schema version to 8 for the output messages --- docs/schemas/README.md | 2 ++ .../dot/its/jpo/ode/model/OdeMsgMetadata.java | 9 ++------- .../test/resources/CVMessages/TIM_test.json | 2 +- .../src/main/resources/application.yaml | 1 - .../LogFileToAsn1CodecPublisherTest.java | 10 +--------- .../ode/traveler/TimTransmogrifierTest.java | 8 ++++---- .../its/jpo/ode/udp/map/MapReceiverTest.java | 1 - .../src/test/resources/application.yaml | 1 - ...DataCreatorHelper_TIM_JSON_J2735-2024.json | 2 +- ...imDataCreatorHelper_TIM_XER_J2735-2016.xml | 2 +- ...imDataCreatorHelper_TIM_XER_J2735-2020.xml | 2 +- ...imDataCreatorHelper_TIM_XER_J2735-2024.xml | 2 +- ...coderRouter_ApprovalTestCases_MapJson.json | 20 +++++++++---------- ...derRouter_ApprovalTestCases_MapTxPojo.json | 20 +++++++++---------- ...dedMAP_to_Asn1DecoderInput_Validation.json | 20 +++++++++---------- .../UDPMAP_To_EncodedJSON_Validation.json | 4 ++-- .../listeners/asn1/decoder-input-bsm.json | 2 +- .../listeners/asn1/decoder-input-psm.json | 2 +- .../listeners/asn1/decoder-input-spat.json | 2 +- .../listeners/asn1/decoder-input-srm.json | 2 +- .../listeners/asn1/decoder-input-ssm.json | 2 +- .../listeners/asn1/decoder-input-tim.json | 2 +- .../ode/kafka/listeners/asn1/expected-bsm.xml | 2 +- .../ode/kafka/listeners/asn1/expected-psm.xml | 2 +- .../kafka/listeners/asn1/expected-spat.xml | 2 +- .../ode/kafka/listeners/asn1/expected-srm.xml | 2 +- .../ode/kafka/listeners/asn1/expected-ssm.xml | 2 +- .../ode/kafka/listeners/asn1/expected-tim.xml | 2 +- .../ode/services/asn1/decoder-output-bsm.xml | 2 +- .../ode/services/asn1/decoder-output-map.xml | 2 +- .../ode/services/asn1/decoder-output-psm.xml | 2 +- .../ode/services/asn1/decoder-output-spat.xml | 2 +- .../ode/services/asn1/decoder-output-srm.xml | 2 +- .../ode/services/asn1/decoder-output-ssm.xml | 2 +- .../ode/services/asn1/decoder-output-tim.xml | 2 +- .../jpo/ode/services/asn1/expected-bsm.json | 2 +- .../jpo/ode/services/asn1/expected-map.json | 2 +- .../jpo/ode/services/asn1/expected-psm.json | 2 +- .../jpo/ode/services/asn1/expected-spat.json | 2 +- .../jpo/ode/services/asn1/expected-srm.json | 2 +- .../jpo/ode/services/asn1/expected-ssm.json | 2 +- .../services/asn1/expected-tim-specific.xml | 2 +- .../jpo/ode/services/asn1/expected-tim.json | 2 +- .../aemInputContainingCircleGeometry.xml | 2 +- .../BsmReceiverTest_ValidBSM_expected.json | 2 +- .../MapReceiverTest_ValidMAP_expected.json | 2 +- .../PsmReceiverTest_ValidPSM_expected.json | 2 +- .../SpatReceiverTest_ValidSPAT_expected.json | 2 +- .../srm/SrmReceiverTest_ExpectedOutput.json | 2 +- .../SsmReceiverTest_ValidSSM_expected.json | 2 +- .../TimReceiverTest_ValidTIM_expected.json | 2 +- 51 files changed, 81 insertions(+), 95 deletions(-) diff --git a/docs/schemas/README.md b/docs/schemas/README.md index 8cbf525e1..9f394cf0a 100644 --- a/docs/schemas/README.md +++ b/docs/schemas/README.md @@ -12,6 +12,8 @@ The jpo-ode supports receiving and decoding ASN1 messages from RSUs. The support The output JSON of the ODE is complex but it is similar to the official standard of J2735 with some minor differences due to the form of their deserialized POJOs. To help implement proper data validation for the JSON output of the ODE into any data pipeline infrastructure, you may use the provided validation schemas within this directory. +Each jpo-ode output object also contains a `schemaVersion`. This value represents the version of the jpo-ode output that the object came from. This version is not intended to be changed except in the scenario of newly added breaking changes to the output. This value is set [here](https://github.com/usdot-jpo-ode/jpo-ode/blob/develop/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java). + ## Testing the schemas These schemas can be used for manual validation in the following steps: 1. To perform a simple schema validation check against output JSON data from the jpo-ode, you may use a schema validation site such as https://www.jsonschemavalidator.net. diff --git a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java index 30786379a..6752229d6 100644 --- a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java +++ b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java @@ -30,8 +30,7 @@ public enum GeneratedBy { } private static final long serialVersionUID = 3979762143291085955L; - - private static int staticSchemaVersion = 7; + private static final int staticSchemaVersion = 8; private String payloadType; private SerialId serialId; @@ -158,10 +157,6 @@ public static int getStaticSchemaVersion() { return staticSchemaVersion; } - public static void setStaticSchemaVersion(int aSchemaVersion) { - staticSchemaVersion = aSchemaVersion; - } - public String getAsn1() { return asn1; } @@ -175,7 +170,7 @@ public void setAsn1(OdeMsgPayload payload) { if (JsonUtils.getJsonNode(payload.getData().toString(), "bytes") != null) this.asn1 = JsonUtils.getJsonNode(payload.getData().toString(), "bytes").asText(); } - } + } @Override public int hashCode() { diff --git a/jpo-ode-core/src/test/resources/CVMessages/TIM_test.json b/jpo-ode-core/src/test/resources/CVMessages/TIM_test.json index f51802404..f284918f4 100644 --- a/jpo-ode-core/src/test/resources/CVMessages/TIM_test.json +++ b/jpo-ode-core/src/test/resources/CVMessages/TIM_test.json @@ -1 +1 @@ -{"metadata":{"logFileName":"","recordType":"timMsg","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeTimPayload","serialId":{"streamId":"8af76b08-89bf-422e-b674-0f0ee065666f","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-06T10:39:42.806Z","schemaVersion":7,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001F830A752544F94F4354455420535452124C16B4FA27D64F431A94AC28F232828FF05260B5CA82DDFB227A687CA09CFDE87C4B0ED1C8800280204A865BB2C265D1E4F5D3A877C07F8093FC3D820142C4EB15C7AC09CE3356F45A90200118358186A148D3F13220B227C18569099E2D1232A28B5F2579208E479151D45D438BEFF80DB0C08CED3F45A50103103102088C1A44A152889AFA7F62218940E831C20F35EA1232777BF31146022C71408809E5EB7BA1D52835D8A040D83367520C4AB397658B07E21393A041060D049E825C15FCF56AFF05260B58E40024126EDBD550F6D519709FDE4CF880201602008CEE4ACA5DE274975513846DD7AD77F839305AD383175AA8A497954C284E668FFE4F0710D80802810030EAC2535BCD6AE047899B1CE75405C8E6936419C672A85F8900C50B428CA3188CA4E1101B485DEE47349B20CE339542FC5654852A1484C9C0A0B6DEBB81DB91CD26C8338CE550BF31188B6041101F08134A407147800DFCF8E5FE0A4C16B2BF3A3A253269429B3B8198F71B71F8C902002C008005DD1174A86649950714134C54C82F4C0012B9C982D69B5BEADBF1C99BEFD660C6A4200201A7A1ECCA540B60B0AA27F8093AC4BF831472A28ECD2E0203575E8F15F5000818817507D68CC505CF4497E8219CA2288A03C81503120AEB852B7507D68CC505CF4497E2121346A090E8061520293D37841E41530E9BF4214E93C326CF8502830F0C081FF9D71FE064C1BAA780A12351A24D300B6FD25F085703880101600022BE028AC1105C1D5CB0F0E001A42F7F849305AD3E9B408EB43464DC861E6234918C8667857300022C400087E511D765E294CF3507435289D7EBBC2849A4982D69F494982D524C16B4FA36827A1D6C31DFDBE55A627F819307EA49F19AA77C773D119EA690CE094883E0100588001E1832A00950E876B85589726EF3EDFE0E4C16B4F8EB0ECDE8A23F3F9E839831CE316170D2000858080178162BF959EDACD55B2CD3721A1EDFE064C1AEC1B3F02442FEC92E119DFAF82D6EC3884002C0004A9FEDD617613A307F791C6D74FB1A27C451F6139305AD394982D582367260B5A600","originIp":"172.18.0.1"},"payload":{"dataType":"us.dot.its.jpo.ode.plugin.j2735.travelerinformation.TravelerInformation","data":{"msgCnt":82,"timeStamp":345337,"packetID":"4F4354455420535452","urlB":"IA5St","dataFrames":[{"doNotUse1":0,"frameType":"commercialSignage","msgId":{"furtherInfoID":"4F43"},"startYear":425,"startTime":306216,"durationTime":31001,"priority":2,"doNotUse2":0,"regions":[{"name":"IA5","id":{"region":38149,"id":48118},"anchor":{"lat":-567387419,"elevation":53848,"long":-1717691068},"laneWidth":15175,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":true,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor50000meters","area":{"circle":{"center":{"lat":-686654332,"elevation":38736,"long":1616508908},"radius":3832,"units":"centimeter"}}}}},{"name":"I","id":{"region":64573,"id":33281},"anchor":{"lat":-714161321,"elevation":48475,"long":-1285139143},"laneWidth":26805,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"path":{"scale":1,"offset":{"ll":{"nodes":[{"delta":{"node-LL4":{"lon":-127947,"lat":-120550}},"attributes":{"localNode":["downstreamStopLine","closedToTraffic"],"disabled":["adjacentParkingOnLeft","transitStopOnLeft","parallelParking","mergingLaneLeft","curbOnLeft"],"enabled":["midBlockCurbPresent","transitStopInLane","taperToCenterLine","lowCurbsPresent"],"data":[{"pathEndPointAngle":-8,"laneCrownPointLeft":35,"laneAngle":62,"speedLimits":[{"type":"truckMaxSpeed","speed":5822},{"type":"truckNightMaxSpeed","speed":3017}]}],"dWidth":162,"dElevation":424}},{"delta":{"node-LatLon":{"lon":-998896073,"lat":735850714}},"attributes":{"localNode":["hydrantPresent","safeIsland","closedToTraffic","stopLine","reserved"],"disabled":["loadingzoneOnRight","adjacentParkingOnRight","headInParking"],"enabled":["costToPark","mergingLaneLeft","midBlockCurbPresent","unEvenPavementPresent","curbOnLeft"],"data":[{"laneAngle":-82,"speedLimits":[{"type":"truckMinSpeed","speed":2097}]}],"dWidth":264,"dElevation":-269}},{"delta":{"node-LL4":{"lon":86161,"lat":20207}},"attributes":{"localNode":["roundedCapStyleA","divergePoint","roundedCapStyleB","reserved"],"disabled":["adjacentParkingOnLeft","adjacentBikeLaneOnRight"],"enabled":["headInParking","timeRestrictionsOnParking"],"data":[{"laneCrownPointCenter":-68}],"dWidth":245,"dElevation":247}},{"delta":{"node-LL1":{"lon":-172,"lat":525}},"attributes":{"localNode":["closedToTraffic","roundedCapStyleA"],"disabled":["partialCurbIntrusion"],"enabled":["adaptiveTimingPresent"],"dWidth":206,"dElevation":144}},{"delta":{"node-LL5":{"lon":-873243,"lat":1464496}},"attributes":{"localNode":["stopLine","downstreamStartNode"],"disabled":["taperToRight","doNotBlock"],"enabled":["bikeBoxInFront"],"data":[{"pathEndPointAngle":25,"laneAngle":137}],"dWidth":414,"dElevation":181}}]}}}}},{"name":"IA5","id":{"region":7296,"id":1154},"anchor":{"lat":29950376,"elevation":16367,"long":270580409},"laneWidth":4926,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor10000meters","laneWidth":26482,"circle":{"center":{"lat":598135630,"elevation":32186,"long":664850545},"radius":3930,"units":"mile"}}}},{"name":"IA5S","id":{"region":1582,"id":46417},"anchor":{"lat":-283655839,"elevation":57976,"long":-685153664},"laneWidth":7235,"directionality":"forward","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":true,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor1000meters","area":{"shapePointSet":{"anchor":{"lat":581272185,"elevation":9059,"long":1108489970},"laneWidth":20085,"directionality":"forward","nodeList":{"nodes":[{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["mergePoint","reserved"],"disabled":["turnOutPointOnRight","adjacentParkingOnLeft","freeParking","costToPark"],"enabled":["costToPark","adjacentParkingOnRight"],"data":[{"laneCrownPointRight":4,"laneAngle":-167}],"dWidth":144,"dElevation":239}},{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["hydrantPresent","divergePoint"],"disabled":["freeParking","unEvenPavementPresent"],"enabled":["freeParking","adaptiveTimingPresent","taperToLeft"],"data":[{"speedLimits":[{"type":"vehiclesWithTrailersMaxSpeed","speed":3517}]}],"dWidth":-36,"dElevation":-453}},{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["roundedCapStyleA","downstreamStopLine","mergePoint","hydrantPresent"],"disabled":["doNotBlock","whiteLine","bikeBoxInFront","sharedBikeLane"],"enabled":["bikeBoxInFront","transitStopInLane","unEvenPavementPresent","adjacentBikeLaneOnRight"],"data":[{"pathEndPointAngle":-95,"laneAngle":60}],"dWidth":463,"dElevation":57}}]}}}}}},{"name":"IA5","id":{"region":11251,"id":41890},"anchor":{"lat":385181606,"elevation":46812,"long":1670812734},"laneWidth":16153,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useInstantlyOnly","laneWidth":6004,"circle":{"center":{"lat":-509239964,"elevation":9413,"long":772185922},"radius":1224,"units":"cm2-5"}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"exitService":[{"item":{"itis":599}}]},"url":"IA5S"},{"doNotUse1":0,"frameType":"commercialSignage","msgId":{"roadSignID":{"position":{"lat":634998835,"elevation":50308,"long":313588249},"viewAngle":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"mutcdCode":"maintenance","crc":"4F43"}},"startYear":3481,"startTime":305174,"durationTime":24752,"priority":5,"doNotUse2":0,"regions":[{"name":"I","id":{"region":44107,"id":63537},"anchor":{"lat":-419185997,"elevation":51107,"long":-533287210},"laneWidth":25278,"directionality":"reverse","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":true,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"path":{"scale":8,"offset":{"ll":{"nodes":[{"delta":{"node-LatLon":{"lon":900792217,"lat":448269129}},"attributes":{"localNode":["roundedCapStyleA","roundedCapStyleB","downstreamStartNode","divergePoint"],"disabled":["timeRestrictionsOnParking","sharedWithTrackedVehicle"],"enabled":["taperToCenterLine"],"data":[{"pathEndPointAngle":24,"laneCrownPointCenter":9}],"dWidth":225,"dElevation":-213}},{"delta":{"node-LatLon":{"lon":900792217,"lat":448269129}},"attributes":{"localNode":["stopLine","mergePoint"],"disabled":["rfSignalRequestPresent"],"enabled":["turnOutPointOnLeft","loadingzoneOnLeft","headInParking","adjacentParkingOnRight","safeIsland"],"data":[{"pathEndPointAngle":-109,"laneCrownPointRight":83}],"dWidth":-31,"dElevation":-482}},{"delta":{"node-LL1":{"lon":-1370,"lat":-1581}},"attributes":{"localNode":["mergePoint","divergePoint","downstreamStartNode","safeIsland"],"disabled":["adaptiveTimingPresent","partialCurbIntrusion","parallelParking","curbOnLeft","doNotBlock"],"enabled":["curbOnRight","sharedBikeLane"],"data":[{"laneCrownPointLeft":-121}],"dWidth":505,"dElevation":348}}]}}}}},{"name":"IA","id":{"region":30031,"id":322},"anchor":{"lat":-454547095,"elevation":59458,"long":353479827},"laneWidth":23566,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":true,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":true,"from337-5to360-0degrees":false},"extent":"useFor10meters","laneWidth":24321,"circle":{"center":{"lat":-539150408,"elevation":45059,"long":-814772254},"radius":1157,"units":"mile"}}}},{"name":"IA5St","id":{"region":46088,"id":60227},"anchor":{"lat":-476956537,"elevation":4505,"long":759386724},"laneWidth":28846,"directionality":"forward","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":true,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":true,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor100meters","laneWidth":8084,"circle":{"center":{"lat":-405703383,"elevation":9512,"long":-508985739},"radius":2519,"units":"mile"}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"exitService":[{"item":{"text":"I"}},{"item":{"text":"IA5St"}},{"item":{"text":"IA5"}}]},"url":"IA5St"},{"doNotUse1":0,"frameType":"unknown","msgId":{"furtherInfoID":"4F43"},"startYear":2776,"startTime":408571,"durationTime":15957,"priority":5,"doNotUse2":0,"regions":[{"name":"IA","id":{"region":62756,"id":63693},"anchor":{"lat":424936826,"elevation":35858,"long":-1208779998},"laneWidth":18563,"directionality":"both","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":true,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":true,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor5000meters","laneWidth":17158,"circle":{"center":{"lat":442482548,"elevation":43319,"long":-804103995},"radius":1951,"units":"meter"}}}},{"name":"IA5S","id":{"region":51032,"id":30319},"anchor":{"lat":-559743245,"elevation":46636,"long":1697199162},"laneWidth":5901,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":true,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor500meters","laneWidth":28716,"circle":{"center":{"lat":707126893,"elevation":35728,"long":-77527193},"radius":3343,"units":"meter"}}}},{"name":"IA","id":{"region":23939,"id":26592},"anchor":{"lat":-328004279,"elevation":45419,"long":88284632},"laneWidth":15118,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":true,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":true,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor50000meters","area":{"circle":{"center":{"lat":171361070,"elevation":57912,"long":1462406911},"radius":3502,"units":"kilometer"}}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"speedLimit":[{"item":{"itis":40721}},{"item":{"itis":36784}},{"item":{"text":"IA5S"}},{"item":{"text":"IA5"}},{"item":{"itis":49435}}]},"url":"IA5S"}]}}} \ No newline at end of file +{"metadata":{"logFileName":"","recordType":"timMsg","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeTimPayload","serialId":{"streamId":"8af76b08-89bf-422e-b674-0f0ee065666f","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-06T10:39:42.806Z","schemaVersion":8,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001F830A752544F94F4354455420535452124C16B4FA27D64F431A94AC28F232828FF05260B5CA82DDFB227A687CA09CFDE87C4B0ED1C8800280204A865BB2C265D1E4F5D3A877C07F8093FC3D820142C4EB15C7AC09CE3356F45A90200118358186A148D3F13220B227C18569099E2D1232A28B5F2579208E479151D45D438BEFF80DB0C08CED3F45A50103103102088C1A44A152889AFA7F62218940E831C20F35EA1232777BF31146022C71408809E5EB7BA1D52835D8A040D83367520C4AB397658B07E21393A041060D049E825C15FCF56AFF05260B58E40024126EDBD550F6D519709FDE4CF880201602008CEE4ACA5DE274975513846DD7AD77F839305AD383175AA8A497954C284E668FFE4F0710D80802810030EAC2535BCD6AE047899B1CE75405C8E6936419C672A85F8900C50B428CA3188CA4E1101B485DEE47349B20CE339542FC5654852A1484C9C0A0B6DEBB81DB91CD26C8338CE550BF31188B6041101F08134A407147800DFCF8E5FE0A4C16B2BF3A3A253269429B3B8198F71B71F8C902002C008005DD1174A86649950714134C54C82F4C0012B9C982D69B5BEADBF1C99BEFD660C6A4200201A7A1ECCA540B60B0AA27F8093AC4BF831472A28ECD2E0203575E8F15F5000818817507D68CC505CF4497E8219CA2288A03C81503120AEB852B7507D68CC505CF4497E2121346A090E8061520293D37841E41530E9BF4214E93C326CF8502830F0C081FF9D71FE064C1BAA780A12351A24D300B6FD25F085703880101600022BE028AC1105C1D5CB0F0E001A42F7F849305AD3E9B408EB43464DC861E6234918C8667857300022C400087E511D765E294CF3507435289D7EBBC2849A4982D69F494982D524C16B4FA36827A1D6C31DFDBE55A627F819307EA49F19AA77C773D119EA690CE094883E0100588001E1832A00950E876B85589726EF3EDFE0E4C16B4F8EB0ECDE8A23F3F9E839831CE316170D2000858080178162BF959EDACD55B2CD3721A1EDFE064C1AEC1B3F02442FEC92E119DFAF82D6EC3884002C0004A9FEDD617613A307F791C6D74FB1A27C451F6139305AD394982D582367260B5A600","originIp":"172.18.0.1"},"payload":{"dataType":"us.dot.its.jpo.ode.plugin.j2735.travelerinformation.TravelerInformation","data":{"msgCnt":82,"timeStamp":345337,"packetID":"4F4354455420535452","urlB":"IA5St","dataFrames":[{"doNotUse1":0,"frameType":"commercialSignage","msgId":{"furtherInfoID":"4F43"},"startYear":425,"startTime":306216,"durationTime":31001,"priority":2,"doNotUse2":0,"regions":[{"name":"IA5","id":{"region":38149,"id":48118},"anchor":{"lat":-567387419,"elevation":53848,"long":-1717691068},"laneWidth":15175,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":true,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor50000meters","area":{"circle":{"center":{"lat":-686654332,"elevation":38736,"long":1616508908},"radius":3832,"units":"centimeter"}}}}},{"name":"I","id":{"region":64573,"id":33281},"anchor":{"lat":-714161321,"elevation":48475,"long":-1285139143},"laneWidth":26805,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"path":{"scale":1,"offset":{"ll":{"nodes":[{"delta":{"node-LL4":{"lon":-127947,"lat":-120550}},"attributes":{"localNode":["downstreamStopLine","closedToTraffic"],"disabled":["adjacentParkingOnLeft","transitStopOnLeft","parallelParking","mergingLaneLeft","curbOnLeft"],"enabled":["midBlockCurbPresent","transitStopInLane","taperToCenterLine","lowCurbsPresent"],"data":[{"pathEndPointAngle":-8,"laneCrownPointLeft":35,"laneAngle":62,"speedLimits":[{"type":"truckMaxSpeed","speed":5822},{"type":"truckNightMaxSpeed","speed":3017}]}],"dWidth":162,"dElevation":424}},{"delta":{"node-LatLon":{"lon":-998896073,"lat":735850714}},"attributes":{"localNode":["hydrantPresent","safeIsland","closedToTraffic","stopLine","reserved"],"disabled":["loadingzoneOnRight","adjacentParkingOnRight","headInParking"],"enabled":["costToPark","mergingLaneLeft","midBlockCurbPresent","unEvenPavementPresent","curbOnLeft"],"data":[{"laneAngle":-82,"speedLimits":[{"type":"truckMinSpeed","speed":2097}]}],"dWidth":264,"dElevation":-269}},{"delta":{"node-LL4":{"lon":86161,"lat":20207}},"attributes":{"localNode":["roundedCapStyleA","divergePoint","roundedCapStyleB","reserved"],"disabled":["adjacentParkingOnLeft","adjacentBikeLaneOnRight"],"enabled":["headInParking","timeRestrictionsOnParking"],"data":[{"laneCrownPointCenter":-68}],"dWidth":245,"dElevation":247}},{"delta":{"node-LL1":{"lon":-172,"lat":525}},"attributes":{"localNode":["closedToTraffic","roundedCapStyleA"],"disabled":["partialCurbIntrusion"],"enabled":["adaptiveTimingPresent"],"dWidth":206,"dElevation":144}},{"delta":{"node-LL5":{"lon":-873243,"lat":1464496}},"attributes":{"localNode":["stopLine","downstreamStartNode"],"disabled":["taperToRight","doNotBlock"],"enabled":["bikeBoxInFront"],"data":[{"pathEndPointAngle":25,"laneAngle":137}],"dWidth":414,"dElevation":181}}]}}}}},{"name":"IA5","id":{"region":7296,"id":1154},"anchor":{"lat":29950376,"elevation":16367,"long":270580409},"laneWidth":4926,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor10000meters","laneWidth":26482,"circle":{"center":{"lat":598135630,"elevation":32186,"long":664850545},"radius":3930,"units":"mile"}}}},{"name":"IA5S","id":{"region":1582,"id":46417},"anchor":{"lat":-283655839,"elevation":57976,"long":-685153664},"laneWidth":7235,"directionality":"forward","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":true,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor1000meters","area":{"shapePointSet":{"anchor":{"lat":581272185,"elevation":9059,"long":1108489970},"laneWidth":20085,"directionality":"forward","nodeList":{"nodes":[{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["mergePoint","reserved"],"disabled":["turnOutPointOnRight","adjacentParkingOnLeft","freeParking","costToPark"],"enabled":["costToPark","adjacentParkingOnRight"],"data":[{"laneCrownPointRight":4,"laneAngle":-167}],"dWidth":144,"dElevation":239}},{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["hydrantPresent","divergePoint"],"disabled":["freeParking","unEvenPavementPresent"],"enabled":["freeParking","adaptiveTimingPresent","taperToLeft"],"data":[{"speedLimits":[{"type":"vehiclesWithTrailersMaxSpeed","speed":3517}]}],"dWidth":-36,"dElevation":-453}},{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["roundedCapStyleA","downstreamStopLine","mergePoint","hydrantPresent"],"disabled":["doNotBlock","whiteLine","bikeBoxInFront","sharedBikeLane"],"enabled":["bikeBoxInFront","transitStopInLane","unEvenPavementPresent","adjacentBikeLaneOnRight"],"data":[{"pathEndPointAngle":-95,"laneAngle":60}],"dWidth":463,"dElevation":57}}]}}}}}},{"name":"IA5","id":{"region":11251,"id":41890},"anchor":{"lat":385181606,"elevation":46812,"long":1670812734},"laneWidth":16153,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useInstantlyOnly","laneWidth":6004,"circle":{"center":{"lat":-509239964,"elevation":9413,"long":772185922},"radius":1224,"units":"cm2-5"}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"exitService":[{"item":{"itis":599}}]},"url":"IA5S"},{"doNotUse1":0,"frameType":"commercialSignage","msgId":{"roadSignID":{"position":{"lat":634998835,"elevation":50308,"long":313588249},"viewAngle":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"mutcdCode":"maintenance","crc":"4F43"}},"startYear":3481,"startTime":305174,"durationTime":24752,"priority":5,"doNotUse2":0,"regions":[{"name":"I","id":{"region":44107,"id":63537},"anchor":{"lat":-419185997,"elevation":51107,"long":-533287210},"laneWidth":25278,"directionality":"reverse","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":true,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"path":{"scale":8,"offset":{"ll":{"nodes":[{"delta":{"node-LatLon":{"lon":900792217,"lat":448269129}},"attributes":{"localNode":["roundedCapStyleA","roundedCapStyleB","downstreamStartNode","divergePoint"],"disabled":["timeRestrictionsOnParking","sharedWithTrackedVehicle"],"enabled":["taperToCenterLine"],"data":[{"pathEndPointAngle":24,"laneCrownPointCenter":9}],"dWidth":225,"dElevation":-213}},{"delta":{"node-LatLon":{"lon":900792217,"lat":448269129}},"attributes":{"localNode":["stopLine","mergePoint"],"disabled":["rfSignalRequestPresent"],"enabled":["turnOutPointOnLeft","loadingzoneOnLeft","headInParking","adjacentParkingOnRight","safeIsland"],"data":[{"pathEndPointAngle":-109,"laneCrownPointRight":83}],"dWidth":-31,"dElevation":-482}},{"delta":{"node-LL1":{"lon":-1370,"lat":-1581}},"attributes":{"localNode":["mergePoint","divergePoint","downstreamStartNode","safeIsland"],"disabled":["adaptiveTimingPresent","partialCurbIntrusion","parallelParking","curbOnLeft","doNotBlock"],"enabled":["curbOnRight","sharedBikeLane"],"data":[{"laneCrownPointLeft":-121}],"dWidth":505,"dElevation":348}}]}}}}},{"name":"IA","id":{"region":30031,"id":322},"anchor":{"lat":-454547095,"elevation":59458,"long":353479827},"laneWidth":23566,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":true,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":true,"from337-5to360-0degrees":false},"extent":"useFor10meters","laneWidth":24321,"circle":{"center":{"lat":-539150408,"elevation":45059,"long":-814772254},"radius":1157,"units":"mile"}}}},{"name":"IA5St","id":{"region":46088,"id":60227},"anchor":{"lat":-476956537,"elevation":4505,"long":759386724},"laneWidth":28846,"directionality":"forward","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":true,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":true,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor100meters","laneWidth":8084,"circle":{"center":{"lat":-405703383,"elevation":9512,"long":-508985739},"radius":2519,"units":"mile"}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"exitService":[{"item":{"text":"I"}},{"item":{"text":"IA5St"}},{"item":{"text":"IA5"}}]},"url":"IA5St"},{"doNotUse1":0,"frameType":"unknown","msgId":{"furtherInfoID":"4F43"},"startYear":2776,"startTime":408571,"durationTime":15957,"priority":5,"doNotUse2":0,"regions":[{"name":"IA","id":{"region":62756,"id":63693},"anchor":{"lat":424936826,"elevation":35858,"long":-1208779998},"laneWidth":18563,"directionality":"both","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":true,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":true,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor5000meters","laneWidth":17158,"circle":{"center":{"lat":442482548,"elevation":43319,"long":-804103995},"radius":1951,"units":"meter"}}}},{"name":"IA5S","id":{"region":51032,"id":30319},"anchor":{"lat":-559743245,"elevation":46636,"long":1697199162},"laneWidth":5901,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":true,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor500meters","laneWidth":28716,"circle":{"center":{"lat":707126893,"elevation":35728,"long":-77527193},"radius":3343,"units":"meter"}}}},{"name":"IA","id":{"region":23939,"id":26592},"anchor":{"lat":-328004279,"elevation":45419,"long":88284632},"laneWidth":15118,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":true,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":true,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor50000meters","area":{"circle":{"center":{"lat":171361070,"elevation":57912,"long":1462406911},"radius":3502,"units":"kilometer"}}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"speedLimit":[{"item":{"itis":40721}},{"item":{"itis":36784}},{"item":{"text":"IA5S"}},{"item":{"text":"IA5"}},{"item":{"itis":49435}}]},"url":"IA5S"}]}}} \ No newline at end of file diff --git a/jpo-ode-svcs/src/main/resources/application.yaml b/jpo-ode-svcs/src/main/resources/application.yaml index 938cc5a15..fb6409c00 100644 --- a/jpo-ode-svcs/src/main/resources/application.yaml +++ b/jpo-ode-svcs/src/main/resources/application.yaml @@ -18,7 +18,6 @@ spring: max-file-size: 1MB max-request-size: 1MB ode: - output-schema-version: 7 security-services: host-ip: ${DOCKER_HOST_IP} port: 8090 diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java index 1f1d78e1e..f3e8fa9c8 100644 --- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java +++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java @@ -19,7 +19,6 @@ import mockit.Injectable; import mockit.Mocked; import mockit.Tested; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import us.dot.its.jpo.ode.coder.StringPublisher; import us.dot.its.jpo.ode.coder.stream.LogFileToAsn1CodecPublisher.LogFileToAsn1CodecPublisherException; @@ -30,7 +29,6 @@ import us.dot.its.jpo.ode.kafka.topics.RawEncodedJsonTopics; import us.dot.its.jpo.ode.model.OdeData; import us.dot.its.jpo.ode.model.OdeLogMetadata.RecordType; -import us.dot.its.jpo.ode.model.OdeMsgMetadata; import us.dot.its.jpo.ode.util.DateTimeUtils; import java.io.BufferedInputStream; @@ -42,7 +40,7 @@ class LogFileToAsn1CodecPublisherTest { private static final String GZ = ".gz"; - private static final String schemaVersion = "7"; + private static final String schemaVersion = "8"; @Tested LogFileToAsn1CodecPublisher testLogFileToAsn1CodecPublisher; @@ -56,12 +54,6 @@ class LogFileToAsn1CodecPublisherTest { @Injectable RawEncodedJsonTopics injectableRawEncodedJsonTopics; - - @BeforeAll - public static void setupClass() { - OdeMsgMetadata.setStaticSchemaVersion(Integer.parseInt(schemaVersion)); - } - @Test void testPublishInit(@Mocked LogFileParser mockLogFileParser) throws Exception { new Expectations() { diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java index b0d6fb5a2..f3b6832c6 100644 --- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java +++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java @@ -58,7 +58,7 @@ class TimTransmogrifierTest { @Autowired RsuProperties rsuProperties; - private static final String schemaVersion = "7"; + private static final String schemaVersion = "8"; @Test void testUpdateRsuCreds_UpdateWhenNull() { @@ -96,9 +96,9 @@ void testUpdateRsuCreds_UpdatedWhenEmptyString() { @Test void testObfuscateRsuPassword() { String actual = TimTransmogrifier.obfuscateRsuPassword( - "{\"metadata\":{\"request\":{\"ode\":{\"version\":3,\"verb\":\"POST\"},\"sdw\":null,\"rsus\":[{\"rsuTarget\":\"127.0.0.1\",\"rsuUsername\":\"v3user\",\"rsuPassword\": \"password\",\"rsuRetries\":0,\"rsuTimeout\":2000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.2\",\"rsuUsername\":\"v3user\",\"rsuPassword\": \"password\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.3\",\"rsuUsername\":\"v3user\",\"rsuPassword\": \"password\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10}],\"snmp\":{\"rsuid\":\"00000083\",\"msgid\":31,\"mode\":1,\"channel\":178,\"interval\":2,\"deliverystart\":\"2017-06-01T17:47:11-05:00\",\"deliverystop\":\"2018-01-01T17:47:11-05:15\",\"enable\":1,\"status\":4}},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeMsgPayload\",\"serialId\":{\"streamId\":\"59651ecc-240c-4440-9011-4a43c926817b\",\"bundleSize\":1,\"bundleId\":0,\"recordId\":0,\"serialNumber\":0},\"odeReceivedAt\":\"2018-11-16T19:21:22.568Z\",\"schemaVersion\":6,\"recordGeneratedAt\":\"2017-03-13T06:07:11Z\",\"recordGeneratedBy\":\"TMC\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.plugin.j2735.OdeTravelerInformationMessage\",\"data\":{\"msgCnt\":13,\"timeStamp\":\"2017-03-13T01:07:11-05:00\",\"packetID\":\"EC9C236B0000000000\",\"urlB\":\"null\",\"dataframes\":[{\"doNotUse1\":0,\"frameType\":\"advisory\",\"msgId\":{\"roadSignID\":{\"position\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"viewAngle\":\"1010101010101010\",\"mutcdCode\":\"warning\",\"crc\":\"0000000000000000\"},\"furtherInfoID\":null},\"startDateTime\":\"2017-12-01T17:47:11-05:00\",\"durationTime\":22,\"priority\":0,\"doNotUse2\":0,\"regions\":[{\"name\":\"bob\",\"regulatorID\":23,\"segmentID\":33,\"anchorPosition\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"laneWidth\":7,\"directionality\":3,\"closedPath\":false,\"direction\":\"1010101010101010\",\"description\":\"geometry\",\"path\":null,\"geometry\":{\"direction\":\"1010101010101010\",\"extent\":1,\"laneWidth\":33,\"circle\":{\"position\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"radius\":15,\"units\":7}},\"oldRegion\":null}],\"doNotUse4\":0,\"doNotUse3\":0,\"content\":\"Advisory\",\"items\":[\"125\",\"some text\",\"250\",\"\\u002798765\"],\"url\":\"null\"}],\"asnDataFrames\":null}}}"); + "{\"metadata\":{\"request\":{\"ode\":{\"version\":3,\"verb\":\"POST\"},\"sdw\":null,\"rsus\":[{\"rsuTarget\":\"127.0.0.1\",\"rsuUsername\":\"v3user\",\"rsuPassword\": \"password\",\"rsuRetries\":0,\"rsuTimeout\":2000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.2\",\"rsuUsername\":\"v3user\",\"rsuPassword\": \"password\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.3\",\"rsuUsername\":\"v3user\",\"rsuPassword\": \"password\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10}],\"snmp\":{\"rsuid\":\"00000083\",\"msgid\":31,\"mode\":1,\"channel\":178,\"interval\":2,\"deliverystart\":\"2017-06-01T17:47:11-05:00\",\"deliverystop\":\"2018-01-01T17:47:11-05:15\",\"enable\":1,\"status\":4}},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeMsgPayload\",\"serialId\":{\"streamId\":\"59651ecc-240c-4440-9011-4a43c926817b\",\"bundleSize\":1,\"bundleId\":0,\"recordId\":0,\"serialNumber\":0},\"odeReceivedAt\":\"2018-11-16T19:21:22.568Z\",\"schemaVersion\":8,\"recordGeneratedAt\":\"2017-03-13T06:07:11Z\",\"recordGeneratedBy\":\"TMC\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.plugin.j2735.OdeTravelerInformationMessage\",\"data\":{\"msgCnt\":13,\"timeStamp\":\"2017-03-13T01:07:11-05:00\",\"packetID\":\"EC9C236B0000000000\",\"urlB\":\"null\",\"dataframes\":[{\"doNotUse1\":0,\"frameType\":\"advisory\",\"msgId\":{\"roadSignID\":{\"position\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"viewAngle\":\"1010101010101010\",\"mutcdCode\":\"warning\",\"crc\":\"0000000000000000\"},\"furtherInfoID\":null},\"startDateTime\":\"2017-12-01T17:47:11-05:00\",\"durationTime\":22,\"priority\":0,\"doNotUse2\":0,\"regions\":[{\"name\":\"bob\",\"regulatorID\":23,\"segmentID\":33,\"anchorPosition\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"laneWidth\":7,\"directionality\":3,\"closedPath\":false,\"direction\":\"1010101010101010\",\"description\":\"geometry\",\"path\":null,\"geometry\":{\"direction\":\"1010101010101010\",\"extent\":1,\"laneWidth\":33,\"circle\":{\"position\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"radius\":15,\"units\":7}},\"oldRegion\":null}],\"doNotUse4\":0,\"doNotUse3\":0,\"content\":\"Advisory\",\"items\":[\"125\",\"some text\",\"250\",\"\\u002798765\"],\"url\":\"null\"}],\"asnDataFrames\":null}}}"); assertEquals( - "{\"metadata\":{\"request\":{\"ode\":{\"version\":3,\"verb\":\"POST\"},\"sdw\":null,\"rsus\":[{\"rsuTarget\":\"127.0.0.1\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"*\",\"rsuRetries\":0,\"rsuTimeout\":2000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.2\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"*\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.3\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"*\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10}],\"snmp\":{\"rsuid\":\"00000083\",\"msgid\":31,\"mode\":1,\"channel\":178,\"interval\":2,\"deliverystart\":\"2017-06-01T17:47:11-05:00\",\"deliverystop\":\"2018-01-01T17:47:11-05:15\",\"enable\":1,\"status\":4}},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeMsgPayload\",\"serialId\":{\"streamId\":\"59651ecc-240c-4440-9011-4a43c926817b\",\"bundleSize\":1,\"bundleId\":0,\"recordId\":0,\"serialNumber\":0},\"odeReceivedAt\":\"2018-11-16T19:21:22.568Z\",\"schemaVersion\":6,\"recordGeneratedAt\":\"2017-03-13T06:07:11Z\",\"recordGeneratedBy\":\"TMC\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.plugin.j2735.OdeTravelerInformationMessage\",\"data\":{\"msgCnt\":13,\"timeStamp\":\"2017-03-13T01:07:11-05:00\",\"packetID\":\"EC9C236B0000000000\",\"urlB\":\"null\",\"dataframes\":[{\"doNotUse1\":0,\"frameType\":\"advisory\",\"msgId\":{\"roadSignID\":{\"position\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"viewAngle\":\"1010101010101010\",\"mutcdCode\":\"warning\",\"crc\":\"0000000000000000\"},\"furtherInfoID\":null},\"startDateTime\":\"2017-12-01T17:47:11-05:00\",\"durationTime\":22,\"priority\":0,\"doNotUse2\":0,\"regions\":[{\"name\":\"bob\",\"regulatorID\":23,\"segmentID\":33,\"anchorPosition\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"laneWidth\":7,\"directionality\":3,\"closedPath\":false,\"direction\":\"1010101010101010\",\"description\":\"geometry\",\"path\":null,\"geometry\":{\"direction\":\"1010101010101010\",\"extent\":1,\"laneWidth\":33,\"circle\":{\"position\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"radius\":15,\"units\":7}},\"oldRegion\":null}],\"doNotUse4\":0,\"doNotUse3\":0,\"content\":\"Advisory\",\"items\":[\"125\",\"some text\",\"250\",\"\\u002798765\"],\"url\":\"null\"}],\"asnDataFrames\":null}}}", + "{\"metadata\":{\"request\":{\"ode\":{\"version\":3,\"verb\":\"POST\"},\"sdw\":null,\"rsus\":[{\"rsuTarget\":\"127.0.0.1\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"*\",\"rsuRetries\":0,\"rsuTimeout\":2000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.2\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"*\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.3\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"*\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10}],\"snmp\":{\"rsuid\":\"00000083\",\"msgid\":31,\"mode\":1,\"channel\":178,\"interval\":2,\"deliverystart\":\"2017-06-01T17:47:11-05:00\",\"deliverystop\":\"2018-01-01T17:47:11-05:15\",\"enable\":1,\"status\":4}},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeMsgPayload\",\"serialId\":{\"streamId\":\"59651ecc-240c-4440-9011-4a43c926817b\",\"bundleSize\":1,\"bundleId\":0,\"recordId\":0,\"serialNumber\":0},\"odeReceivedAt\":\"2018-11-16T19:21:22.568Z\",\"schemaVersion\":8,\"recordGeneratedAt\":\"2017-03-13T06:07:11Z\",\"recordGeneratedBy\":\"TMC\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.plugin.j2735.OdeTravelerInformationMessage\",\"data\":{\"msgCnt\":13,\"timeStamp\":\"2017-03-13T01:07:11-05:00\",\"packetID\":\"EC9C236B0000000000\",\"urlB\":\"null\",\"dataframes\":[{\"doNotUse1\":0,\"frameType\":\"advisory\",\"msgId\":{\"roadSignID\":{\"position\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"viewAngle\":\"1010101010101010\",\"mutcdCode\":\"warning\",\"crc\":\"0000000000000000\"},\"furtherInfoID\":null},\"startDateTime\":\"2017-12-01T17:47:11-05:00\",\"durationTime\":22,\"priority\":0,\"doNotUse2\":0,\"regions\":[{\"name\":\"bob\",\"regulatorID\":23,\"segmentID\":33,\"anchorPosition\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"laneWidth\":7,\"directionality\":3,\"closedPath\":false,\"direction\":\"1010101010101010\",\"description\":\"geometry\",\"path\":null,\"geometry\":{\"direction\":\"1010101010101010\",\"extent\":1,\"laneWidth\":33,\"circle\":{\"position\":{\"latitude\":41.678473,\"longitude\":-108.782775,\"elevation\":917.1432},\"radius\":15,\"units\":7}},\"oldRegion\":null}],\"doNotUse4\":0,\"doNotUse3\":0,\"content\":\"Advisory\",\"items\":[\"125\",\"some text\",\"250\",\"\\u002798765\"],\"url\":\"null\"}],\"asnDataFrames\":null}}}", actual); } @@ -384,7 +384,7 @@ private OdeRequestMsgMetadata prepareMetadata(OdeTravelerInputData odeTID, Seria timMetadata.setRecordGeneratedBy(OdeMsgMetadata.GeneratedBy.TMC); timMetadata.setRecordGeneratedAt( DateTimeUtils.isoDateTime(DateTimeUtils.isoDateTime(tim.getTimeStamp()))); - timMetadata.setSchemaVersion(7); + timMetadata.setSchemaVersion(8); return timMetadata; } diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/udp/map/MapReceiverTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/udp/map/MapReceiverTest.java index 182c76f1d..f96ae538a 100644 --- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/udp/map/MapReceiverTest.java +++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/udp/map/MapReceiverTest.java @@ -77,7 +77,6 @@ void testMapReceiver() throws IOException { // This is necessary because the schema version is set in only one of the OdeMsgMetadata constructors (this should be fixed) // and the schema version is set to the static schema version in the constructor. This means that the schema version // will be set to 6 for all OdeMsgMetadata objects created in the MapReceiver run method's code path. - OdeMsgMetadata.setStaticSchemaVersion(7); MapReceiver mapReceiver = new MapReceiver(udpReceiverProperties.getMap(), kafkaTemplate, rawEncodedJsonTopics.getMap()); diff --git a/jpo-ode-svcs/src/test/resources/application.yaml b/jpo-ode-svcs/src/test/resources/application.yaml index 5bc494032..8555b75dd 100644 --- a/jpo-ode-svcs/src/test/resources/application.yaml +++ b/jpo-ode-svcs/src/test/resources/application.yaml @@ -18,7 +18,6 @@ spring: admin: auto-create: false ode: - output-schema-version: 7 security-services: host-ip: "test-host" port: 1234 diff --git a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_JSON_J2735-2024.json b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_JSON_J2735-2024.json index 2e4aa13c6..bdb7550b0 100644 --- a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_JSON_J2735-2024.json +++ b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_JSON_J2735-2024.json @@ -1 +1 @@ -{"metadata":{"logFileName":"","recordType":"timMsg","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeTimPayload","serialId":{"streamId":"8af76b08-89bf-422e-b674-0f0ee065666f","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-06T10:39:42.806Z","schemaVersion":7,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001F830A752544F94F4354455420535452124C16B4FA27D64F431A94AC28F232828FF05260B5CA82DDFB227A687CA09CFDE87C4B0ED1C8800280204A865BB2C265D1E4F5D3A877C07F8093FC3D820142C4EB15C7AC09CE3356F45A90200118358186A148D3F13220B227C18569099E2D1232A28B5F2579208E479151D45D438BEFF80DB0C08CED3F45A50103103102088C1A44A152889AFA7F62218940E831C20F35EA1232777BF31146022C71408809E5EB7BA1D52835D8A040D83367520C4AB397658B07E21393A041060D049E825C15FCF56AFF05260B58E40024126EDBD550F6D519709FDE4CF880201602008CEE4ACA5DE274975513846DD7AD77F839305AD383175AA8A497954C284E668FFE4F0710D80802810030EAC2535BCD6AE047899B1CE75405C8E6936419C672A85F8900C50B428CA3188CA4E1101B485DEE47349B20CE339542FC5654852A1484C9C0A0B6DEBB81DB91CD26C8338CE550BF31188B6041101F08134A407147800DFCF8E5FE0A4C16B2BF3A3A253269429B3B8198F71B71F8C902002C008005DD1174A86649950714134C54C82F4C0012B9C982D69B5BEADBF1C99BEFD660C6A4200201A7A1ECCA540B60B0AA27F8093AC4BF831472A28ECD2E0203575E8F15F5000818817507D68CC505CF4497E8219CA2288A03C81503120AEB852B7507D68CC505CF4497E2121346A090E8061520293D37841E41530E9BF4214E93C326CF8502830F0C081FF9D71FE064C1BAA780A12351A24D300B6FD25F085703880101600022BE028AC1105C1D5CB0F0E001A42F7F849305AD3E9B408EB43464DC861E6234918C8667857300022C400087E511D765E294CF3507435289D7EBBC2849A4982D69F494982D524C16B4FA36827A1D6C31DFDBE55A627F819307EA49F19AA77C773D119EA690CE094883E0100588001E1832A00950E876B85589726EF3EDFE0E4C16B4F8EB0ECDE8A23F3F9E839831CE316170D2000858080178162BF959EDACD55B2CD3721A1EDFE064C1AEC1B3F02442FEC92E119DFAF82D6EC3884002C0004A9FEDD617613A307F791C6D74FB1A27C451F6139305AD394982D582367260B5A600","originIp":"172.18.0.1"},"payload":{"data":{"msgCnt":82,"timeStamp":345337,"packetID":"4F4354455420535452","urlB":"IA5St","dataFrames":[{"doNotUse1":0,"frameType":"commercialSignage","msgId":{"furtherInfoID":"4F43"},"startYear":425,"startTime":306216,"durationTime":31001,"priority":2,"doNotUse2":0,"regions":[{"name":"IA5","id":{"region":38149,"id":48118},"anchor":{"lat":-567387419,"long":-1717691068,"elevation":53848},"laneWidth":15175,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":true,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor50000meters","area":{"circle":{"center":{"lat":-686654332,"long":1616508908,"elevation":38736},"radius":3832,"units":"centimeter"}}}}},{"name":"I","id":{"region":64573,"id":33281},"anchor":{"lat":-714161321,"long":-1285139143,"elevation":48475},"laneWidth":26805,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"path":{"scale":1,"offset":{"ll":{"nodes":[{"delta":{"node-LL4":{"lon":-127947,"lat":-120550}},"attributes":{"localNode":["downstreamStopLine","closedToTraffic"],"disabled":["adjacentParkingOnLeft","transitStopOnLeft","parallelParking","mergingLaneLeft","curbOnLeft"],"enabled":["midBlockCurbPresent","transitStopInLane","taperToCenterLine","lowCurbsPresent"],"data":[{"laneAngle":101},{"laneAngle":62},{"speedLimits":[{"type":"truckMaxSpeed","speed":5822},{"type":"truckNightMaxSpeed","speed":3017}]},{"pathEndPointAngle":-8},{"laneCrownPointLeft":35}],"dWidth":162,"dElevation":424}},{"delta":{"node-LatLon":{"lon":-998896073,"lat":735850714}},"attributes":{"localNode":["hydrantPresent","safeIsland","closedToTraffic","stopLine","reserved"],"disabled":["loadingzoneOnRight","adjacentParkingOnRight","headInParking"],"enabled":["costToPark","mergingLaneLeft","midBlockCurbPresent","unEvenPavementPresent","curbOnLeft"],"data":[{"speedLimits":[{"type":"maxSpeedInSchoolZoneWhenChildrenArePresent","speed":3453},{"type":"truckMinSpeed","speed":7876}]},{"speedLimits":[{"type":"truckMinSpeed","speed":2097}]},{"laneAngle":-82}],"dWidth":264,"dElevation":-269}},{"delta":{"node-LL4":{"lon":86161,"lat":20207}},"attributes":{"localNode":["roundedCapStyleA","divergePoint","roundedCapStyleB","reserved"],"disabled":["adjacentParkingOnLeft","adjacentBikeLaneOnRight"],"enabled":["headInParking","timeRestrictionsOnParking"],"data":[{"laneCrownPointCenter":-68}],"dWidth":245,"dElevation":247}},{"delta":{"node-LL1":{"lon":-172,"lat":525}},"attributes":{"localNode":["closedToTraffic","roundedCapStyleA"],"disabled":["partialCurbIntrusion"],"enabled":["adaptiveTimingPresent"],"dWidth":206,"dElevation":144}},{"delta":{"node-LL5":{"lon":-873243,"lat":1464496}},"attributes":{"localNode":["stopLine","downstreamStartNode"],"disabled":["taperToRight","doNotBlock"],"enabled":["bikeBoxInFront"],"data":[{"pathEndPointAngle":58},{"pathEndPointAngle":1},{"pathEndPointAngle":25},{"laneAngle":137}],"dWidth":414,"dElevation":181}}]}}}}},{"name":"IA5","id":{"region":7296,"id":1154},"anchor":{"lat":29950376,"long":270580409,"elevation":16367},"laneWidth":4926,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor10000meters","laneWidth":26482,"circle":{"center":{"lat":598135630,"long":664850545,"elevation":32186},"radius":3930,"units":"mile"}}}},{"name":"IA5S","id":{"region":1582,"id":46417},"anchor":{"lat":-283655839,"long":-685153664,"elevation":57976},"laneWidth":7235,"directionality":"forward","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":true,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor1000meters","area":{"shapePointSet":{"anchor":{"lat":581272185,"long":1108489970,"elevation":9059},"laneWidth":20085,"directionality":"forward","nodeList":{"nodes":[{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["mergePoint","reserved"],"disabled":["turnOutPointOnRight","adjacentParkingOnLeft","freeParking","costToPark"],"enabled":["costToPark","adjacentParkingOnRight"],"data":[{"laneCrownPointRight":-87},{"laneCrownPointRight":4},{"laneAngle":-167}],"dWidth":144,"dElevation":239}},{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["hydrantPresent","divergePoint"],"disabled":["freeParking","unEvenPavementPresent"],"enabled":["freeParking","adaptiveTimingPresent","taperToLeft"],"data":[{"speedLimits":[{"type":"vehiclesWithTrailersMaxSpeed","speed":3517}]}],"dWidth":-36,"dElevation":-453}},{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["roundedCapStyleA","downstreamStopLine","mergePoint","hydrantPresent"],"disabled":["doNotBlock","whiteLine","bikeBoxInFront","sharedBikeLane"],"enabled":["bikeBoxInFront","transitStopInLane","unEvenPavementPresent","adjacentBikeLaneOnRight"],"data":[{"laneAngle":60},{"pathEndPointAngle":-95}],"dWidth":463,"dElevation":57}}]}}}}}},{"name":"IA5","id":{"region":11251,"id":41890},"anchor":{"lat":385181606,"long":1670812734,"elevation":46812},"laneWidth":16153,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useInstantlyOnly","laneWidth":6004,"circle":{"center":{"lat":-509239964,"long":772185922,"elevation":9413},"radius":1224,"units":"cm2-5"}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"exitService":[{"item":{"itis":599}}]},"url":"IA5S"},{"doNotUse1":0,"frameType":"commercialSignage","msgId":{"roadSignID":{"position":{"lat":634998835,"long":313588249,"elevation":50308},"viewAngle":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"mutcdCode":"maintenance","crc":"4F43"}},"startYear":3481,"startTime":305174,"durationTime":24752,"priority":5,"doNotUse2":0,"regions":[{"name":"I","id":{"region":44107,"id":63537},"anchor":{"lat":-419185997,"long":-533287210,"elevation":51107},"laneWidth":25278,"directionality":"reverse","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":true,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"path":{"scale":8,"offset":{"ll":{"nodes":[{"delta":{"node-LatLon":{"lon":900792217,"lat":448269129}},"attributes":{"localNode":["roundedCapStyleA","roundedCapStyleB","downstreamStartNode","divergePoint"],"disabled":["timeRestrictionsOnParking","sharedWithTrackedVehicle"],"enabled":["taperToCenterLine"],"data":[{"pathEndPointAngle":18},{"pathEndPointAngle":24},{"laneCrownPointCenter":9}],"dWidth":225,"dElevation":-213}},{"delta":{"node-LatLon":{"lon":900792217,"lat":448269129}},"attributes":{"localNode":["stopLine","mergePoint"],"disabled":["rfSignalRequestPresent"],"enabled":["turnOutPointOnLeft","loadingzoneOnLeft","headInParking","adjacentParkingOnRight","safeIsland"],"data":[{"pathEndPointAngle":-109},{"laneCrownPointRight":83}],"dWidth":-31,"dElevation":-482}},{"delta":{"node-LL1":{"lon":-1370,"lat":-1581}},"attributes":{"localNode":["mergePoint","divergePoint","downstreamStartNode","safeIsland"],"disabled":["adaptiveTimingPresent","partialCurbIntrusion","parallelParking","curbOnLeft","doNotBlock"],"enabled":["curbOnRight","sharedBikeLane"],"data":[{"laneCrownPointLeft":-121}],"dWidth":505,"dElevation":348}}]}}}}},{"name":"IA","id":{"region":30031,"id":322},"anchor":{"lat":-454547095,"long":353479827,"elevation":59458},"laneWidth":23566,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":true,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":true,"from337-5to360-0degrees":false},"extent":"useFor10meters","laneWidth":24321,"circle":{"center":{"lat":-539150408,"long":-814772254,"elevation":45059},"radius":1157,"units":"mile"}}}},{"name":"IA5St","id":{"region":46088,"id":60227},"anchor":{"lat":-476956537,"long":759386724,"elevation":4505},"laneWidth":28846,"directionality":"forward","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":true,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":true,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor100meters","laneWidth":8084,"circle":{"center":{"lat":-405703383,"long":-508985739,"elevation":9512},"radius":2519,"units":"mile"}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"exitService":[{"item":{"text":"I"}},{"item":{"text":"IA5St"}},{"item":{"text":"IA5"}}]},"url":"IA5St"},{"doNotUse1":0,"frameType":"unknown","msgId":{"furtherInfoID":"4F43"},"startYear":2776,"startTime":408571,"durationTime":15957,"priority":5,"doNotUse2":0,"regions":[{"name":"IA","id":{"region":62756,"id":63693},"anchor":{"lat":424936826,"long":-1208779998,"elevation":35858},"laneWidth":18563,"directionality":"both","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":true,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":true,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor5000meters","laneWidth":17158,"circle":{"center":{"lat":442482548,"long":-804103995,"elevation":43319},"radius":1951,"units":"meter"}}}},{"name":"IA5S","id":{"region":51032,"id":30319},"anchor":{"lat":-559743245,"long":1697199162,"elevation":46636},"laneWidth":5901,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":true,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor500meters","laneWidth":28716,"circle":{"center":{"lat":707126893,"long":-77527193,"elevation":35728},"radius":3343,"units":"meter"}}}},{"name":"IA","id":{"region":23939,"id":26592},"anchor":{"lat":-328004279,"long":88284632,"elevation":45419},"laneWidth":15118,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":true,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":true,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor50000meters","area":{"circle":{"center":{"lat":171361070,"long":1462406911,"elevation":57912},"radius":3502,"units":"kilometer"}}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"speedLimit":[{"item":{"itis":40721}},{"item":{"itis":36784}},{"item":{"text":"IA5S"}},{"item":{"text":"IA5"}},{"item":{"itis":49435}}]},"url":"IA5S"}]},"dataType":"us.dot.its.jpo.ode.plugin.j2735.travelerinformation.TravelerInformation"}} \ No newline at end of file +{"metadata":{"logFileName":"","recordType":"timMsg","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeTimPayload","serialId":{"streamId":"8af76b08-89bf-422e-b674-0f0ee065666f","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-06T10:39:42.806Z","schemaVersion":8,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001F830A752544F94F4354455420535452124C16B4FA27D64F431A94AC28F232828FF05260B5CA82DDFB227A687CA09CFDE87C4B0ED1C8800280204A865BB2C265D1E4F5D3A877C07F8093FC3D820142C4EB15C7AC09CE3356F45A90200118358186A148D3F13220B227C18569099E2D1232A28B5F2579208E479151D45D438BEFF80DB0C08CED3F45A50103103102088C1A44A152889AFA7F62218940E831C20F35EA1232777BF31146022C71408809E5EB7BA1D52835D8A040D83367520C4AB397658B07E21393A041060D049E825C15FCF56AFF05260B58E40024126EDBD550F6D519709FDE4CF880201602008CEE4ACA5DE274975513846DD7AD77F839305AD383175AA8A497954C284E668FFE4F0710D80802810030EAC2535BCD6AE047899B1CE75405C8E6936419C672A85F8900C50B428CA3188CA4E1101B485DEE47349B20CE339542FC5654852A1484C9C0A0B6DEBB81DB91CD26C8338CE550BF31188B6041101F08134A407147800DFCF8E5FE0A4C16B2BF3A3A253269429B3B8198F71B71F8C902002C008005DD1174A86649950714134C54C82F4C0012B9C982D69B5BEADBF1C99BEFD660C6A4200201A7A1ECCA540B60B0AA27F8093AC4BF831472A28ECD2E0203575E8F15F5000818817507D68CC505CF4497E8219CA2288A03C81503120AEB852B7507D68CC505CF4497E2121346A090E8061520293D37841E41530E9BF4214E93C326CF8502830F0C081FF9D71FE064C1BAA780A12351A24D300B6FD25F085703880101600022BE028AC1105C1D5CB0F0E001A42F7F849305AD3E9B408EB43464DC861E6234918C8667857300022C400087E511D765E294CF3507435289D7EBBC2849A4982D69F494982D524C16B4FA36827A1D6C31DFDBE55A627F819307EA49F19AA77C773D119EA690CE094883E0100588001E1832A00950E876B85589726EF3EDFE0E4C16B4F8EB0ECDE8A23F3F9E839831CE316170D2000858080178162BF959EDACD55B2CD3721A1EDFE064C1AEC1B3F02442FEC92E119DFAF82D6EC3884002C0004A9FEDD617613A307F791C6D74FB1A27C451F6139305AD394982D582367260B5A600","originIp":"172.18.0.1"},"payload":{"data":{"msgCnt":82,"timeStamp":345337,"packetID":"4F4354455420535452","urlB":"IA5St","dataFrames":[{"doNotUse1":0,"frameType":"commercialSignage","msgId":{"furtherInfoID":"4F43"},"startYear":425,"startTime":306216,"durationTime":31001,"priority":2,"doNotUse2":0,"regions":[{"name":"IA5","id":{"region":38149,"id":48118},"anchor":{"lat":-567387419,"long":-1717691068,"elevation":53848},"laneWidth":15175,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":true,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor50000meters","area":{"circle":{"center":{"lat":-686654332,"long":1616508908,"elevation":38736},"radius":3832,"units":"centimeter"}}}}},{"name":"I","id":{"region":64573,"id":33281},"anchor":{"lat":-714161321,"long":-1285139143,"elevation":48475},"laneWidth":26805,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"path":{"scale":1,"offset":{"ll":{"nodes":[{"delta":{"node-LL4":{"lon":-127947,"lat":-120550}},"attributes":{"localNode":["downstreamStopLine","closedToTraffic"],"disabled":["adjacentParkingOnLeft","transitStopOnLeft","parallelParking","mergingLaneLeft","curbOnLeft"],"enabled":["midBlockCurbPresent","transitStopInLane","taperToCenterLine","lowCurbsPresent"],"data":[{"laneAngle":101},{"laneAngle":62},{"speedLimits":[{"type":"truckMaxSpeed","speed":5822},{"type":"truckNightMaxSpeed","speed":3017}]},{"pathEndPointAngle":-8},{"laneCrownPointLeft":35}],"dWidth":162,"dElevation":424}},{"delta":{"node-LatLon":{"lon":-998896073,"lat":735850714}},"attributes":{"localNode":["hydrantPresent","safeIsland","closedToTraffic","stopLine","reserved"],"disabled":["loadingzoneOnRight","adjacentParkingOnRight","headInParking"],"enabled":["costToPark","mergingLaneLeft","midBlockCurbPresent","unEvenPavementPresent","curbOnLeft"],"data":[{"speedLimits":[{"type":"maxSpeedInSchoolZoneWhenChildrenArePresent","speed":3453},{"type":"truckMinSpeed","speed":7876}]},{"speedLimits":[{"type":"truckMinSpeed","speed":2097}]},{"laneAngle":-82}],"dWidth":264,"dElevation":-269}},{"delta":{"node-LL4":{"lon":86161,"lat":20207}},"attributes":{"localNode":["roundedCapStyleA","divergePoint","roundedCapStyleB","reserved"],"disabled":["adjacentParkingOnLeft","adjacentBikeLaneOnRight"],"enabled":["headInParking","timeRestrictionsOnParking"],"data":[{"laneCrownPointCenter":-68}],"dWidth":245,"dElevation":247}},{"delta":{"node-LL1":{"lon":-172,"lat":525}},"attributes":{"localNode":["closedToTraffic","roundedCapStyleA"],"disabled":["partialCurbIntrusion"],"enabled":["adaptiveTimingPresent"],"dWidth":206,"dElevation":144}},{"delta":{"node-LL5":{"lon":-873243,"lat":1464496}},"attributes":{"localNode":["stopLine","downstreamStartNode"],"disabled":["taperToRight","doNotBlock"],"enabled":["bikeBoxInFront"],"data":[{"pathEndPointAngle":58},{"pathEndPointAngle":1},{"pathEndPointAngle":25},{"laneAngle":137}],"dWidth":414,"dElevation":181}}]}}}}},{"name":"IA5","id":{"region":7296,"id":1154},"anchor":{"lat":29950376,"long":270580409,"elevation":16367},"laneWidth":4926,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor10000meters","laneWidth":26482,"circle":{"center":{"lat":598135630,"long":664850545,"elevation":32186},"radius":3930,"units":"mile"}}}},{"name":"IA5S","id":{"region":1582,"id":46417},"anchor":{"lat":-283655839,"long":-685153664,"elevation":57976},"laneWidth":7235,"directionality":"forward","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":true,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor1000meters","area":{"shapePointSet":{"anchor":{"lat":581272185,"long":1108489970,"elevation":9059},"laneWidth":20085,"directionality":"forward","nodeList":{"nodes":[{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["mergePoint","reserved"],"disabled":["turnOutPointOnRight","adjacentParkingOnLeft","freeParking","costToPark"],"enabled":["costToPark","adjacentParkingOnRight"],"data":[{"laneCrownPointRight":-87},{"laneCrownPointRight":4},{"laneAngle":-167}],"dWidth":144,"dElevation":239}},{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["hydrantPresent","divergePoint"],"disabled":["freeParking","unEvenPavementPresent"],"enabled":["freeParking","adaptiveTimingPresent","taperToLeft"],"data":[{"speedLimits":[{"type":"vehiclesWithTrailersMaxSpeed","speed":3517}]}],"dWidth":-36,"dElevation":-453}},{"delta":{"node-LatLon":{"lon":-605370079,"lat":829743521}},"attributes":{"localNode":["roundedCapStyleA","downstreamStopLine","mergePoint","hydrantPresent"],"disabled":["doNotBlock","whiteLine","bikeBoxInFront","sharedBikeLane"],"enabled":["bikeBoxInFront","transitStopInLane","unEvenPavementPresent","adjacentBikeLaneOnRight"],"data":[{"laneAngle":60},{"pathEndPointAngle":-95}],"dWidth":463,"dElevation":57}}]}}}}}},{"name":"IA5","id":{"region":11251,"id":41890},"anchor":{"lat":385181606,"long":1670812734,"elevation":46812},"laneWidth":16153,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useInstantlyOnly","laneWidth":6004,"circle":{"center":{"lat":-509239964,"long":772185922,"elevation":9413},"radius":1224,"units":"cm2-5"}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"exitService":[{"item":{"itis":599}}]},"url":"IA5S"},{"doNotUse1":0,"frameType":"commercialSignage","msgId":{"roadSignID":{"position":{"lat":634998835,"long":313588249,"elevation":50308},"viewAngle":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":true,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"mutcdCode":"maintenance","crc":"4F43"}},"startYear":3481,"startTime":305174,"durationTime":24752,"priority":5,"doNotUse2":0,"regions":[{"name":"I","id":{"region":44107,"id":63537},"anchor":{"lat":-419185997,"long":-533287210,"elevation":51107},"laneWidth":25278,"directionality":"reverse","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":true,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"path":{"scale":8,"offset":{"ll":{"nodes":[{"delta":{"node-LatLon":{"lon":900792217,"lat":448269129}},"attributes":{"localNode":["roundedCapStyleA","roundedCapStyleB","downstreamStartNode","divergePoint"],"disabled":["timeRestrictionsOnParking","sharedWithTrackedVehicle"],"enabled":["taperToCenterLine"],"data":[{"pathEndPointAngle":18},{"pathEndPointAngle":24},{"laneCrownPointCenter":9}],"dWidth":225,"dElevation":-213}},{"delta":{"node-LatLon":{"lon":900792217,"lat":448269129}},"attributes":{"localNode":["stopLine","mergePoint"],"disabled":["rfSignalRequestPresent"],"enabled":["turnOutPointOnLeft","loadingzoneOnLeft","headInParking","adjacentParkingOnRight","safeIsland"],"data":[{"pathEndPointAngle":-109},{"laneCrownPointRight":83}],"dWidth":-31,"dElevation":-482}},{"delta":{"node-LL1":{"lon":-1370,"lat":-1581}},"attributes":{"localNode":["mergePoint","divergePoint","downstreamStartNode","safeIsland"],"disabled":["adaptiveTimingPresent","partialCurbIntrusion","parallelParking","curbOnLeft","doNotBlock"],"enabled":["curbOnRight","sharedBikeLane"],"data":[{"laneCrownPointLeft":-121}],"dWidth":505,"dElevation":348}}]}}}}},{"name":"IA","id":{"region":30031,"id":322},"anchor":{"lat":-454547095,"long":353479827,"elevation":59458},"laneWidth":23566,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":true,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":true,"from337-5to360-0degrees":false},"extent":"useFor10meters","laneWidth":24321,"circle":{"center":{"lat":-539150408,"long":-814772254,"elevation":45059},"radius":1157,"units":"mile"}}}},{"name":"IA5St","id":{"region":46088,"id":60227},"anchor":{"lat":-476956537,"long":759386724,"elevation":4505},"laneWidth":28846,"directionality":"forward","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":true,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":true,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor100meters","laneWidth":8084,"circle":{"center":{"lat":-405703383,"long":-508985739,"elevation":9512},"radius":2519,"units":"mile"}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"exitService":[{"item":{"text":"I"}},{"item":{"text":"IA5St"}},{"item":{"text":"IA5"}}]},"url":"IA5St"},{"doNotUse1":0,"frameType":"unknown","msgId":{"furtherInfoID":"4F43"},"startYear":2776,"startTime":408571,"durationTime":15957,"priority":5,"doNotUse2":0,"regions":[{"name":"IA","id":{"region":62756,"id":63693},"anchor":{"lat":424936826,"long":-1208779998,"elevation":35858},"laneWidth":18563,"directionality":"both","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":true,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":true,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor5000meters","laneWidth":17158,"circle":{"center":{"lat":442482548,"long":-804103995,"elevation":43319},"radius":1951,"units":"meter"}}}},{"name":"IA5S","id":{"region":51032,"id":30319},"anchor":{"lat":-559743245,"long":1697199162,"elevation":46636},"laneWidth":5901,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":true,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"geometry":{"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":true,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor500meters","laneWidth":28716,"circle":{"center":{"lat":707126893,"long":-77527193,"elevation":35728},"radius":3343,"units":"meter"}}}},{"name":"IA","id":{"region":23939,"id":26592},"anchor":{"lat":-328004279,"long":88284632,"elevation":45419},"laneWidth":15118,"directionality":"unavailable","closedPath":true,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":true,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"oldRegion":{"direction":{"from000-0to022-5degrees":true,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":false,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"extent":"useFor50000meters","area":{"circle":{"center":{"lat":171361070,"long":1462406911,"elevation":57912},"radius":3502,"units":"kilometer"}}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"speedLimit":[{"item":{"itis":40721}},{"item":{"itis":36784}},{"item":{"text":"IA5S"}},{"item":{"text":"IA5"}},{"item":{"itis":49435}}]},"url":"IA5S"}]},"dataType":"us.dot.its.jpo.ode.plugin.j2735.travelerinformation.TravelerInformation"}} \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2016.xml b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2016.xml index 5da854712..ea1f346b7 100644 --- a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2016.xml +++ b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2016.xml @@ -21,7 +21,7 @@ 0 2024-12-06T10:39:42.806Z - 7 + 8 0 RSU diff --git a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2020.xml b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2020.xml index ff42e1084..af79564bd 100644 --- a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2020.xml +++ b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2020.xml @@ -21,7 +21,7 @@ 0 2024-12-06T10:39:42.806Z - 7 + 8 0 RSU diff --git a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2024.xml b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2024.xml index 2599c66ac..06ffec352 100644 --- a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2024.xml +++ b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER_J2735-2024.xml @@ -21,7 +21,7 @@ 0 2024-12-06T10:39:42.806Z - 7 + 8 0 RSU diff --git a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/Asn1DecoderRouter_ApprovalTestCases_MapJson.json b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/Asn1DecoderRouter_ApprovalTestCases_MapJson.json index 7a1d7564c..8dc07157e 100644 --- a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/Asn1DecoderRouter_ApprovalTestCases_MapJson.json +++ b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/Asn1DecoderRouter_ApprovalTestCases_MapJson.json @@ -2,7 +2,7 @@ "cases": [ { "description": "Test Case 1 - MapJson", - "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload85100a89-9411-4bc3-828c-9c398aa829a510002024-11-08T21:38:24.144Z70RSUfalse001283B0380230002044C4094D3E99B42CC5EE1D542002DC36582D280000070001B6152DE2A00A0A6C18DBA4901414D80A776F202851AFEB2F114050535E9B183380A1425832000400A42E00020226400582F280000020002960FB1E175B0440F23605053604DDE30C0A146C03CBCF981414D7F5378AC02829AF820D4B4050A35F51DC7F809F60582A000180960C4A000000800065827078266C18DBA6601428D80CF777C02851AFD9EEB40050A15E7297D5016088000602582B080000010002362769E2E80A0A2BF423E15B60819D2480A146C011BD5281414D7F5F781D02829AFAB6E53C050500C5080004B0729000000200046BCBA39F101428D78FB8260027D9ADD9EFD3804F1356B81FFA40A0A2B1DD401395DE15FFE8063440002583748000001000035E84DD3E00A0A2BD3EC13300C64800044066C800000006B2B02B1E8141457F3C80A1101AB200000001ACC76AEDA050515FCC60298B00C5000000800042BEB43E70B5C8EDF6D809F62BB393F8FB5DB49FDD809F66AF94BFF70141455EBF80110588C00010096008A0000010000657DED7A216BB7D3F2E81414D71C27E52027B1AAEA4FEE2050535652E002809F60589C00010096010A0000010000657D557B672B9403EE735DA55FBF409F62AAD73FBB156D92009C162500004022022C40000000161809FB60B01FB007E2024C4000000016194DF58CB021300B82026C40000000161B75EF75B01FB00A0050508041100000000D77238659027B0AFD92FF8E200E44000000035DDA2143409EC2BF593FE088031100000000D77C48392027B0AFD1EFF8E200A44000000035DFE208D009EC2BF4ABFDD88021100000000D784980C5027B0AFD14FF605812680000010000B5E54A294409EC2BF30C3FD15FB9A081056104000802B0720004022C0A3400000080005AF557153604FB35F872204409F62BFB5410802C188001008402D0800000006BEDAC57E813EC57FBB80EB2C0C540000028000DB0411120C04FB162FE20A0DB2DA106F205051637FE0591B1A03019E05050AC220001804216400581AA8000004000136094E1EA009F62C91141BFB64D660B1C0A0A6CBF2C102014140B0780006012C0E5400000200015B05310CA804FB16382A0A95B1BF3047C05051625EE04D4B12A701EC5898A80AC6C25D4028014140B0680006012C0F540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.30MessageFrame182088022395948212-104883094617442366229100000000000000000001110000000001355-188010795-292610167-231820-167-191010-1428-79862060100000000008111100000000000819001000000000239100000000000000000000100000000001004-1955544-176510311-185320121-154910-173-187610-1008-554220-697-3586-1050100000000003124910000000000000000000010000000000624-2010795-286820207-218020-305-265620-1590-8364401000000000031218100000000000000000000010000000002522-186210-380-981518-29262035-137110-161-201910-677-342610200010000000001281010000000000000000000001000000000-1676-310220-1797608-10-4401-356-30-9504-2310-723839-2171-6260010000000001271010000000000000000000001000000000-1517-282410-1411614250010000000001251101000000000000000000-6816-1069110-196161261101000000000000000000-6597-1038710-2071663110000000000000000000100000000000-664-799-3525-586-10-2446-225-2350-138-10-8407-1810-85131717100000000000211110000000000000000000100000000000-531-1503-2310-41910-3646-430-20-10414-14310-990910-1019100000000000212110000000000000000000100000000000-683-1177-3456-562-2411-259-10-10834-138-9372391810000000000021176010000000000000000001538-29625363186010000000000000000001619-66926592196010000000000000000001757-105925380108201000000000000000000-22691625-20-311-577201000000000000000000-22001293-20-334-636201000000000000000000-2108914-20-369-575201000000000000000000-2056564-20-363-694201000000000000000000-1975197-20-374-809310000000000000000000001000000000-17102641-20-4152042-28251680010000000004170010000000004210310000000000000000000001000000000-13652715-10-4842065-10-15052860010000000004211401000000000000000000-5872813-10-69235125100000000000000000001010000000005202310-103064643584088910358335633292071081000000000006111001000000000135100000000000000000001000000000005951960-104642895495371110611751610710000000000061145100000000000000000001000000000006641620-10359467735775741024273092387246244217212108010610000000000061155100000000000000000001000000000007321263-1059211073103617476242224036312511051000000000006116510000000000000000000100000000000800894358368347357233617384362524910410000000000061207010000000000000000008335-2221024223", + "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload85100a89-9411-4bc3-828c-9c398aa829a510002024-11-08T21:38:24.144Z80RSUfalse001283B0380230002044C4094D3E99B42CC5EE1D542002DC36582D280000070001B6152DE2A00A0A6C18DBA4901414D80A776F202851AFEB2F114050535E9B183380A1425832000400A42E00020226400582F280000020002960FB1E175B0440F23605053604DDE30C0A146C03CBCF981414D7F5378AC02829AF820D4B4050A35F51DC7F809F60582A000180960C4A000000800065827078266C18DBA6601428D80CF777C02851AFD9EEB40050A15E7297D5016088000602582B080000010002362769E2E80A0A2BF423E15B60819D2480A146C011BD5281414D7F5F781D02829AFAB6E53C050500C5080004B0729000000200046BCBA39F101428D78FB8260027D9ADD9EFD3804F1356B81FFA40A0A2B1DD401395DE15FFE8063440002583748000001000035E84DD3E00A0A2BD3EC13300C64800044066C800000006B2B02B1E8141457F3C80A1101AB200000001ACC76AEDA050515FCC60298B00C5000000800042BEB43E70B5C8EDF6D809F62BB393F8FB5DB49FDD809F66AF94BFF70141455EBF80110588C00010096008A0000010000657DED7A216BB7D3F2E81414D71C27E52027B1AAEA4FEE2050535652E002809F60589C00010096010A0000010000657D557B672B9403EE735DA55FBF409F62AAD73FBB156D92009C162500004022022C40000000161809FB60B01FB007E2024C4000000016194DF58CB021300B82026C40000000161B75EF75B01FB00A0050508041100000000D77238659027B0AFD92FF8E200E44000000035DDA2143409EC2BF593FE088031100000000D77C48392027B0AFD1EFF8E200A44000000035DFE208D009EC2BF4ABFDD88021100000000D784980C5027B0AFD14FF605812680000010000B5E54A294409EC2BF30C3FD15FB9A081056104000802B0720004022C0A3400000080005AF557153604FB35F872204409F62BFB5410802C188001008402D0800000006BEDAC57E813EC57FBB80EB2C0C540000028000DB0411120C04FB162FE20A0DB2DA106F205051637FE0591B1A03019E05050AC220001804216400581AA8000004000136094E1EA009F62C91141BFB64D660B1C0A0A6CBF2C102014140B0780006012C0E5400000200015B05310CA804FB16382A0A95B1BF3047C05051625EE04D4B12A701EC5898A80AC6C25D4028014140B0680006012C0F540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.30MessageFrame182088022395948212-104883094617442366229100000000000000000001110000000001355-188010795-292610167-231820-167-191010-1428-79862060100000000008111100000000000819001000000000239100000000000000000000100000000001004-1955544-176510311-185320121-154910-173-187610-1008-554220-697-3586-1050100000000003124910000000000000000000010000000000624-2010795-286820207-218020-305-265620-1590-8364401000000000031218100000000000000000000010000000002522-186210-380-981518-29262035-137110-161-201910-677-342610200010000000001281010000000000000000000001000000000-1676-310220-1797608-10-4401-356-30-9504-2310-723839-2171-6260010000000001271010000000000000000000001000000000-1517-282410-1411614250010000000001251101000000000000000000-6816-1069110-196161261101000000000000000000-6597-1038710-2071663110000000000000000000100000000000-664-799-3525-586-10-2446-225-2350-138-10-8407-1810-85131717100000000000211110000000000000000000100000000000-531-1503-2310-41910-3646-430-20-10414-14310-990910-1019100000000000212110000000000000000000100000000000-683-1177-3456-562-2411-259-10-10834-138-9372391810000000000021176010000000000000000001538-29625363186010000000000000000001619-66926592196010000000000000000001757-105925380108201000000000000000000-22691625-20-311-577201000000000000000000-22001293-20-334-636201000000000000000000-2108914-20-369-575201000000000000000000-2056564-20-363-694201000000000000000000-1975197-20-374-809310000000000000000000001000000000-17102641-20-4152042-28251680010000000004170010000000004210310000000000000000000001000000000-13652715-10-4842065-10-15052860010000000004211401000000000000000000-5872813-10-69235125100000000000000000001010000000005202310-103064643584088910358335633292071081000000000006111001000000000135100000000000000000001000000000005951960-104642895495371110611751610710000000000061145100000000000000000001000000000006641620-10359467735775741024273092387246244217212108010610000000000061155100000000000000000001000000000007321263-1059211073103617476242224036312511051000000000006116510000000000000000000100000000000800894358368347357233617384362524910410000000000061207010000000000000000008335-2221024223", "expected": { "metadata": { "logFileName": "", @@ -20,7 +20,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T21:38:24.144Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "RSU", @@ -2825,7 +2825,7 @@ }, { "description": "Test Case 2 - MapJson", - "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadcfc309e0-bcf6-4834-9178-4600d4998b3710002024-11-08T22:01:11.230Z70RSUfalse001283DA380330002044CA0D4D3EA2D42CC86AFB534E02DC3E5820A80000040000961C7612C5BB250FFDE04DD37663DFFA409D80583C0003009608AA000001000025872783416EC83BFEC81374DD9A67FFA02760160D0000C025824A80000040000961CBE0715BB2AB001004DD3765B5FFD009D80582C0003009609AA00000080000D8A308047027D9B520F000004E202C790000404B0515000000400006C5123F70013ECDA5E1800602710163A8000202581EA80000010000361C5E17DC0A0A6DF8040130134C230E2400118690001080AB100000000D877C7CB4027D8B039AFFF4202CC40000000361DF1ED2C09EC2C0EC3FFD080BB100000000D875379C5027B0B03F70000203B04000000035F791D70C09EC2C003BF72880F4100000000D7C8875B5027B0B0000FDCA203F04000000035EBB1D60C09EC2C003BF8416100A00000040000D77D77844027D9AA845002C052308C7C9000463C40004580228000004000095DFB9E6C9A509AFFA80546349C75FFC80A46058BC00010096010A00000100002578077AD8693C9C00E8152CD27B7802E028F0162D00004025806280000040000B5E049F1E00A0A693B8C00181518D28018012028F0162B00004025808280000020000B5DA09FE540A0A6ACB53FFA81450D772E7DD402828561AA000A02B0E400050210052200000001AF0DB0352050A15FBC6000040188800000006BC42418C0142857ED47FFA10072200000001AF1150904050A15FB9A000040208800000006BC4AC2F00142857EE080002C0A3400000200019AFB5D1346050A35FFA6177C0A0A2BFE64464B5FD921F600A0A6BF14443981428D7CF6891302851AF5E11142050A35EED218340A0A058EC00020096049A0000004000ED7C1B896902851AFFE90DCE050535FE5E2E3C0A0A6BFB3C26781414D7E5C883402829AF9911096050A35F57A14CC0A142BE86C25D35F2F610940A0A218412000AC7A000100C60E40004581668000002000135FB8226D80A146BFF1C7C401414D7F3C878202829AFB531352050A02C590001C04B030D000000400036C00BC4E681428D801789A302828AFF8D0F76D7F0E877C02829AFC950CA4050502C554001C0440350800000006C0DD44F88142858000814D100E4200000001B06A713CA050536000205480A0A2C197400000200001B079CED3004F135FF1113200A3205874000400960D3A00000100000D8234765D027B1AFFF08A14051402C360002004B06DD000000400006C0653B22013D8D800A4518028A0160C80006025838E8000002000035FDB1D84C09EC6C003BA14814140B0540003012C187400000080011B13F6EDB804F115FA6DFC10AFC94FC6A57EE07DCE2BFA7BED3B5FFCD72E80A1E018C90000800RSU10.11.81.33MessageFrame183088053395950548-104866790817232366165100000000000000000001000000000001821120122824-17-7022927-23-4071000000000006117510000000000000000000100000000000183183322791-39-7022950-6-40610000000000061185100000000000000000001000000000001839453228698-7022893-12-4051000000000006119510000000000000000000010000000000260871-10105030-603001000000000011205100000000000000000000100000000002596-288-1096976-6029010000000000111551000000000000000000000100000000018151527101612838-90140010010000001130010000000002216010000000000000000001916-844-10461-6226010000000000000000001916-1205-20472-6236010000000000000000001875-1595-20507029801000000000000000000-540-2621-207-28330801000000000000000000-888-2635-200-28331801000000000000000000-1300-2685-207-24832110000000000000000000001000000000-2089-1980-10-1123022703100100100000013000100000000021110000000000000000000100000000000-2066-1614-22451-44140-22755-147023100000000000212110000000000000000000100000000000-2041-1320-2263729150-22601466022100000000000213110000000000000000000100000000000-2030-90410-226713140-22527186021100000000000214110000000000000000000010000000000-2430-10710-9878-1140-2258-55610130101000000005114010000000000525201000000000000000000-193942520-27106201000000000000000000-191679220-300-67201000000000000000000-1910115420-28208201000000000000000000-1899150420-288010310000000000000000000100000000000-594246720-23150310-522249-156200810-472216320-778232320-1296220920-110015491029100000000000419310000000000000000000001000000000-997240920-12176710-105295910-153123110-420210010-824212320-674133120-7551210-8351061108001001000000130100000000000437001000000000211310000000000000000000010000000000-288248620-29397610-196192210-5992473202201000000000071123100000000000000000000100000000002325092023246710-581979-242191610-43816181021010100000000711340100000000000000000044225452003331440100000000000000000085125331003381025710000000000000000000100000000000974-2408-30-60-1516050141000000000008126710000000000000000000100000000000564-2467-20-8-1509440131000000000008127710000000000000000000010000000000202-2492-2010-150804060100000000003128710000000000000000000010000000000-148-2541-207-303110501000000000031247100000000000000000000010000000002555-2340-30-357-252-438-459-288-562-177-601-13-903030250010000000001", + "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadcfc309e0-bcf6-4834-9178-4600d4998b3710002024-11-08T22:01:11.230Z80RSUfalse001283DA380330002044CA0D4D3EA2D42CC86AFB534E02DC3E5820A80000040000961C7612C5BB250FFDE04DD37663DFFA409D80583C0003009608AA000001000025872783416EC83BFEC81374DD9A67FFA02760160D0000C025824A80000040000961CBE0715BB2AB001004DD3765B5FFD009D80582C0003009609AA00000080000D8A308047027D9B520F000004E202C790000404B0515000000400006C5123F70013ECDA5E1800602710163A8000202581EA80000010000361C5E17DC0A0A6DF8040130134C230E2400118690001080AB100000000D877C7CB4027D8B039AFFF4202CC40000000361DF1ED2C09EC2C0EC3FFD080BB100000000D875379C5027B0B03F70000203B04000000035F791D70C09EC2C003BF72880F4100000000D7C8875B5027B0B0000FDCA203F04000000035EBB1D60C09EC2C003BF8416100A00000040000D77D77844027D9AA845002C052308C7C9000463C40004580228000004000095DFB9E6C9A509AFFA80546349C75FFC80A46058BC00010096010A00000100002578077AD8693C9C00E8152CD27B7802E028F0162D00004025806280000040000B5E049F1E00A0A693B8C00181518D28018012028F0162B00004025808280000020000B5DA09FE540A0A6ACB53FFA81450D772E7DD402828561AA000A02B0E400050210052200000001AF0DB0352050A15FBC6000040188800000006BC42418C0142857ED47FFA10072200000001AF1150904050A15FB9A000040208800000006BC4AC2F00142857EE080002C0A3400000200019AFB5D1346050A35FFA6177C0A0A2BFE64464B5FD921F600A0A6BF14443981428D7CF6891302851AF5E11142050A35EED218340A0A058EC00020096049A0000004000ED7C1B896902851AFFE90DCE050535FE5E2E3C0A0A6BFB3C26781414D7E5C883402829AF9911096050A35F57A14CC0A142BE86C25D35F2F610940A0A218412000AC7A000100C60E40004581668000002000135FB8226D80A146BFF1C7C401414D7F3C878202829AFB531352050A02C590001C04B030D000000400036C00BC4E681428D801789A302828AFF8D0F76D7F0E877C02829AFC950CA4050502C554001C0440350800000006C0DD44F88142858000814D100E4200000001B06A713CA050536000205480A0A2C197400000200001B079CED3004F135FF1113200A3205874000400960D3A00000100000D8234765D027B1AFFF08A14051402C360002004B06DD000000400006C0653B22013D8D800A4518028A0160C80006025838E8000002000035FDB1D84C09EC6C003BA14814140B0540003012C187400000080011B13F6EDB804F115FA6DFC10AFC94FC6A57EE07DCE2BFA7BED3B5FFCD72E80A1E018C90000800RSU10.11.81.33MessageFrame183088053395950548-104866790817232366165100000000000000000001000000000001821120122824-17-7022927-23-4071000000000006117510000000000000000000100000000000183183322791-39-7022950-6-40610000000000061185100000000000000000001000000000001839453228698-7022893-12-4051000000000006119510000000000000000000010000000000260871-10105030-603001000000000011205100000000000000000000100000000002596-288-1096976-6029010000000000111551000000000000000000000100000000018151527101612838-90140010010000001130010000000002216010000000000000000001916-844-10461-6226010000000000000000001916-1205-20472-6236010000000000000000001875-1595-20507029801000000000000000000-540-2621-207-28330801000000000000000000-888-2635-200-28331801000000000000000000-1300-2685-207-24832110000000000000000000001000000000-2089-1980-10-1123022703100100100000013000100000000021110000000000000000000100000000000-2066-1614-22451-44140-22755-147023100000000000212110000000000000000000100000000000-2041-1320-2263729150-22601466022100000000000213110000000000000000000100000000000-2030-90410-226713140-22527186021100000000000214110000000000000000000010000000000-2430-10710-9878-1140-2258-55610130101000000005114010000000000525201000000000000000000-193942520-27106201000000000000000000-191679220-300-67201000000000000000000-1910115420-28208201000000000000000000-1899150420-288010310000000000000000000100000000000-594246720-23150310-522249-156200810-472216320-778232320-1296220920-110015491029100000000000419310000000000000000000001000000000-997240920-12176710-105295910-153123110-420210010-824212320-674133120-7551210-8351061108001001000000130100000000000437001000000000211310000000000000000000010000000000-288248620-29397610-196192210-5992473202201000000000071123100000000000000000000100000000002325092023246710-581979-242191610-43816181021010100000000711340100000000000000000044225452003331440100000000000000000085125331003381025710000000000000000000100000000000974-2408-30-60-1516050141000000000008126710000000000000000000100000000000564-2467-20-8-1509440131000000000008127710000000000000000000010000000000202-2492-2010-150804060100000000003128710000000000000000000010000000000-148-2541-207-303110501000000000031247100000000000000000000010000000002555-2340-30-357-252-438-459-288-562-177-601-13-903030250010000000001", "expected": { "metadata": { "logFileName": "", @@ -2843,7 +2843,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T22:01:11.230Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "RSU", @@ -5934,7 +5934,7 @@ }, { "description": "Test case 3 - MapJson", - "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload894cf226-1c88-4e93-8a44-4e2e619593e310002024-11-08T22:01:11.974Z70RSUfalse00128315380230002044D0094D3EA1DB2CCC713452F402DC325806280000040000B5DC45F6640A0A694423FFE01478D267B809B02788162500004025804280000040000B5DD2DF1180A0A69400C01581478D26BE802102788162700004025802280000050000B5DE71EA600A0A69346401281478D27C88052027889629000040231A2400218C9000196020A00000080002D7681808802829A58F9007E051E15E689FAFC5616A000A02B0C400050210052200000001AEC35053C050515FB9A000040188800000006BAFBC20981414D7EEC800002828401C8800000006BAE1C2BB01414D7EDA800B02828B020D000000200006BD19441381414D802398EB027D8460E48002306200022C093400000200001AF6F5103605053600FE640809F6058D400020096051A00000080000D7CC8880402829B008B323204FB0AC494001C056268000E0420168400000001603CA2058B000103682018840000000160A162058AFFE90368581AA80000050000B61E6E14B409F66EB433FE901428DD7357FAB0294086184800230B20002583C00030196072A00000100002D87F183EB027D9BAC18FFAC050A375D61FE5C0A50058340003009607AA00000100002D88148270027D9BAC1AFF98050A375C8DFEE00A500582C00030096082A00000080000D884D813A027D9BBC18FEEC050F02C690000404B0455000000400006C443BFD4813ECDCF047FBB028281632A0002022024C4000000036238DF5AC09F62C08D3FFD0809B100000000D89287BD4027D8B01CCFFF42028C40000000362545EA3409F62C0734000160B3A00000100008582B977ED2C003381A35FD4DDED40A0A2BFCC3E2FB5F7E9D5B00A0A6BDC63640814140B0C80008012C157400000080014B0882EFD057FE3784B2BFF7BAEFB5FD21E3800A0A2BF81BC9835FA55E3240A0A6BDC336710141423142400118990001160C3A0000008000057FF477D16BFE637C1014140B0550003012C177400000100010B029CEF9657FE96FD26BFD7BD3E8141457F1478066BF143BC101414D7BA86CF902828160C8000602203304000000035F719DE5C0A0A2BFFD3F6D880D4100000000D7BED779702828B0000FDCE813ECCEB0E00B027D858D0FEA2D0476B169636B0200800161F00010022041A400000000BE456B81904002043A400000000BE01114184C00013C457FD24A52058C40001008037263DFF780A146E023C005813EC0A0806012C1554000002000045FE580ADC92E801402829B81AEFFC804FB0281C1804B05950000008000117FBD42371E39FF980A0A6E132C01E813EC0A0606012C18540000010000C780E7B5B3CEA805C0A0A1F0122C8BDCBC0000A0A5F07223204FB028800404B05D5000000400001E02A202DA50180060282814420202000RSU10.11.81.36MessageFrame182088082395950299-1048404171171463663110000000000000000000100000000000-2287-61510-22396-460-22917155-3018100000000000212110000000000000000000100000000000-2229-95410-225274360-2285033-3019100000000000211110000000000000000000101000000000-2148-138410-229003760-2258482-3020100000000000212600100100000022500100000000034110000000000000000000010000000000-243113610-213806360-1630-321110101000000005112010000000000525201000000000000000000-253467010-28206201000000000000000000-2569104310-2760107201000000000000000000-2621139810-29411108310000000000000000000001000000000-1486208710356379-1070010010000001600100000000029310000000000000000000100000000000-1158207510636402-10261000000000004110310000000000000000000010000000000-824205210696425-10180101000000007119010000000000721140100000000000000000024220700436124010000000000000000006452070-124361351000000000000000000010100000000019471325-1022150-462022325-85801200100100000011100100000000027100000000000631451000000000000000000010000000000020331003-1022028-422022360-10580610000000000061155100000000000000000001000000000002068624-1022029-522022307-7280510000000000061165100000000000000000000100000000002125314-1024076-138302601000000000011175100000000000000000000100000000002183-87-1020228-69102501010000000011186010000000000000000002275-661-10282-6196010000000000000000002344-1068-10230-6206010000000000000000002385-1395-10230022710000000000000000000100000000000697-20676-4044-173-212310-104-929-518-270810-1140-4991101210000000000081217100000000000000000000010000000001089-2072-29-1973-17-2593-184-182410-253-1744-363-184710-1146-48941020001001000000119001000000000224710000000000000000000010000000000-12-2095-52-42221050101000000003123710000000000000000000010000000000334-2101-23-4142-81-141110-236-2042-472-217410-1112-48711060100000000003125801000000000000000000-570-215310-6-29326801000000000000000000-1043-2153100-281", + "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload894cf226-1c88-4e93-8a44-4e2e619593e310002024-11-08T22:01:11.974Z80RSUfalse00128315380230002044D0094D3EA1DB2CCC713452F402DC325806280000040000B5DC45F6640A0A694423FFE01478D267B809B02788162500004025804280000040000B5DD2DF1180A0A69400C01581478D26BE802102788162700004025802280000050000B5DE71EA600A0A69346401281478D27C88052027889629000040231A2400218C9000196020A00000080002D7681808802829A58F9007E051E15E689FAFC5616A000A02B0C400050210052200000001AEC35053C050515FB9A000040188800000006BAFBC20981414D7EEC800002828401C8800000006BAE1C2BB01414D7EDA800B02828B020D000000200006BD19441381414D802398EB027D8460E48002306200022C093400000200001AF6F5103605053600FE640809F6058D400020096051A00000080000D7CC8880402829B008B323204FB0AC494001C056268000E0420168400000001603CA2058B000103682018840000000160A162058AFFE90368581AA80000050000B61E6E14B409F66EB433FE901428DD7357FAB0294086184800230B20002583C00030196072A00000100002D87F183EB027D9BAC18FFAC050A375D61FE5C0A50058340003009607AA00000100002D88148270027D9BAC1AFF98050A375C8DFEE00A500582C00030096082A00000080000D884D813A027D9BBC18FEEC050F02C690000404B0455000000400006C443BFD4813ECDCF047FBB028281632A0002022024C4000000036238DF5AC09F62C08D3FFD0809B100000000D89287BD4027D8B01CCFFF42028C40000000362545EA3409F62C0734000160B3A00000100008582B977ED2C003381A35FD4DDED40A0A2BFCC3E2FB5F7E9D5B00A0A6BDC63640814140B0C80008012C157400000080014B0882EFD057FE3784B2BFF7BAEFB5FD21E3800A0A2BF81BC9835FA55E3240A0A6BDC336710141423142400118990001160C3A0000008000057FF477D16BFE637C1014140B0550003012C177400000100010B029CEF9657FE96FD26BFD7BD3E8141457F1478066BF143BC101414D7BA86CF902828160C8000602203304000000035F719DE5C0A0A2BFFD3F6D880D4100000000D7BED779702828B0000FDCE813ECCEB0E00B027D858D0FEA2D0476B169636B0200800161F00010022041A400000000BE456B81904002043A400000000BE01114184C00013C457FD24A52058C40001008037263DFF780A146E023C005813EC0A0806012C1554000002000045FE580ADC92E801402829B81AEFFC804FB0281C1804B05950000008000117FBD42371E39FF980A0A6E132C01E813EC0A0606012C18540000010000C780E7B5B3CEA805C0A0A1F0122C8BDCBC0000A0A5F07223204FB028800404B05D5000000400001E02A202DA50180060282814420202000RSU10.11.81.36MessageFrame182088082395950299-1048404171171463663110000000000000000000100000000000-2287-61510-22396-460-22917155-3018100000000000212110000000000000000000100000000000-2229-95410-225274360-2285033-3019100000000000211110000000000000000000101000000000-2148-138410-229003760-2258482-3020100000000000212600100100000022500100000000034110000000000000000000010000000000-243113610-213806360-1630-321110101000000005112010000000000525201000000000000000000-253467010-28206201000000000000000000-2569104310-2760107201000000000000000000-2621139810-29411108310000000000000000000001000000000-1486208710356379-1070010010000001600100000000029310000000000000000000100000000000-1158207510636402-10261000000000004110310000000000000000000010000000000-824205210696425-10180101000000007119010000000000721140100000000000000000024220700436124010000000000000000006452070-124361351000000000000000000010100000000019471325-1022150-462022325-85801200100100000011100100000000027100000000000631451000000000000000000010000000000020331003-1022028-422022360-10580610000000000061155100000000000000000001000000000002068624-1022029-522022307-7280510000000000061165100000000000000000000100000000002125314-1024076-138302601000000000011175100000000000000000000100000000002183-87-1020228-69102501010000000011186010000000000000000002275-661-10282-6196010000000000000000002344-1068-10230-6206010000000000000000002385-1395-10230022710000000000000000000100000000000697-20676-4044-173-212310-104-929-518-270810-1140-4991101210000000000081217100000000000000000000010000000001089-2072-29-1973-17-2593-184-182410-253-1744-363-184710-1146-48941020001001000000119001000000000224710000000000000000000010000000000-12-2095-52-42221050101000000003123710000000000000000000010000000000334-2101-23-4142-81-141110-236-2042-472-217410-1112-48711060100000000003125801000000000000000000-570-215310-6-29326801000000000000000000-1043-2153100-281", "expected": { "metadata": { "logFileName": "", @@ -5952,7 +5952,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T22:01:11.974Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "RSU", @@ -8493,7 +8493,7 @@ }, { "description": "Test case 4 - MapJson", - "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadd71ab23d-0f89-4847-abef-ea6ffe43995b10002024-11-08T22:01:12.973Z70RSUfalse0012830538023000205EA2094D3A3E202CA7783451FA02DC385824E8000002000089D7FA3C8FF96D5837A9E7A4163680002025822E80000020000A97DFAB40A0A6C00BD21D013EC3792FAD4163880002025820E80000040001A92E3AA00A0A6BFE6538C813ECC7FD3303027D9B01B5AC0004E235FE3698CC09E2058240003009607BA00000100006A32EEB6028298FFA7E6A04FB31FFDFEA809F66C0276FE601374C7D7F795027B0160B0000C0220270400000000A7FF8A4108E8220290400000000AE7B8BC106654582F6800000400008BB12D889D763ED6CD4D1F3D027B01617000100258316800000400010BADA8407C8F7F7B37CB7C0C09F65EF01F8E04FB02C2A0002004B066D0000004000117754649317D7F1C5F5AF8E0B0540003012C1AB4000001000045D8EF044D741F7C5E72E30C04FB02C110000C04406F08000000017372C9833182C4073080000000172BA0F033D800B07B90000002000117BA05905140476BFCD2EDD813D8031D200012C03140000010000451D42D0C808C5E8027D97035116813EC2B0A4000501485A000296010A000001000062A421736408A2E5813ECD802B5DAA027B1B00507F4404E736005D134009B00589C00010096008A000001000082BB615E6407E1FA013ECB806072409F66405040A013ECD806744FF02739AFFA48A8604D802C520000804B024D000000400015070BFA01414C2F6E02E0282866DD75682C4D0001C04B020D000000400005073B5901414C18BE01D0282816288000E02580E680000040001283196680A0A610C6FF481414338842B0258DFD82C6E0001004B018D0000008000250602268141443771FB058F7A150050508C8E05C1639000080220148400000002836E6FC0A0A0229030805A100000000A104B5C0282806D400202B240000000161566915810BFF2400A48000000008D5480C0F18AE4008480000000093B88680F4880203BA40000000134E16A301C4422581CC800000100012CF576F9028283793BFB201DED0C09F6241B7BB408C3480004218400201AA4000000030CE28E000A0A01B50008062900000000C33B621C0282805EBF400002000144016C02C36DDFFF0282984ACC1EE05052C36F0AC02828669D82DA8F821480A0A10F140002C8E0001004B03190000008000519FD190C43B2E0066108B08401428C342A0CE02828258A0604A6BE959AEE0E6050502C920001004B02D90000008000459FA164404FB30A8580A00A14619C306701414C32CE10E02829659081F814141029030164B000080200RSU10.11.81.19MessageFrame1820121132395662624-10508272111689936618710000000000000000000010000000000-1611679-145804-1732537270100000000001117710000000000000000000010000000000-521170910239274-10-2193765280100000000001116710000000000000000000100000000000-840170410-5210009-10-124867-1021822016-60-1159779-3041000000000006115710000000000000000000100000000000-1234171810-127989-10-38106-107824524-70-1616037-20510000000000061198010000000000000000005111577173212080100000000000000000092615831229823111000000000000000000010000000000017328666892-1495428-195-20111000000000008124111000000000000000000010000000000017185283215-176091-253-103008-57-10101000000000008125111000000000000000000001000000000017702014477-571965-575010000000000312611100000000000000000000100000000001735-1265584-1322507390-104010000000000312712010000000000000000001646-621305112812010000000000000000001623-99431703014100000000000000000000010000000001908-1870-472-953-102-8773-202900100000000013110000000000000000000010000000000234-168835-6680-1053-3539-1010010000000000511101000000000052110000000000000000000100000000000578-167769-6709-1043-8790-2040-16478-5023-15152-8019100000000000211110000000000000000000100000000000950-169863-7180-1012-3639-1040-6124-10103-15105-50-46-15037-8020100000000000219310000000000000000000010000000000-1823-1210-51574610-2339-33919010000000000718310000000000000000000010000000000-1817-33410-6609291020010000000000717310000000000000000000100000000000-1850-61410-6045-2310-2288172-669-527100000000000416310000000000000000000100000000000-1856-94710-4644-80-310616810-124523281000000000004110401000000000000000000-182944710-236611401000000000000000000-178886010-29402190100000000000000000013699302235055210000000000000000000-1195-1533-29-4254210000000000000000000-786-1510-23-4482913010000000000000000005345-13963921714610000000000000000000001000000000-2133178510484895296979-1021959921300100000000011200100000000013501000000000000000000-489489610-294012501000000000000000000-488354010-323-6", + "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadd71ab23d-0f89-4847-abef-ea6ffe43995b10002024-11-08T22:01:12.973Z80RSUfalse0012830538023000205EA2094D3A3E202CA7783451FA02DC385824E8000002000089D7FA3C8FF96D5837A9E7A4163680002025822E80000020000A97DFAB40A0A6C00BD21D013EC3792FAD4163880002025820E80000040001A92E3AA00A0A6BFE6538C813ECC7FD3303027D9B01B5AC0004E235FE3698CC09E2058240003009607BA00000100006A32EEB6028298FFA7E6A04FB31FFDFEA809F66C0276FE601374C7D7F795027B0160B0000C0220270400000000A7FF8A4108E8220290400000000AE7B8BC106654582F6800000400008BB12D889D763ED6CD4D1F3D027B01617000100258316800000400010BADA8407C8F7F7B37CB7C0C09F65EF01F8E04FB02C2A0002004B066D0000004000117754649317D7F1C5F5AF8E0B0540003012C1AB4000001000045D8EF044D741F7C5E72E30C04FB02C110000C04406F08000000017372C9833182C4073080000000172BA0F033D800B07B90000002000117BA05905140476BFCD2EDD813D8031D200012C03140000010000451D42D0C808C5E8027D97035116813EC2B0A4000501485A000296010A000001000062A421736408A2E5813ECD802B5DAA027B1B00507F4404E736005D134009B00589C00010096008A000001000082BB615E6407E1FA013ECB806072409F66405040A013ECD806744FF02739AFFA48A8604D802C520000804B024D000000400015070BFA01414C2F6E02E0282866DD75682C4D0001C04B020D000000400005073B5901414C18BE01D0282816288000E02580E680000040001283196680A0A610C6FF481414338842B0258DFD82C6E0001004B018D0000008000250602268141443771FB058F7A150050508C8E05C1639000080220148400000002836E6FC0A0A0229030805A100000000A104B5C0282806D400202B240000000161566915810BFF2400A48000000008D5480C0F18AE4008480000000093B88680F4880203BA40000000134E16A301C4422581CC800000100012CF576F9028283793BFB201DED0C09F6241B7BB408C3480004218400201AA4000000030CE28E000A0A01B50008062900000000C33B621C0282805EBF400002000144016C02C36DDFFF0282984ACC1EE05052C36F0AC02828669D82DA8F821480A0A10F140002C8E0001004B03190000008000519FD190C43B2E0066108B08401428C342A0CE02828258A0604A6BE959AEE0E6050502C920001004B02D90000008000459FA164404FB30A8580A00A14619C306701414C32CE10E02829659081F814141029030164B000080200RSU10.11.81.19MessageFrame1820121132395662624-10508272111689936618710000000000000000000010000000000-1611679-145804-1732537270100000000001117710000000000000000000010000000000-521170910239274-10-2193765280100000000001116710000000000000000000100000000000-840170410-5210009-10-124867-1021822016-60-1159779-3041000000000006115710000000000000000000100000000000-1234171810-127989-10-38106-107824524-70-1616037-20510000000000061198010000000000000000005111577173212080100000000000000000092615831229823111000000000000000000010000000000017328666892-1495428-195-20111000000000008124111000000000000000000010000000000017185283215-176091-253-103008-57-10101000000000008125111000000000000000000001000000000017702014477-571965-575010000000000312611100000000000000000000100000000001735-1265584-1322507390-104010000000000312712010000000000000000001646-621305112812010000000000000000001623-99431703014100000000000000000000010000000001908-1870-472-953-102-8773-202900100000000013110000000000000000000010000000000234-168835-6680-1053-3539-1010010000000000511101000000000052110000000000000000000100000000000578-167769-6709-1043-8790-2040-16478-5023-15152-8019100000000000211110000000000000000000100000000000950-169863-7180-1012-3639-1040-6124-10103-15105-50-46-15037-8020100000000000219310000000000000000000010000000000-1823-1210-51574610-2339-33919010000000000718310000000000000000000010000000000-1817-33410-6609291020010000000000717310000000000000000000100000000000-1850-61410-6045-2310-2288172-669-527100000000000416310000000000000000000100000000000-1856-94710-4644-80-310616810-124523281000000000004110401000000000000000000-182944710-236611401000000000000000000-178886010-29402190100000000000000000013699302235055210000000000000000000-1195-1533-29-4254210000000000000000000-786-1510-23-4482913010000000000000000005345-13963921714610000000000000000000001000000000-2133178510484895296979-1021959921300100000000011200100000000013501000000000000000000-489489610-294012501000000000000000000-488354010-323-6", "expected": { "metadata": { "logFileName": "", @@ -8511,7 +8511,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T22:01:12.973Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "RSU", @@ -11178,7 +11178,7 @@ }, { "description": "Test case 5 - MapJson", - "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload2c91e8d6-f917-4c82-96e4-9de0da3ddca710002024-11-08T22:01:11.319Z70RSUfalse0012834538023000205EA0094D3C71C12CA6CE5D527C02DC3458244800000400028CF6F61F62355F9101464B5AAE70C0A0A631B181A81428D6F27A48302829ADDE94A56050F35BD42952C09C4058340003009609920000010000A2128E4162EAD9980143CC566B6AF028798AF5EB7C050F11349EE19ADCEF4CCA050A35B9E29BE009CE0582C000300960A120000008000222DFE5B6303588D0143CB5AB683C0A0A058F2000080960A920000008000424D3E7162ECF8AF8143CC4C9F8D6028A16876F54814140B1D4000101101632000000014E83CC805050181D34405CC80000000546A74C01414061F5E101832000000015559DAE05050181CA8B06910000008000557F359801414BCCB40000A0A5F6BDEA8050533D307B6C0A1E27EA6FE0AFA9B073027D99945C26C04FB02C360002004B06D1000000800045E50A3E40505331437DAC0A0A6D098BF540143CBEE5BF780A0A67F5501A013ECCC9BA13C027D8161900010025822280000010401AC5437B1027D933B3360141495F5F840A0A62FEF8C581428B624E1CC0A142187100008C3C80008220400203AA400000000F926E6B066F00080F29000000003E45B0481CCC0C583EC800000100012F552960027D9500E77E04FB32AB0218809CE0D89092231E2000118E900011601B200000080002ABF4179027D9958E8EE004E20AE20254561A8000A02B0C40005022C0264000002000115B2C2BC04FB32ACF1F7809C4658F42A6813C4CAEB868F02761B281EA9E004DD364E2D53CC09C4058B40001009600B200000100008AF30177027D9967B06AA04E232A272BEC09E2652CE518813B0D953152C1026E9B2A82A47E04E202C5E0000804401DC8000000051E38FE013EC89FCCA027D84019C8000000052BB904013EC89A097027D84015C80000000538B109813EC0988B31004720000000151DC3EE04FB225C22C09F62C0A840000020000965B0781813D8D599C7FEF02789AB155007204F1356711FFBC09EC058EC0002009604C200000100002B336362809EC6A2FE40170139CD452D7FF502788163D0000802201B2400000002C80D40A027D8067C0020192400000002C825284027D905EC0004FB08085100000000C1AD65AC02788033C00201F4400000003068D912009E2011F0008075100000000C1A1E2F00278804ABF47A7C8195028280540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.20MessageFrame1820121122395806913-10508706921702536618210000000000000000000100000000000-21211567-3670797050-1195249910-1832414920-4313934710-4364951530-42729547-6061000000000006119210000000000000000000100000000000-17521601-2218491230-2662580730-2581556630-32557046-4489982920-44889976-5051000000000006120210000000000000000000010000000000-13131627-2022437830-1194257510300100000000001121210000000000000000000010000000000-8131649-2201444730-3289635840-1930375310290100000000001122301000000000000000000-191163610-12733323301000000000000000000212168810-12135024301000000000000000000684175110-1272982641000000000000000000010000000000020228161024540103503-172107472-293308019-633405115-104747310-101310000000000081274100000000000000000001000000000002370498104419-149108497-344303531-3410810652-104718316-10121000000000008117110000000000000000000001000001000-34231969-1023662010-26299310-2057449120-95121632014001000000000115001000000000216001000000000295010000000000000000003219-4053110305010000000000000000003211-10064096316100000000000000000000010000000002729-1696-107-1089-102736-6046-50393-95130001000000000129001000000000236100000000000000000000100000000001012-1671-102845-6288-60904-18991301000000000051120100000000005226100000000000000000001000000000001430-1698-102767-6178-603194-6835-302990-6513-405135-11024-705003-11021-60221000000000002116100000000000000000001000000000001840-1673-103318-7339-602599-5381-302407-5583-405425-11583-705441-11713-6023100000000000217701000000000000000000-1081-1540-10127-310-106701000000000000000000-649-1528-10104-361-105701000000000000000000-234-1517-1098-3334701000000000000000000238-1545-1092-373-1010810000000000000000000100000000000-2640-253-20-9828-17-30-1007057-30-9788-17-2029100000000000419810000000000000000000100000000000-2452-630-20-1485246-50-15059-11-30301000000000004113901000000000000000000-30661034-10-305012901000000000000000000-3054644-10-3230-10161001000000000000000000-64751452-30-4090151001000000000000000000-65151096-30-3690141001000000000000000000-6521752-30-363-6", + "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload2c91e8d6-f917-4c82-96e4-9de0da3ddca710002024-11-08T22:01:11.319Z80RSUfalse0012834538023000205EA0094D3C71C12CA6CE5D527C02DC3458244800000400028CF6F61F62355F9101464B5AAE70C0A0A631B181A81428D6F27A48302829ADDE94A56050F35BD42952C09C4058340003009609920000010000A2128E4162EAD9980143CC566B6AF028798AF5EB7C050F11349EE19ADCEF4CCA050A35B9E29BE009CE0582C000300960A120000008000222DFE5B6303588D0143CB5AB683C0A0A058F2000080960A920000008000424D3E7162ECF8AF8143CC4C9F8D6028A16876F54814140B1D4000101101632000000014E83CC805050181D34405CC80000000546A74C01414061F5E101832000000015559DAE05050181CA8B06910000008000557F359801414BCCB40000A0A5F6BDEA8050533D307B6C0A1E27EA6FE0AFA9B073027D99945C26C04FB02C360002004B06D1000000800045E50A3E40505331437DAC0A0A6D098BF540143CBEE5BF780A0A67F5501A013ECCC9BA13C027D8161900010025822280000010401AC5437B1027D933B3360141495F5F840A0A62FEF8C581428B624E1CC0A142187100008C3C80008220400203AA400000000F926E6B066F00080F29000000003E45B0481CCC0C583EC800000100012F552960027D9500E77E04FB32AB0218809CE0D89092231E2000118E900011601B200000080002ABF4179027D9958E8EE004E20AE20254561A8000A02B0C40005022C0264000002000115B2C2BC04FB32ACF1F7809C4658F42A6813C4CAEB868F02761B281EA9E004DD364E2D53CC09C4058B40001009600B200000100008AF30177027D9967B06AA04E232A272BEC09E2652CE518813B0D953152C1026E9B2A82A47E04E202C5E0000804401DC8000000051E38FE013EC89FCCA027D84019C8000000052BB904013EC89A097027D84015C80000000538B109813EC0988B31004720000000151DC3EE04FB225C22C09F62C0A840000020000965B0781813D8D599C7FEF02789AB155007204F1356711FFBC09EC058EC0002009604C200000100002B336362809EC6A2FE40170139CD452D7FF502788163D0000802201B2400000002C80D40A027D8067C0020192400000002C825284027D905EC0004FB08085100000000C1AD65AC02788033C00201F4400000003068D912009E2011F0008075100000000C1A1E2F00278804ABF47A7C8195028280540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.20MessageFrame1820121122395806913-10508706921702536618210000000000000000000100000000000-21211567-3670797050-1195249910-1832414920-4313934710-4364951530-42729547-6061000000000006119210000000000000000000100000000000-17521601-2218491230-2662580730-2581556630-32557046-4489982920-44889976-5051000000000006120210000000000000000000010000000000-13131627-2022437830-1194257510300100000000001121210000000000000000000010000000000-8131649-2201444730-3289635840-1930375310290100000000001122301000000000000000000-191163610-12733323301000000000000000000212168810-12135024301000000000000000000684175110-1272982641000000000000000000010000000000020228161024540103503-172107472-293308019-633405115-104747310-101310000000000081274100000000000000000001000000000002370498104419-149108497-344303531-3410810652-104718316-10121000000000008117110000000000000000000001000001000-34231969-1023662010-26299310-2057449120-95121632014001000000000115001000000000216001000000000295010000000000000000003219-4053110305010000000000000000003211-10064096316100000000000000000000010000000002729-1696-107-1089-102736-6046-50393-95130001000000000129001000000000236100000000000000000000100000000001012-1671-102845-6288-60904-18991301000000000051120100000000005226100000000000000000001000000000001430-1698-102767-6178-603194-6835-302990-6513-405135-11024-705003-11021-60221000000000002116100000000000000000001000000000001840-1673-103318-7339-602599-5381-302407-5583-405425-11583-705441-11713-6023100000000000217701000000000000000000-1081-1540-10127-310-106701000000000000000000-649-1528-10104-361-105701000000000000000000-234-1517-1098-3334701000000000000000000238-1545-1092-373-1010810000000000000000000100000000000-2640-253-20-9828-17-30-1007057-30-9788-17-2029100000000000419810000000000000000000100000000000-2452-630-20-1485246-50-15059-11-30301000000000004113901000000000000000000-30661034-10-305012901000000000000000000-3054644-10-3230-10161001000000000000000000-64751452-30-4090151001000000000000000000-65151096-30-3690141001000000000000000000-6521752-30-363-6", "expected": { "metadata": { "logFileName": "", @@ -11196,7 +11196,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T22:01:11.319Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "RSU", diff --git a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/Asn1DecoderRouter_ApprovalTestCases_MapTxPojo.json b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/Asn1DecoderRouter_ApprovalTestCases_MapTxPojo.json index e2e47cf4c..e94652678 100644 --- a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/Asn1DecoderRouter_ApprovalTestCases_MapTxPojo.json +++ b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/Asn1DecoderRouter_ApprovalTestCases_MapTxPojo.json @@ -2,7 +2,7 @@ "cases": [ { "description": "Test Case 1 - MapTxPojo", - "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload85100a89-9411-4bc3-828c-9c398aa829a510002024-11-08T21:38:24.144Z70RSUfalse001283B0380230002044C4094D3E99B42CC5EE1D542002DC36582D280000070001B6152DE2A00A0A6C18DBA4901414D80A776F202851AFEB2F114050535E9B183380A1425832000400A42E00020226400582F280000020002960FB1E175B0440F23605053604DDE30C0A146C03CBCF981414D7F5378AC02829AF820D4B4050A35F51DC7F809F60582A000180960C4A000000800065827078266C18DBA6601428D80CF777C02851AFD9EEB40050A15E7297D5016088000602582B080000010002362769E2E80A0A2BF423E15B60819D2480A146C011BD5281414D7F5F781D02829AFAB6E53C050500C5080004B0729000000200046BCBA39F101428D78FB8260027D9ADD9EFD3804F1356B81FFA40A0A2B1DD401395DE15FFE8063440002583748000001000035E84DD3E00A0A2BD3EC13300C64800044066C800000006B2B02B1E8141457F3C80A1101AB200000001ACC76AEDA050515FCC60298B00C5000000800042BEB43E70B5C8EDF6D809F62BB393F8FB5DB49FDD809F66AF94BFF70141455EBF80110588C00010096008A0000010000657DED7A216BB7D3F2E81414D71C27E52027B1AAEA4FEE2050535652E002809F60589C00010096010A0000010000657D557B672B9403EE735DA55FBF409F62AAD73FBB156D92009C162500004022022C40000000161809FB60B01FB007E2024C4000000016194DF58CB021300B82026C40000000161B75EF75B01FB00A0050508041100000000D77238659027B0AFD92FF8E200E44000000035DDA2143409EC2BF593FE088031100000000D77C48392027B0AFD1EFF8E200A44000000035DFE208D009EC2BF4ABFDD88021100000000D784980C5027B0AFD14FF605812680000010000B5E54A294409EC2BF30C3FD15FB9A081056104000802B0720004022C0A3400000080005AF557153604FB35F872204409F62BFB5410802C188001008402D0800000006BEDAC57E813EC57FBB80EB2C0C540000028000DB0411120C04FB162FE20A0DB2DA106F205051637FE0591B1A03019E05050AC220001804216400581AA8000004000136094E1EA009F62C91141BFB64D660B1C0A0A6CBF2C102014140B0780006012C0E5400000200015B05310CA804FB16382A0A95B1BF3047C05051625EE04D4B12A701EC5898A80AC6C25D4028014140B0680006012C0F540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.30MessageFrame182088022395948212-104883094617442366229100000000000000000001110000000001355-188010795-292610167-231820-167-191010-1428-79862060100000000008111100000000000819001000000000239100000000000000000000100000000001004-1955544-176510311-185320121-154910-173-187610-1008-554220-697-3586-1050100000000003124910000000000000000000010000000000624-2010795-286820207-218020-305-265620-1590-8364401000000000031218100000000000000000000010000000002522-186210-380-981518-29262035-137110-161-201910-677-342610200010000000001281010000000000000000000001000000000-1676-310220-1797608-10-4401-356-30-9504-2310-723839-2171-6260010000000001271010000000000000000000001000000000-1517-282410-1411614250010000000001251101000000000000000000-6816-1069110-196161261101000000000000000000-6597-1038710-2071663110000000000000000000100000000000-664-799-3525-586-10-2446-225-2350-138-10-8407-1810-85131717100000000000211110000000000000000000100000000000-531-1503-2310-41910-3646-430-20-10414-14310-990910-1019100000000000212110000000000000000000100000000000-683-1177-3456-562-2411-259-10-10834-138-9372391810000000000021176010000000000000000001538-29625363186010000000000000000001619-66926592196010000000000000000001757-105925380108201000000000000000000-22691625-20-311-577201000000000000000000-22001293-20-334-636201000000000000000000-2108914-20-369-575201000000000000000000-2056564-20-363-694201000000000000000000-1975197-20-374-809310000000000000000000001000000000-17102641-20-4152042-28251680010000000004170010000000004210310000000000000000000001000000000-13652715-10-4842065-10-15052860010000000004211401000000000000000000-5872813-10-69235125100000000000000000001010000000005202310-103064643584088910358335633292071081000000000006111001000000000135100000000000000000001000000000005951960-104642895495371110611751610710000000000061145100000000000000000001000000000006641620-10359467735775741024273092387246244217212108010610000000000061155100000000000000000001000000000007321263-1059211073103617476242224036312511051000000000006116510000000000000000000100000000000800894358368347357233617384362524910410000000000061207010000000000000000008335-2221024223", + "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload85100a89-9411-4bc3-828c-9c398aa829a510002024-11-08T21:38:24.144Z80RSUfalse001283B0380230002044C4094D3E99B42CC5EE1D542002DC36582D280000070001B6152DE2A00A0A6C18DBA4901414D80A776F202851AFEB2F114050535E9B183380A1425832000400A42E00020226400582F280000020002960FB1E175B0440F23605053604DDE30C0A146C03CBCF981414D7F5378AC02829AF820D4B4050A35F51DC7F809F60582A000180960C4A000000800065827078266C18DBA6601428D80CF777C02851AFD9EEB40050A15E7297D5016088000602582B080000010002362769E2E80A0A2BF423E15B60819D2480A146C011BD5281414D7F5F781D02829AFAB6E53C050500C5080004B0729000000200046BCBA39F101428D78FB8260027D9ADD9EFD3804F1356B81FFA40A0A2B1DD401395DE15FFE8063440002583748000001000035E84DD3E00A0A2BD3EC13300C64800044066C800000006B2B02B1E8141457F3C80A1101AB200000001ACC76AEDA050515FCC60298B00C5000000800042BEB43E70B5C8EDF6D809F62BB393F8FB5DB49FDD809F66AF94BFF70141455EBF80110588C00010096008A0000010000657DED7A216BB7D3F2E81414D71C27E52027B1AAEA4FEE2050535652E002809F60589C00010096010A0000010000657D557B672B9403EE735DA55FBF409F62AAD73FBB156D92009C162500004022022C40000000161809FB60B01FB007E2024C4000000016194DF58CB021300B82026C40000000161B75EF75B01FB00A0050508041100000000D77238659027B0AFD92FF8E200E44000000035DDA2143409EC2BF593FE088031100000000D77C48392027B0AFD1EFF8E200A44000000035DFE208D009EC2BF4ABFDD88021100000000D784980C5027B0AFD14FF605812680000010000B5E54A294409EC2BF30C3FD15FB9A081056104000802B0720004022C0A3400000080005AF557153604FB35F872204409F62BFB5410802C188001008402D0800000006BEDAC57E813EC57FBB80EB2C0C540000028000DB0411120C04FB162FE20A0DB2DA106F205051637FE0591B1A03019E05050AC220001804216400581AA8000004000136094E1EA009F62C91141BFB64D660B1C0A0A6CBF2C102014140B0780006012C0E5400000200015B05310CA804FB16382A0A95B1BF3047C05051625EE04D4B12A701EC5898A80AC6C25D4028014140B0680006012C0F540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.30MessageFrame182088022395948212-104883094617442366229100000000000000000001110000000001355-188010795-292610167-231820-167-191010-1428-79862060100000000008111100000000000819001000000000239100000000000000000000100000000001004-1955544-176510311-185320121-154910-173-187610-1008-554220-697-3586-1050100000000003124910000000000000000000010000000000624-2010795-286820207-218020-305-265620-1590-8364401000000000031218100000000000000000000010000000002522-186210-380-981518-29262035-137110-161-201910-677-342610200010000000001281010000000000000000000001000000000-1676-310220-1797608-10-4401-356-30-9504-2310-723839-2171-6260010000000001271010000000000000000000001000000000-1517-282410-1411614250010000000001251101000000000000000000-6816-1069110-196161261101000000000000000000-6597-1038710-2071663110000000000000000000100000000000-664-799-3525-586-10-2446-225-2350-138-10-8407-1810-85131717100000000000211110000000000000000000100000000000-531-1503-2310-41910-3646-430-20-10414-14310-990910-1019100000000000212110000000000000000000100000000000-683-1177-3456-562-2411-259-10-10834-138-9372391810000000000021176010000000000000000001538-29625363186010000000000000000001619-66926592196010000000000000000001757-105925380108201000000000000000000-22691625-20-311-577201000000000000000000-22001293-20-334-636201000000000000000000-2108914-20-369-575201000000000000000000-2056564-20-363-694201000000000000000000-1975197-20-374-809310000000000000000000001000000000-17102641-20-4152042-28251680010000000004170010000000004210310000000000000000000001000000000-13652715-10-4842065-10-15052860010000000004211401000000000000000000-5872813-10-69235125100000000000000000001010000000005202310-103064643584088910358335633292071081000000000006111001000000000135100000000000000000001000000000005951960-104642895495371110611751610710000000000061145100000000000000000001000000000006641620-10359467735775741024273092387246244217212108010610000000000061155100000000000000000001000000000007321263-1059211073103617476242224036312511051000000000006116510000000000000000000100000000000800894358368347357233617384362524910410000000000061207010000000000000000008335-2221024223", "expected": { "metadata": { "logFileName": "", @@ -20,7 +20,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T21:38:24.144Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "RSU", @@ -2825,7 +2825,7 @@ }, { "description": "Test Case 2 - MapTxPojo", - "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadcfc309e0-bcf6-4834-9178-4600d4998b3710002024-11-08T22:01:11.230Z70RSUfalse001283DA380330002044CA0D4D3EA2D42CC86AFB534E02DC3E5820A80000040000961C7612C5BB250FFDE04DD37663DFFA409D80583C0003009608AA000001000025872783416EC83BFEC81374DD9A67FFA02760160D0000C025824A80000040000961CBE0715BB2AB001004DD3765B5FFD009D80582C0003009609AA00000080000D8A308047027D9B520F000004E202C790000404B0515000000400006C5123F70013ECDA5E1800602710163A8000202581EA80000010000361C5E17DC0A0A6DF8040130134C230E2400118690001080AB100000000D877C7CB4027D8B039AFFF4202CC40000000361DF1ED2C09EC2C0EC3FFD080BB100000000D875379C5027B0B03F70000203B04000000035F791D70C09EC2C003BF72880F4100000000D7C8875B5027B0B0000FDCA203F04000000035EBB1D60C09EC2C003BF8416100A00000040000D77D77844027D9AA845002C052308C7C9000463C40004580228000004000095DFB9E6C9A509AFFA80546349C75FFC80A46058BC00010096010A00000100002578077AD8693C9C00E8152CD27B7802E028F0162D00004025806280000040000B5E049F1E00A0A693B8C00181518D28018012028F0162B00004025808280000020000B5DA09FE540A0A6ACB53FFA81450D772E7DD402828561AA000A02B0E400050210052200000001AF0DB0352050A15FBC6000040188800000006BC42418C0142857ED47FFA10072200000001AF1150904050A15FB9A000040208800000006BC4AC2F00142857EE080002C0A3400000200019AFB5D1346050A35FFA6177C0A0A2BFE64464B5FD921F600A0A6BF14443981428D7CF6891302851AF5E11142050A35EED218340A0A058EC00020096049A0000004000ED7C1B896902851AFFE90DCE050535FE5E2E3C0A0A6BFB3C26781414D7E5C883402829AF9911096050A35F57A14CC0A142BE86C25D35F2F610940A0A218412000AC7A000100C60E40004581668000002000135FB8226D80A146BFF1C7C401414D7F3C878202829AFB531352050A02C590001C04B030D000000400036C00BC4E681428D801789A302828AFF8D0F76D7F0E877C02829AFC950CA4050502C554001C0440350800000006C0DD44F88142858000814D100E4200000001B06A713CA050536000205480A0A2C197400000200001B079CED3004F135FF1113200A3205874000400960D3A00000100000D8234765D027B1AFFF08A14051402C360002004B06DD000000400006C0653B22013D8D800A4518028A0160C80006025838E8000002000035FDB1D84C09EC6C003BA14814140B0540003012C187400000080011B13F6EDB804F115FA6DFC10AFC94FC6A57EE07DCE2BFA7BED3B5FFCD72E80A1E018C90000800RSU10.11.81.33MessageFrame183088053395950548-104866790817232366165100000000000000000001000000000001821120122824-17-7022927-23-4071000000000006117510000000000000000000100000000000183183322791-39-7022950-6-40610000000000061185100000000000000000001000000000001839453228698-7022893-12-4051000000000006119510000000000000000000010000000000260871-10105030-603001000000000011205100000000000000000000100000000002596-288-1096976-6029010000000000111551000000000000000000000100000000018151527101612838-90140010010000001130010000000002216010000000000000000001916-844-10461-6226010000000000000000001916-1205-20472-6236010000000000000000001875-1595-20507029801000000000000000000-540-2621-207-28330801000000000000000000-888-2635-200-28331801000000000000000000-1300-2685-207-24832110000000000000000000001000000000-2089-1980-10-1123022703100100100000013000100000000021110000000000000000000100000000000-2066-1614-22451-44140-22755-147023100000000000212110000000000000000000100000000000-2041-1320-2263729150-22601466022100000000000213110000000000000000000100000000000-2030-90410-226713140-22527186021100000000000214110000000000000000000010000000000-2430-10710-9878-1140-2258-55610130101000000005114010000000000525201000000000000000000-193942520-27106201000000000000000000-191679220-300-67201000000000000000000-1910115420-28208201000000000000000000-1899150420-288010310000000000000000000100000000000-594246720-23150310-522249-156200810-472216320-778232320-1296220920-110015491029100000000000419310000000000000000000001000000000-997240920-12176710-105295910-153123110-420210010-824212320-674133120-7551210-8351061108001001000000130100000000000437001000000000211310000000000000000000010000000000-288248620-29397610-196192210-5992473202201000000000071123100000000000000000000100000000002325092023246710-581979-242191610-43816181021010100000000711340100000000000000000044225452003331440100000000000000000085125331003381025710000000000000000000100000000000974-2408-30-60-1516050141000000000008126710000000000000000000100000000000564-2467-20-8-1509440131000000000008127710000000000000000000010000000000202-2492-2010-150804060100000000003128710000000000000000000010000000000-148-2541-207-303110501000000000031247100000000000000000000010000000002555-2340-30-357-252-438-459-288-562-177-601-13-903030250010000000001", + "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadcfc309e0-bcf6-4834-9178-4600d4998b3710002024-11-08T22:01:11.230Z80RSUfalse001283DA380330002044CA0D4D3EA2D42CC86AFB534E02DC3E5820A80000040000961C7612C5BB250FFDE04DD37663DFFA409D80583C0003009608AA000001000025872783416EC83BFEC81374DD9A67FFA02760160D0000C025824A80000040000961CBE0715BB2AB001004DD3765B5FFD009D80582C0003009609AA00000080000D8A308047027D9B520F000004E202C790000404B0515000000400006C5123F70013ECDA5E1800602710163A8000202581EA80000010000361C5E17DC0A0A6DF8040130134C230E2400118690001080AB100000000D877C7CB4027D8B039AFFF4202CC40000000361DF1ED2C09EC2C0EC3FFD080BB100000000D875379C5027B0B03F70000203B04000000035F791D70C09EC2C003BF72880F4100000000D7C8875B5027B0B0000FDCA203F04000000035EBB1D60C09EC2C003BF8416100A00000040000D77D77844027D9AA845002C052308C7C9000463C40004580228000004000095DFB9E6C9A509AFFA80546349C75FFC80A46058BC00010096010A00000100002578077AD8693C9C00E8152CD27B7802E028F0162D00004025806280000040000B5E049F1E00A0A693B8C00181518D28018012028F0162B00004025808280000020000B5DA09FE540A0A6ACB53FFA81450D772E7DD402828561AA000A02B0E400050210052200000001AF0DB0352050A15FBC6000040188800000006BC42418C0142857ED47FFA10072200000001AF1150904050A15FB9A000040208800000006BC4AC2F00142857EE080002C0A3400000200019AFB5D1346050A35FFA6177C0A0A2BFE64464B5FD921F600A0A6BF14443981428D7CF6891302851AF5E11142050A35EED218340A0A058EC00020096049A0000004000ED7C1B896902851AFFE90DCE050535FE5E2E3C0A0A6BFB3C26781414D7E5C883402829AF9911096050A35F57A14CC0A142BE86C25D35F2F610940A0A218412000AC7A000100C60E40004581668000002000135FB8226D80A146BFF1C7C401414D7F3C878202829AFB531352050A02C590001C04B030D000000400036C00BC4E681428D801789A302828AFF8D0F76D7F0E877C02829AFC950CA4050502C554001C0440350800000006C0DD44F88142858000814D100E4200000001B06A713CA050536000205480A0A2C197400000200001B079CED3004F135FF1113200A3205874000400960D3A00000100000D8234765D027B1AFFF08A14051402C360002004B06DD000000400006C0653B22013D8D800A4518028A0160C80006025838E8000002000035FDB1D84C09EC6C003BA14814140B0540003012C187400000080011B13F6EDB804F115FA6DFC10AFC94FC6A57EE07DCE2BFA7BED3B5FFCD72E80A1E018C90000800RSU10.11.81.33MessageFrame183088053395950548-104866790817232366165100000000000000000001000000000001821120122824-17-7022927-23-4071000000000006117510000000000000000000100000000000183183322791-39-7022950-6-40610000000000061185100000000000000000001000000000001839453228698-7022893-12-4051000000000006119510000000000000000000010000000000260871-10105030-603001000000000011205100000000000000000000100000000002596-288-1096976-6029010000000000111551000000000000000000000100000000018151527101612838-90140010010000001130010000000002216010000000000000000001916-844-10461-6226010000000000000000001916-1205-20472-6236010000000000000000001875-1595-20507029801000000000000000000-540-2621-207-28330801000000000000000000-888-2635-200-28331801000000000000000000-1300-2685-207-24832110000000000000000000001000000000-2089-1980-10-1123022703100100100000013000100000000021110000000000000000000100000000000-2066-1614-22451-44140-22755-147023100000000000212110000000000000000000100000000000-2041-1320-2263729150-22601466022100000000000213110000000000000000000100000000000-2030-90410-226713140-22527186021100000000000214110000000000000000000010000000000-2430-10710-9878-1140-2258-55610130101000000005114010000000000525201000000000000000000-193942520-27106201000000000000000000-191679220-300-67201000000000000000000-1910115420-28208201000000000000000000-1899150420-288010310000000000000000000100000000000-594246720-23150310-522249-156200810-472216320-778232320-1296220920-110015491029100000000000419310000000000000000000001000000000-997240920-12176710-105295910-153123110-420210010-824212320-674133120-7551210-8351061108001001000000130100000000000437001000000000211310000000000000000000010000000000-288248620-29397610-196192210-5992473202201000000000071123100000000000000000000100000000002325092023246710-581979-242191610-43816181021010100000000711340100000000000000000044225452003331440100000000000000000085125331003381025710000000000000000000100000000000974-2408-30-60-1516050141000000000008126710000000000000000000100000000000564-2467-20-8-1509440131000000000008127710000000000000000000010000000000202-2492-2010-150804060100000000003128710000000000000000000010000000000-148-2541-207-303110501000000000031247100000000000000000000010000000002555-2340-30-357-252-438-459-288-562-177-601-13-903030250010000000001", "expected": { "metadata": { "logFileName": "", @@ -2843,7 +2843,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T22:01:11.230Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "RSU", @@ -5934,7 +5934,7 @@ }, { "description": "Test case 3 - MapTxPojo", - "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload894cf226-1c88-4e93-8a44-4e2e619593e310002024-11-08T22:01:11.974Z70RSUfalse00128315380230002044D0094D3EA1DB2CCC713452F402DC325806280000040000B5DC45F6640A0A694423FFE01478D267B809B02788162500004025804280000040000B5DD2DF1180A0A69400C01581478D26BE802102788162700004025802280000050000B5DE71EA600A0A69346401281478D27C88052027889629000040231A2400218C9000196020A00000080002D7681808802829A58F9007E051E15E689FAFC5616A000A02B0C400050210052200000001AEC35053C050515FB9A000040188800000006BAFBC20981414D7EEC800002828401C8800000006BAE1C2BB01414D7EDA800B02828B020D000000200006BD19441381414D802398EB027D8460E48002306200022C093400000200001AF6F5103605053600FE640809F6058D400020096051A00000080000D7CC8880402829B008B323204FB0AC494001C056268000E0420168400000001603CA2058B000103682018840000000160A162058AFFE90368581AA80000050000B61E6E14B409F66EB433FE901428DD7357FAB0294086184800230B20002583C00030196072A00000100002D87F183EB027D9BAC18FFAC050A375D61FE5C0A50058340003009607AA00000100002D88148270027D9BAC1AFF98050A375C8DFEE00A500582C00030096082A00000080000D884D813A027D9BBC18FEEC050F02C690000404B0455000000400006C443BFD4813ECDCF047FBB028281632A0002022024C4000000036238DF5AC09F62C08D3FFD0809B100000000D89287BD4027D8B01CCFFF42028C40000000362545EA3409F62C0734000160B3A00000100008582B977ED2C003381A35FD4DDED40A0A2BFCC3E2FB5F7E9D5B00A0A6BDC63640814140B0C80008012C157400000080014B0882EFD057FE3784B2BFF7BAEFB5FD21E3800A0A2BF81BC9835FA55E3240A0A6BDC336710141423142400118990001160C3A0000008000057FF477D16BFE637C1014140B0550003012C177400000100010B029CEF9657FE96FD26BFD7BD3E8141457F1478066BF143BC101414D7BA86CF902828160C8000602203304000000035F719DE5C0A0A2BFFD3F6D880D4100000000D7BED779702828B0000FDCE813ECCEB0E00B027D858D0FEA2D0476B169636B0200800161F00010022041A400000000BE456B81904002043A400000000BE01114184C00013C457FD24A52058C40001008037263DFF780A146E023C005813EC0A0806012C1554000002000045FE580ADC92E801402829B81AEFFC804FB0281C1804B05950000008000117FBD42371E39FF980A0A6E132C01E813EC0A0606012C18540000010000C780E7B5B3CEA805C0A0A1F0122C8BDCBC0000A0A5F07223204FB028800404B05D5000000400001E02A202DA50180060282814420202000RSU10.11.81.36MessageFrame182088082395950299-1048404171171463663110000000000000000000100000000000-2287-61510-22396-460-22917155-3018100000000000212110000000000000000000100000000000-2229-95410-225274360-2285033-3019100000000000211110000000000000000000101000000000-2148-138410-229003760-2258482-3020100000000000212600100100000022500100000000034110000000000000000000010000000000-243113610-213806360-1630-321110101000000005112010000000000525201000000000000000000-253467010-28206201000000000000000000-2569104310-2760107201000000000000000000-2621139810-29411108310000000000000000000001000000000-1486208710356379-1070010010000001600100000000029310000000000000000000100000000000-1158207510636402-10261000000000004110310000000000000000000010000000000-824205210696425-10180101000000007119010000000000721140100000000000000000024220700436124010000000000000000006452070-124361351000000000000000000010100000000019471325-1022150-462022325-85801200100100000011100100000000027100000000000631451000000000000000000010000000000020331003-1022028-422022360-10580610000000000061155100000000000000000001000000000002068624-1022029-522022307-7280510000000000061165100000000000000000000100000000002125314-1024076-138302601000000000011175100000000000000000000100000000002183-87-1020228-69102501010000000011186010000000000000000002275-661-10282-6196010000000000000000002344-1068-10230-6206010000000000000000002385-1395-10230022710000000000000000000100000000000697-20676-4044-173-212310-104-929-518-270810-1140-4991101210000000000081217100000000000000000000010000000001089-2072-29-1973-17-2593-184-182410-253-1744-363-184710-1146-48941020001001000000119001000000000224710000000000000000000010000000000-12-2095-52-42221050101000000003123710000000000000000000010000000000334-2101-23-4142-81-141110-236-2042-472-217410-1112-48711060100000000003125801000000000000000000-570-215310-6-29326801000000000000000000-1043-2153100-281", + "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload894cf226-1c88-4e93-8a44-4e2e619593e310002024-11-08T22:01:11.974Z80RSUfalse00128315380230002044D0094D3EA1DB2CCC713452F402DC325806280000040000B5DC45F6640A0A694423FFE01478D267B809B02788162500004025804280000040000B5DD2DF1180A0A69400C01581478D26BE802102788162700004025802280000050000B5DE71EA600A0A69346401281478D27C88052027889629000040231A2400218C9000196020A00000080002D7681808802829A58F9007E051E15E689FAFC5616A000A02B0C400050210052200000001AEC35053C050515FB9A000040188800000006BAFBC20981414D7EEC800002828401C8800000006BAE1C2BB01414D7EDA800B02828B020D000000200006BD19441381414D802398EB027D8460E48002306200022C093400000200001AF6F5103605053600FE640809F6058D400020096051A00000080000D7CC8880402829B008B323204FB0AC494001C056268000E0420168400000001603CA2058B000103682018840000000160A162058AFFE90368581AA80000050000B61E6E14B409F66EB433FE901428DD7357FAB0294086184800230B20002583C00030196072A00000100002D87F183EB027D9BAC18FFAC050A375D61FE5C0A50058340003009607AA00000100002D88148270027D9BAC1AFF98050A375C8DFEE00A500582C00030096082A00000080000D884D813A027D9BBC18FEEC050F02C690000404B0455000000400006C443BFD4813ECDCF047FBB028281632A0002022024C4000000036238DF5AC09F62C08D3FFD0809B100000000D89287BD4027D8B01CCFFF42028C40000000362545EA3409F62C0734000160B3A00000100008582B977ED2C003381A35FD4DDED40A0A2BFCC3E2FB5F7E9D5B00A0A6BDC63640814140B0C80008012C157400000080014B0882EFD057FE3784B2BFF7BAEFB5FD21E3800A0A2BF81BC9835FA55E3240A0A6BDC336710141423142400118990001160C3A0000008000057FF477D16BFE637C1014140B0550003012C177400000100010B029CEF9657FE96FD26BFD7BD3E8141457F1478066BF143BC101414D7BA86CF902828160C8000602203304000000035F719DE5C0A0A2BFFD3F6D880D4100000000D7BED779702828B0000FDCE813ECCEB0E00B027D858D0FEA2D0476B169636B0200800161F00010022041A400000000BE456B81904002043A400000000BE01114184C00013C457FD24A52058C40001008037263DFF780A146E023C005813EC0A0806012C1554000002000045FE580ADC92E801402829B81AEFFC804FB0281C1804B05950000008000117FBD42371E39FF980A0A6E132C01E813EC0A0606012C18540000010000C780E7B5B3CEA805C0A0A1F0122C8BDCBC0000A0A5F07223204FB028800404B05D5000000400001E02A202DA50180060282814420202000RSU10.11.81.36MessageFrame182088082395950299-1048404171171463663110000000000000000000100000000000-2287-61510-22396-460-22917155-3018100000000000212110000000000000000000100000000000-2229-95410-225274360-2285033-3019100000000000211110000000000000000000101000000000-2148-138410-229003760-2258482-3020100000000000212600100100000022500100000000034110000000000000000000010000000000-243113610-213806360-1630-321110101000000005112010000000000525201000000000000000000-253467010-28206201000000000000000000-2569104310-2760107201000000000000000000-2621139810-29411108310000000000000000000001000000000-1486208710356379-1070010010000001600100000000029310000000000000000000100000000000-1158207510636402-10261000000000004110310000000000000000000010000000000-824205210696425-10180101000000007119010000000000721140100000000000000000024220700436124010000000000000000006452070-124361351000000000000000000010100000000019471325-1022150-462022325-85801200100100000011100100000000027100000000000631451000000000000000000010000000000020331003-1022028-422022360-10580610000000000061155100000000000000000001000000000002068624-1022029-522022307-7280510000000000061165100000000000000000000100000000002125314-1024076-138302601000000000011175100000000000000000000100000000002183-87-1020228-69102501010000000011186010000000000000000002275-661-10282-6196010000000000000000002344-1068-10230-6206010000000000000000002385-1395-10230022710000000000000000000100000000000697-20676-4044-173-212310-104-929-518-270810-1140-4991101210000000000081217100000000000000000000010000000001089-2072-29-1973-17-2593-184-182410-253-1744-363-184710-1146-48941020001001000000119001000000000224710000000000000000000010000000000-12-2095-52-42221050101000000003123710000000000000000000010000000000334-2101-23-4142-81-141110-236-2042-472-217410-1112-48711060100000000003125801000000000000000000-570-215310-6-29326801000000000000000000-1043-2153100-281", "expected": { "metadata": { "logFileName": "", @@ -5952,7 +5952,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T22:01:11.974Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "RSU", @@ -8493,7 +8493,7 @@ }, { "description": "Test case 4 - MapTxPojo", - "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadd71ab23d-0f89-4847-abef-ea6ffe43995b10002024-11-08T22:01:12.973Z70RSUfalse0012830538023000205EA2094D3A3E202CA7783451FA02DC385824E8000002000089D7FA3C8FF96D5837A9E7A4163680002025822E80000020000A97DFAB40A0A6C00BD21D013EC3792FAD4163880002025820E80000040001A92E3AA00A0A6BFE6538C813ECC7FD3303027D9B01B5AC0004E235FE3698CC09E2058240003009607BA00000100006A32EEB6028298FFA7E6A04FB31FFDFEA809F66C0276FE601374C7D7F795027B0160B0000C0220270400000000A7FF8A4108E8220290400000000AE7B8BC106654582F6800000400008BB12D889D763ED6CD4D1F3D027B01617000100258316800000400010BADA8407C8F7F7B37CB7C0C09F65EF01F8E04FB02C2A0002004B066D0000004000117754649317D7F1C5F5AF8E0B0540003012C1AB4000001000045D8EF044D741F7C5E72E30C04FB02C110000C04406F08000000017372C9833182C4073080000000172BA0F033D800B07B90000002000117BA05905140476BFCD2EDD813D8031D200012C03140000010000451D42D0C808C5E8027D97035116813EC2B0A4000501485A000296010A000001000062A421736408A2E5813ECD802B5DAA027B1B00507F4404E736005D134009B00589C00010096008A000001000082BB615E6407E1FA013ECB806072409F66405040A013ECD806744FF02739AFFA48A8604D802C520000804B024D000000400015070BFA01414C2F6E02E0282866DD75682C4D0001C04B020D000000400005073B5901414C18BE01D0282816288000E02580E680000040001283196680A0A610C6FF481414338842B0258DFD82C6E0001004B018D0000008000250602268141443771FB058F7A150050508C8E05C1639000080220148400000002836E6FC0A0A0229030805A100000000A104B5C0282806D400202B240000000161566915810BFF2400A48000000008D5480C0F18AE4008480000000093B88680F4880203BA40000000134E16A301C4422581CC800000100012CF576F9028283793BFB201DED0C09F6241B7BB408C3480004218400201AA4000000030CE28E000A0A01B50008062900000000C33B621C0282805EBF400002000144016C02C36DDFFF0282984ACC1EE05052C36F0AC02828669D82DA8F821480A0A10F140002C8E0001004B03190000008000519FD190C43B2E0066108B08401428C342A0CE02828258A0604A6BE959AEE0E6050502C920001004B02D90000008000459FA164404FB30A8580A00A14619C306701414C32CE10E02829659081F814141029030164B000080200RSU10.11.81.19MessageFrame1820121132395662624-10508272111689936618710000000000000000000010000000000-1611679-145804-1732537270100000000001117710000000000000000000010000000000-521170910239274-10-2193765280100000000001116710000000000000000000100000000000-840170410-5210009-10-124867-1021822016-60-1159779-3041000000000006115710000000000000000000100000000000-1234171810-127989-10-38106-107824524-70-1616037-20510000000000061198010000000000000000005111577173212080100000000000000000092615831229823111000000000000000000010000000000017328666892-1495428-195-20111000000000008124111000000000000000000010000000000017185283215-176091-253-103008-57-10101000000000008125111000000000000000000001000000000017702014477-571965-575010000000000312611100000000000000000000100000000001735-1265584-1322507390-104010000000000312712010000000000000000001646-621305112812010000000000000000001623-99431703014100000000000000000000010000000001908-1870-472-953-102-8773-202900100000000013110000000000000000000010000000000234-168835-6680-1053-3539-1010010000000000511101000000000052110000000000000000000100000000000578-167769-6709-1043-8790-2040-16478-5023-15152-8019100000000000211110000000000000000000100000000000950-169863-7180-1012-3639-1040-6124-10103-15105-50-46-15037-8020100000000000219310000000000000000000010000000000-1823-1210-51574610-2339-33919010000000000718310000000000000000000010000000000-1817-33410-6609291020010000000000717310000000000000000000100000000000-1850-61410-6045-2310-2288172-669-527100000000000416310000000000000000000100000000000-1856-94710-4644-80-310616810-124523281000000000004110401000000000000000000-182944710-236611401000000000000000000-178886010-29402190100000000000000000013699302235055210000000000000000000-1195-1533-29-4254210000000000000000000-786-1510-23-4482913010000000000000000005345-13963921714610000000000000000000001000000000-2133178510484895296979-1021959921300100000000011200100000000013501000000000000000000-489489610-294012501000000000000000000-488354010-323-6", + "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadd71ab23d-0f89-4847-abef-ea6ffe43995b10002024-11-08T22:01:12.973Z80RSUfalse0012830538023000205EA2094D3A3E202CA7783451FA02DC385824E8000002000089D7FA3C8FF96D5837A9E7A4163680002025822E80000020000A97DFAB40A0A6C00BD21D013EC3792FAD4163880002025820E80000040001A92E3AA00A0A6BFE6538C813ECC7FD3303027D9B01B5AC0004E235FE3698CC09E2058240003009607BA00000100006A32EEB6028298FFA7E6A04FB31FFDFEA809F66C0276FE601374C7D7F795027B0160B0000C0220270400000000A7FF8A4108E8220290400000000AE7B8BC106654582F6800000400008BB12D889D763ED6CD4D1F3D027B01617000100258316800000400010BADA8407C8F7F7B37CB7C0C09F65EF01F8E04FB02C2A0002004B066D0000004000117754649317D7F1C5F5AF8E0B0540003012C1AB4000001000045D8EF044D741F7C5E72E30C04FB02C110000C04406F08000000017372C9833182C4073080000000172BA0F033D800B07B90000002000117BA05905140476BFCD2EDD813D8031D200012C03140000010000451D42D0C808C5E8027D97035116813EC2B0A4000501485A000296010A000001000062A421736408A2E5813ECD802B5DAA027B1B00507F4404E736005D134009B00589C00010096008A000001000082BB615E6407E1FA013ECB806072409F66405040A013ECD806744FF02739AFFA48A8604D802C520000804B024D000000400015070BFA01414C2F6E02E0282866DD75682C4D0001C04B020D000000400005073B5901414C18BE01D0282816288000E02580E680000040001283196680A0A610C6FF481414338842B0258DFD82C6E0001004B018D0000008000250602268141443771FB058F7A150050508C8E05C1639000080220148400000002836E6FC0A0A0229030805A100000000A104B5C0282806D400202B240000000161566915810BFF2400A48000000008D5480C0F18AE4008480000000093B88680F4880203BA40000000134E16A301C4422581CC800000100012CF576F9028283793BFB201DED0C09F6241B7BB408C3480004218400201AA4000000030CE28E000A0A01B50008062900000000C33B621C0282805EBF400002000144016C02C36DDFFF0282984ACC1EE05052C36F0AC02828669D82DA8F821480A0A10F140002C8E0001004B03190000008000519FD190C43B2E0066108B08401428C342A0CE02828258A0604A6BE959AEE0E6050502C920001004B02D90000008000459FA164404FB30A8580A00A14619C306701414C32CE10E02829659081F814141029030164B000080200RSU10.11.81.19MessageFrame1820121132395662624-10508272111689936618710000000000000000000010000000000-1611679-145804-1732537270100000000001117710000000000000000000010000000000-521170910239274-10-2193765280100000000001116710000000000000000000100000000000-840170410-5210009-10-124867-1021822016-60-1159779-3041000000000006115710000000000000000000100000000000-1234171810-127989-10-38106-107824524-70-1616037-20510000000000061198010000000000000000005111577173212080100000000000000000092615831229823111000000000000000000010000000000017328666892-1495428-195-20111000000000008124111000000000000000000010000000000017185283215-176091-253-103008-57-10101000000000008125111000000000000000000001000000000017702014477-571965-575010000000000312611100000000000000000000100000000001735-1265584-1322507390-104010000000000312712010000000000000000001646-621305112812010000000000000000001623-99431703014100000000000000000000010000000001908-1870-472-953-102-8773-202900100000000013110000000000000000000010000000000234-168835-6680-1053-3539-1010010000000000511101000000000052110000000000000000000100000000000578-167769-6709-1043-8790-2040-16478-5023-15152-8019100000000000211110000000000000000000100000000000950-169863-7180-1012-3639-1040-6124-10103-15105-50-46-15037-8020100000000000219310000000000000000000010000000000-1823-1210-51574610-2339-33919010000000000718310000000000000000000010000000000-1817-33410-6609291020010000000000717310000000000000000000100000000000-1850-61410-6045-2310-2288172-669-527100000000000416310000000000000000000100000000000-1856-94710-4644-80-310616810-124523281000000000004110401000000000000000000-182944710-236611401000000000000000000-178886010-29402190100000000000000000013699302235055210000000000000000000-1195-1533-29-4254210000000000000000000-786-1510-23-4482913010000000000000000005345-13963921714610000000000000000000001000000000-2133178510484895296979-1021959921300100000000011200100000000013501000000000000000000-489489610-294012501000000000000000000-488354010-323-6", "expected": { "metadata": { "logFileName": "", @@ -8511,7 +8511,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T22:01:12.973Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "RSU", @@ -11178,7 +11178,7 @@ }, { "description": "Test case 5 - MapTxPojo", - "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload2c91e8d6-f917-4c82-96e4-9de0da3ddca710002024-11-08T22:01:11.319Z70RSUfalse0012834538023000205EA0094D3C71C12CA6CE5D527C02DC3458244800000400028CF6F61F62355F9101464B5AAE70C0A0A631B181A81428D6F27A48302829ADDE94A56050F35BD42952C09C4058340003009609920000010000A2128E4162EAD9980143CC566B6AF028798AF5EB7C050F11349EE19ADCEF4CCA050A35B9E29BE009CE0582C000300960A120000008000222DFE5B6303588D0143CB5AB683C0A0A058F2000080960A920000008000424D3E7162ECF8AF8143CC4C9F8D6028A16876F54814140B1D4000101101632000000014E83CC805050181D34405CC80000000546A74C01414061F5E101832000000015559DAE05050181CA8B06910000008000557F359801414BCCB40000A0A5F6BDEA8050533D307B6C0A1E27EA6FE0AFA9B073027D99945C26C04FB02C360002004B06D1000000800045E50A3E40505331437DAC0A0A6D098BF540143CBEE5BF780A0A67F5501A013ECCC9BA13C027D8161900010025822280000010401AC5437B1027D933B3360141495F5F840A0A62FEF8C581428B624E1CC0A142187100008C3C80008220400203AA400000000F926E6B066F00080F29000000003E45B0481CCC0C583EC800000100012F552960027D9500E77E04FB32AB0218809CE0D89092231E2000118E900011601B200000080002ABF4179027D9958E8EE004E20AE20254561A8000A02B0C40005022C0264000002000115B2C2BC04FB32ACF1F7809C4658F42A6813C4CAEB868F02761B281EA9E004DD364E2D53CC09C4058B40001009600B200000100008AF30177027D9967B06AA04E232A272BEC09E2652CE518813B0D953152C1026E9B2A82A47E04E202C5E0000804401DC8000000051E38FE013EC89FCCA027D84019C8000000052BB904013EC89A097027D84015C80000000538B109813EC0988B31004720000000151DC3EE04FB225C22C09F62C0A840000020000965B0781813D8D599C7FEF02789AB155007204F1356711FFBC09EC058EC0002009604C200000100002B336362809EC6A2FE40170139CD452D7FF502788163D0000802201B2400000002C80D40A027D8067C0020192400000002C825284027D905EC0004FB08085100000000C1AD65AC02788033C00201F4400000003068D912009E2011F0008075100000000C1A1E2F00278804ABF47A7C8195028280540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.20MessageFrame1820121122395806913-10508706921702536618210000000000000000000100000000000-21211567-3670797050-1195249910-1832414920-4313934710-4364951530-42729547-6061000000000006119210000000000000000000100000000000-17521601-2218491230-2662580730-2581556630-32557046-4489982920-44889976-5051000000000006120210000000000000000000010000000000-13131627-2022437830-1194257510300100000000001121210000000000000000000010000000000-8131649-2201444730-3289635840-1930375310290100000000001122301000000000000000000-191163610-12733323301000000000000000000212168810-12135024301000000000000000000684175110-1272982641000000000000000000010000000000020228161024540103503-172107472-293308019-633405115-104747310-101310000000000081274100000000000000000001000000000002370498104419-149108497-344303531-3410810652-104718316-10121000000000008117110000000000000000000001000001000-34231969-1023662010-26299310-2057449120-95121632014001000000000115001000000000216001000000000295010000000000000000003219-4053110305010000000000000000003211-10064096316100000000000000000000010000000002729-1696-107-1089-102736-6046-50393-95130001000000000129001000000000236100000000000000000000100000000001012-1671-102845-6288-60904-18991301000000000051120100000000005226100000000000000000001000000000001430-1698-102767-6178-603194-6835-302990-6513-405135-11024-705003-11021-60221000000000002116100000000000000000001000000000001840-1673-103318-7339-602599-5381-302407-5583-405425-11583-705441-11713-6023100000000000217701000000000000000000-1081-1540-10127-310-106701000000000000000000-649-1528-10104-361-105701000000000000000000-234-1517-1098-3334701000000000000000000238-1545-1092-373-1010810000000000000000000100000000000-2640-253-20-9828-17-30-1007057-30-9788-17-2029100000000000419810000000000000000000100000000000-2452-630-20-1485246-50-15059-11-30301000000000004113901000000000000000000-30661034-10-305012901000000000000000000-3054644-10-3230-10161001000000000000000000-64751452-30-4090151001000000000000000000-65151096-30-3690141001000000000000000000-6521752-30-363-6", + "input": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload2c91e8d6-f917-4c82-96e4-9de0da3ddca710002024-11-08T22:01:11.319Z80RSUfalse0012834538023000205EA0094D3C71C12CA6CE5D527C02DC3458244800000400028CF6F61F62355F9101464B5AAE70C0A0A631B181A81428D6F27A48302829ADDE94A56050F35BD42952C09C4058340003009609920000010000A2128E4162EAD9980143CC566B6AF028798AF5EB7C050F11349EE19ADCEF4CCA050A35B9E29BE009CE0582C000300960A120000008000222DFE5B6303588D0143CB5AB683C0A0A058F2000080960A920000008000424D3E7162ECF8AF8143CC4C9F8D6028A16876F54814140B1D4000101101632000000014E83CC805050181D34405CC80000000546A74C01414061F5E101832000000015559DAE05050181CA8B06910000008000557F359801414BCCB40000A0A5F6BDEA8050533D307B6C0A1E27EA6FE0AFA9B073027D99945C26C04FB02C360002004B06D1000000800045E50A3E40505331437DAC0A0A6D098BF540143CBEE5BF780A0A67F5501A013ECCC9BA13C027D8161900010025822280000010401AC5437B1027D933B3360141495F5F840A0A62FEF8C581428B624E1CC0A142187100008C3C80008220400203AA400000000F926E6B066F00080F29000000003E45B0481CCC0C583EC800000100012F552960027D9500E77E04FB32AB0218809CE0D89092231E2000118E900011601B200000080002ABF4179027D9958E8EE004E20AE20254561A8000A02B0C40005022C0264000002000115B2C2BC04FB32ACF1F7809C4658F42A6813C4CAEB868F02761B281EA9E004DD364E2D53CC09C4058B40001009600B200000100008AF30177027D9967B06AA04E232A272BEC09E2652CE518813B0D953152C1026E9B2A82A47E04E202C5E0000804401DC8000000051E38FE013EC89FCCA027D84019C8000000052BB904013EC89A097027D84015C80000000538B109813EC0988B31004720000000151DC3EE04FB225C22C09F62C0A840000020000965B0781813D8D599C7FEF02789AB155007204F1356711FFBC09EC058EC0002009604C200000100002B336362809EC6A2FE40170139CD452D7FF502788163D0000802201B2400000002C80D40A027D8067C0020192400000002C825284027D905EC0004FB08085100000000C1AD65AC02788033C00201F4400000003068D912009E2011F0008075100000000C1A1E2F00278804ABF47A7C8195028280540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.20MessageFrame1820121122395806913-10508706921702536618210000000000000000000100000000000-21211567-3670797050-1195249910-1832414920-4313934710-4364951530-42729547-6061000000000006119210000000000000000000100000000000-17521601-2218491230-2662580730-2581556630-32557046-4489982920-44889976-5051000000000006120210000000000000000000010000000000-13131627-2022437830-1194257510300100000000001121210000000000000000000010000000000-8131649-2201444730-3289635840-1930375310290100000000001122301000000000000000000-191163610-12733323301000000000000000000212168810-12135024301000000000000000000684175110-1272982641000000000000000000010000000000020228161024540103503-172107472-293308019-633405115-104747310-101310000000000081274100000000000000000001000000000002370498104419-149108497-344303531-3410810652-104718316-10121000000000008117110000000000000000000001000001000-34231969-1023662010-26299310-2057449120-95121632014001000000000115001000000000216001000000000295010000000000000000003219-4053110305010000000000000000003211-10064096316100000000000000000000010000000002729-1696-107-1089-102736-6046-50393-95130001000000000129001000000000236100000000000000000000100000000001012-1671-102845-6288-60904-18991301000000000051120100000000005226100000000000000000001000000000001430-1698-102767-6178-603194-6835-302990-6513-405135-11024-705003-11021-60221000000000002116100000000000000000001000000000001840-1673-103318-7339-602599-5381-302407-5583-405425-11583-705441-11713-6023100000000000217701000000000000000000-1081-1540-10127-310-106701000000000000000000-649-1528-10104-361-105701000000000000000000-234-1517-1098-3334701000000000000000000238-1545-1092-373-1010810000000000000000000100000000000-2640-253-20-9828-17-30-1007057-30-9788-17-2029100000000000419810000000000000000000100000000000-2452-630-20-1485246-50-15059-11-30301000000000004113901000000000000000000-30661034-10-305012901000000000000000000-3054644-10-3230-10161001000000000000000000-64751452-30-4090151001000000000000000000-65151096-30-3690141001000000000000000000-6521752-30-363-6", "expected": { "metadata": { "logFileName": "", @@ -11196,7 +11196,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T22:01:11.319Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "RSU", diff --git a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/JSONEncodedMAP_to_Asn1DecoderInput_Validation.json b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/JSONEncodedMAP_to_Asn1DecoderInput_Validation.json index 0f5bacbdc..9dc66fcc3 100644 --- a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/JSONEncodedMAP_to_Asn1DecoderInput_Validation.json +++ b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/JSONEncodedMAP_to_Asn1DecoderInput_Validation.json @@ -15,7 +15,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T21:46:51.146Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "RSU", "sanitized": false, @@ -30,7 +30,7 @@ } } }, - "expected": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloade99b160c-b2b2-4282-85bd-02fafbc5241710002024-11-08T21:46:51.146Z70RSUfalse001283B0380230002044C4094D3E99B42CC5EE1D542002DC36582D280000070001B6152DE2A00A0A6C18DBA4901414D80A776F202851AFEB2F114050535E9B183380A1425832000400A42E00020226400582F280000020002960FB1E175B0440F23605053604DDE30C0A146C03CBCF981414D7F5378AC02829AF820D4B4050A35F51DC7F809F60582A000180960C4A000000800065827078266C18DBA6601428D80CF777C02851AFD9EEB40050A15E7297D5016088000602582B080000010002362769E2E80A0A2BF423E15B60819D2480A146C011BD5281414D7F5F781D02829AFAB6E53C050500C5080004B0729000000200046BCBA39F101428D78FB8260027D9ADD9EFD3804F1356B81FFA40A0A2B1DD401395DE15FFE8063440002583748000001000035E84DD3E00A0A2BD3EC13300C64800044066C800000006B2B02B1E8141457F3C80A1101AB200000001ACC76AEDA050515FCC60298B00C5000000800042BEB43E70B5C8EDF6D809F62BB393F8FB5DB49FDD809F66AF94BFF70141455EBF80110588C00010096008A0000010000657DED7A216BB7D3F2E81414D71C27E52027B1AAEA4FEE2050535652E002809F60589C00010096010A0000010000657D557B672B9403EE735DA55FBF409F62AAD73FBB156D92009C162500004022022C40000000161809FB60B01FB007E2024C4000000016194DF58CB021300B82026C40000000161B75EF75B01FB00A0050508041100000000D77238659027B0AFD92FF8E200E44000000035DDA2143409EC2BF593FE088031100000000D77C48392027B0AFD1EFF8E200A44000000035DFE208D009EC2BF4ABFDD88021100000000D784980C5027B0AFD14FF605812680000010000B5E54A294409EC2BF30C3FD15FB9A081056104000802B0720004022C0A3400000080005AF557153604FB35F872204409F62BFB5410802C188001008402D0800000006BEDAC57E813EC57FBB80EB2C0C540000028000DB0411120C04FB162FE20A0DB2DA106F205051637FE0591B1A03019E05050AC220001804216400581AA8000004000136094E1EA009F62C91141BFB64D660B1C0A0A6CBF2C102014140B0780006012C0E5400000200015B05310CA804FB16382A0A95B1BF3047C05051625EE04D4B12A701EC5898A80AC6C25D4028014140B0680006012C0F540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.30us.dot.its.jpo.ode.model.OdeHexByteArray001283B0380230002044C4094D3E99B42CC5EE1D542002DC36582D280000070001B6152DE2A00A0A6C18DBA4901414D80A776F202851AFEB2F114050535E9B183380A1425832000400A42E00020226400582F280000020002960FB1E175B0440F23605053604DDE30C0A146C03CBCF981414D7F5378AC02829AF820D4B4050A35F51DC7F809F60582A000180960C4A000000800065827078266C18DBA6601428D80CF777C02851AFD9EEB40050A15E7297D5016088000602582B080000010002362769E2E80A0A2BF423E15B60819D2480A146C011BD5281414D7F5F781D02829AFAB6E53C050500C5080004B0729000000200046BCBA39F101428D78FB8260027D9ADD9EFD3804F1356B81FFA40A0A2B1DD401395DE15FFE8063440002583748000001000035E84DD3E00A0A2BD3EC13300C64800044066C800000006B2B02B1E8141457F3C80A1101AB200000001ACC76AEDA050515FCC60298B00C5000000800042BEB43E70B5C8EDF6D809F62BB393F8FB5DB49FDD809F66AF94BFF70141455EBF80110588C00010096008A0000010000657DED7A216BB7D3F2E81414D71C27E52027B1AAEA4FEE2050535652E002809F60589C00010096010A0000010000657D557B672B9403EE735DA55FBF409F62AAD73FBB156D92009C162500004022022C40000000161809FB60B01FB007E2024C4000000016194DF58CB021300B82026C40000000161B75EF75B01FB00A0050508041100000000D77238659027B0AFD92FF8E200E44000000035DDA2143409EC2BF593FE088031100000000D77C48392027B0AFD1EFF8E200A44000000035DFE208D009EC2BF4ABFDD88021100000000D784980C5027B0AFD14FF605812680000010000B5E54A294409EC2BF30C3FD15FB9A081056104000802B0720004022C0A3400000080005AF557153604FB35F872204409F62BFB5410802C188001008402D0800000006BEDAC57E813EC57FBB80EB2C0C540000028000DB0411120C04FB162FE20A0DB2DA106F205051637FE0591B1A03019E05050AC220001804216400581AA8000004000136094E1EA009F62C91141BFB64D660B1C0A0A6CBF2C102014140B0780006012C0E5400000200015B05310CA804FB16382A0A95B1BF3047C05051625EE04D4B12A701EC5898A80AC6C25D4028014140B0680006012C0F540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000" + "expected": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloade99b160c-b2b2-4282-85bd-02fafbc5241710002024-11-08T21:46:51.146Z80RSUfalse001283B0380230002044C4094D3E99B42CC5EE1D542002DC36582D280000070001B6152DE2A00A0A6C18DBA4901414D80A776F202851AFEB2F114050535E9B183380A1425832000400A42E00020226400582F280000020002960FB1E175B0440F23605053604DDE30C0A146C03CBCF981414D7F5378AC02829AF820D4B4050A35F51DC7F809F60582A000180960C4A000000800065827078266C18DBA6601428D80CF777C02851AFD9EEB40050A15E7297D5016088000602582B080000010002362769E2E80A0A2BF423E15B60819D2480A146C011BD5281414D7F5F781D02829AFAB6E53C050500C5080004B0729000000200046BCBA39F101428D78FB8260027D9ADD9EFD3804F1356B81FFA40A0A2B1DD401395DE15FFE8063440002583748000001000035E84DD3E00A0A2BD3EC13300C64800044066C800000006B2B02B1E8141457F3C80A1101AB200000001ACC76AEDA050515FCC60298B00C5000000800042BEB43E70B5C8EDF6D809F62BB393F8FB5DB49FDD809F66AF94BFF70141455EBF80110588C00010096008A0000010000657DED7A216BB7D3F2E81414D71C27E52027B1AAEA4FEE2050535652E002809F60589C00010096010A0000010000657D557B672B9403EE735DA55FBF409F62AAD73FBB156D92009C162500004022022C40000000161809FB60B01FB007E2024C4000000016194DF58CB021300B82026C40000000161B75EF75B01FB00A0050508041100000000D77238659027B0AFD92FF8E200E44000000035DDA2143409EC2BF593FE088031100000000D77C48392027B0AFD1EFF8E200A44000000035DFE208D009EC2BF4ABFDD88021100000000D784980C5027B0AFD14FF605812680000010000B5E54A294409EC2BF30C3FD15FB9A081056104000802B0720004022C0A3400000080005AF557153604FB35F872204409F62BFB5410802C188001008402D0800000006BEDAC57E813EC57FBB80EB2C0C540000028000DB0411120C04FB162FE20A0DB2DA106F205051637FE0591B1A03019E05050AC220001804216400581AA8000004000136094E1EA009F62C91141BFB64D660B1C0A0A6CBF2C102014140B0780006012C0E5400000200015B05310CA804FB16382A0A95B1BF3047C05051625EE04D4B12A701EC5898A80AC6C25D4028014140B0680006012C0F540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.30us.dot.its.jpo.ode.model.OdeHexByteArray001283B0380230002044C4094D3E99B42CC5EE1D542002DC36582D280000070001B6152DE2A00A0A6C18DBA4901414D80A776F202851AFEB2F114050535E9B183380A1425832000400A42E00020226400582F280000020002960FB1E175B0440F23605053604DDE30C0A146C03CBCF981414D7F5378AC02829AF820D4B4050A35F51DC7F809F60582A000180960C4A000000800065827078266C18DBA6601428D80CF777C02851AFD9EEB40050A15E7297D5016088000602582B080000010002362769E2E80A0A2BF423E15B60819D2480A146C011BD5281414D7F5F781D02829AFAB6E53C050500C5080004B0729000000200046BCBA39F101428D78FB8260027D9ADD9EFD3804F1356B81FFA40A0A2B1DD401395DE15FFE8063440002583748000001000035E84DD3E00A0A2BD3EC13300C64800044066C800000006B2B02B1E8141457F3C80A1101AB200000001ACC76AEDA050515FCC60298B00C5000000800042BEB43E70B5C8EDF6D809F62BB393F8FB5DB49FDD809F66AF94BFF70141455EBF80110588C00010096008A0000010000657DED7A216BB7D3F2E81414D71C27E52027B1AAEA4FEE2050535652E002809F60589C00010096010A0000010000657D557B672B9403EE735DA55FBF409F62AAD73FBB156D92009C162500004022022C40000000161809FB60B01FB007E2024C4000000016194DF58CB021300B82026C40000000161B75EF75B01FB00A0050508041100000000D77238659027B0AFD92FF8E200E44000000035DDA2143409EC2BF593FE088031100000000D77C48392027B0AFD1EFF8E200A44000000035DFE208D009EC2BF4ABFDD88021100000000D784980C5027B0AFD14FF605812680000010000B5E54A294409EC2BF30C3FD15FB9A081056104000802B0720004022C0A3400000080005AF557153604FB35F872204409F62BFB5410802C188001008402D0800000006BEDAC57E813EC57FBB80EB2C0C540000028000DB0411120C04FB162FE20A0DB2DA106F205051637FE0591B1A03019E05050AC220001804216400581AA8000004000136094E1EA009F62C91141BFB64D660B1C0A0A6CBF2C102014140B0780006012C0E5400000200015B05310CA804FB16382A0A95B1BF3047C05051625EE04D4B12A701EC5898A80AC6C25D4028014140B0680006012C0F540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000" }, { "description": "Test case 2", @@ -47,7 +47,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T21:46:50.228Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "RSU", "sanitized": false, @@ -62,7 +62,7 @@ } } }, - "expected": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload7afc0062-4747-4c45-9062-3e525e6d286c10002024-11-08T21:46:50.228Z70RSUfalse001283DA380330002044CA0D4D3EA2D42CC86AFB534E02DC3E5820A80000040000961C7612C5BB250FFDE04DD37663DFFA409D80583C0003009608AA000001000025872783416EC83BFEC81374DD9A67FFA02760160D0000C025824A80000040000961CBE0715BB2AB001004DD3765B5FFD009D80582C0003009609AA00000080000D8A308047027D9B520F000004E202C790000404B0515000000400006C5123F70013ECDA5E1800602710163A8000202581EA80000010000361C5E17DC0A0A6DF8040130134C230E2400118690001080AB100000000D877C7CB4027D8B039AFFF4202CC40000000361DF1ED2C09EC2C0EC3FFD080BB100000000D875379C5027B0B03F70000203B04000000035F791D70C09EC2C003BF72880F4100000000D7C8875B5027B0B0000FDCA203F04000000035EBB1D60C09EC2C003BF8416100A00000040000D77D77844027D9AA845002C052308C7C9000463C40004580228000004000095DFB9E6C9A509AFFA80546349C75FFC80A46058BC00010096010A00000100002578077AD8693C9C00E8152CD27B7802E028F0162D00004025806280000040000B5E049F1E00A0A693B8C00181518D28018012028F0162B00004025808280000020000B5DA09FE540A0A6ACB53FFA81450D772E7DD402828561AA000A02B0E400050210052200000001AF0DB0352050A15FBC6000040188800000006BC42418C0142857ED47FFA10072200000001AF1150904050A15FB9A000040208800000006BC4AC2F00142857EE080002C0A3400000200019AFB5D1346050A35FFA6177C0A0A2BFE64464B5FD921F600A0A6BF14443981428D7CF6891302851AF5E11142050A35EED218340A0A058EC00020096049A0000004000ED7C1B896902851AFFE90DCE050535FE5E2E3C0A0A6BFB3C26781414D7E5C883402829AF9911096050A35F57A14CC0A142BE86C25D35F2F610940A0A218412000AC7A000100C60E40004581668000002000135FB8226D80A146BFF1C7C401414D7F3C878202829AFB531352050A02C590001C04B030D000000400036C00BC4E681428D801789A302828AFF8D0F76D7F0E877C02829AFC950CA4050502C554001C0440350800000006C0DD44F88142858000814D100E4200000001B06A713CA050536000205480A0A2C197400000200001B079CED3004F135FF1113200A3205874000400960D3A00000100000D8234765D027B1AFFF08A14051402C360002004B06DD000000400006C0653B22013D8D800A4518028A0160C80006025838E8000002000035FDB1D84C09EC6C003BA14814140B0540003012C187400000080011B13F6EDB804F115FA6DFC10AFC94FC6A57EE07DCE2BFA7BED3B5FFCD72E80A1E018C90000800RSU10.11.81.33us.dot.its.jpo.ode.model.OdeHexByteArray001283DA380330002044CA0D4D3EA2D42CC86AFB534E02DC3E5820A80000040000961C7612C5BB250FFDE04DD37663DFFA409D80583C0003009608AA000001000025872783416EC83BFEC81374DD9A67FFA02760160D0000C025824A80000040000961CBE0715BB2AB001004DD3765B5FFD009D80582C0003009609AA00000080000D8A308047027D9B520F000004E202C790000404B0515000000400006C5123F70013ECDA5E1800602710163A8000202581EA80000010000361C5E17DC0A0A6DF8040130134C230E2400118690001080AB100000000D877C7CB4027D8B039AFFF4202CC40000000361DF1ED2C09EC2C0EC3FFD080BB100000000D875379C5027B0B03F70000203B04000000035F791D70C09EC2C003BF72880F4100000000D7C8875B5027B0B0000FDCA203F04000000035EBB1D60C09EC2C003BF8416100A00000040000D77D77844027D9AA845002C052308C7C9000463C40004580228000004000095DFB9E6C9A509AFFA80546349C75FFC80A46058BC00010096010A00000100002578077AD8693C9C00E8152CD27B7802E028F0162D00004025806280000040000B5E049F1E00A0A693B8C00181518D28018012028F0162B00004025808280000020000B5DA09FE540A0A6ACB53FFA81450D772E7DD402828561AA000A02B0E400050210052200000001AF0DB0352050A15FBC6000040188800000006BC42418C0142857ED47FFA10072200000001AF1150904050A15FB9A000040208800000006BC4AC2F00142857EE080002C0A3400000200019AFB5D1346050A35FFA6177C0A0A2BFE64464B5FD921F600A0A6BF14443981428D7CF6891302851AF5E11142050A35EED218340A0A058EC00020096049A0000004000ED7C1B896902851AFFE90DCE050535FE5E2E3C0A0A6BFB3C26781414D7E5C883402829AF9911096050A35F57A14CC0A142BE86C25D35F2F610940A0A218412000AC7A000100C60E40004581668000002000135FB8226D80A146BFF1C7C401414D7F3C878202829AFB531352050A02C590001C04B030D000000400036C00BC4E681428D801789A302828AFF8D0F76D7F0E877C02829AFC950CA4050502C554001C0440350800000006C0DD44F88142858000814D100E4200000001B06A713CA050536000205480A0A2C197400000200001B079CED3004F135FF1113200A3205874000400960D3A00000100000D8234765D027B1AFFF08A14051402C360002004B06DD000000400006C0653B22013D8D800A4518028A0160C80006025838E8000002000035FDB1D84C09EC6C003BA14814140B0540003012C187400000080011B13F6EDB804F115FA6DFC10AFC94FC6A57EE07DCE2BFA7BED3B5FFCD72E80A1E018C90000800" + "expected": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload7afc0062-4747-4c45-9062-3e525e6d286c10002024-11-08T21:46:50.228Z80RSUfalse001283DA380330002044CA0D4D3EA2D42CC86AFB534E02DC3E5820A80000040000961C7612C5BB250FFDE04DD37663DFFA409D80583C0003009608AA000001000025872783416EC83BFEC81374DD9A67FFA02760160D0000C025824A80000040000961CBE0715BB2AB001004DD3765B5FFD009D80582C0003009609AA00000080000D8A308047027D9B520F000004E202C790000404B0515000000400006C5123F70013ECDA5E1800602710163A8000202581EA80000010000361C5E17DC0A0A6DF8040130134C230E2400118690001080AB100000000D877C7CB4027D8B039AFFF4202CC40000000361DF1ED2C09EC2C0EC3FFD080BB100000000D875379C5027B0B03F70000203B04000000035F791D70C09EC2C003BF72880F4100000000D7C8875B5027B0B0000FDCA203F04000000035EBB1D60C09EC2C003BF8416100A00000040000D77D77844027D9AA845002C052308C7C9000463C40004580228000004000095DFB9E6C9A509AFFA80546349C75FFC80A46058BC00010096010A00000100002578077AD8693C9C00E8152CD27B7802E028F0162D00004025806280000040000B5E049F1E00A0A693B8C00181518D28018012028F0162B00004025808280000020000B5DA09FE540A0A6ACB53FFA81450D772E7DD402828561AA000A02B0E400050210052200000001AF0DB0352050A15FBC6000040188800000006BC42418C0142857ED47FFA10072200000001AF1150904050A15FB9A000040208800000006BC4AC2F00142857EE080002C0A3400000200019AFB5D1346050A35FFA6177C0A0A2BFE64464B5FD921F600A0A6BF14443981428D7CF6891302851AF5E11142050A35EED218340A0A058EC00020096049A0000004000ED7C1B896902851AFFE90DCE050535FE5E2E3C0A0A6BFB3C26781414D7E5C883402829AF9911096050A35F57A14CC0A142BE86C25D35F2F610940A0A218412000AC7A000100C60E40004581668000002000135FB8226D80A146BFF1C7C401414D7F3C878202829AFB531352050A02C590001C04B030D000000400036C00BC4E681428D801789A302828AFF8D0F76D7F0E877C02829AFC950CA4050502C554001C0440350800000006C0DD44F88142858000814D100E4200000001B06A713CA050536000205480A0A2C197400000200001B079CED3004F135FF1113200A3205874000400960D3A00000100000D8234765D027B1AFFF08A14051402C360002004B06DD000000400006C0653B22013D8D800A4518028A0160C80006025838E8000002000035FDB1D84C09EC6C003BA14814140B0540003012C187400000080011B13F6EDB804F115FA6DFC10AFC94FC6A57EE07DCE2BFA7BED3B5FFCD72E80A1E018C90000800RSU10.11.81.33us.dot.its.jpo.ode.model.OdeHexByteArray001283DA380330002044CA0D4D3EA2D42CC86AFB534E02DC3E5820A80000040000961C7612C5BB250FFDE04DD37663DFFA409D80583C0003009608AA000001000025872783416EC83BFEC81374DD9A67FFA02760160D0000C025824A80000040000961CBE0715BB2AB001004DD3765B5FFD009D80582C0003009609AA00000080000D8A308047027D9B520F000004E202C790000404B0515000000400006C5123F70013ECDA5E1800602710163A8000202581EA80000010000361C5E17DC0A0A6DF8040130134C230E2400118690001080AB100000000D877C7CB4027D8B039AFFF4202CC40000000361DF1ED2C09EC2C0EC3FFD080BB100000000D875379C5027B0B03F70000203B04000000035F791D70C09EC2C003BF72880F4100000000D7C8875B5027B0B0000FDCA203F04000000035EBB1D60C09EC2C003BF8416100A00000040000D77D77844027D9AA845002C052308C7C9000463C40004580228000004000095DFB9E6C9A509AFFA80546349C75FFC80A46058BC00010096010A00000100002578077AD8693C9C00E8152CD27B7802E028F0162D00004025806280000040000B5E049F1E00A0A693B8C00181518D28018012028F0162B00004025808280000020000B5DA09FE540A0A6ACB53FFA81450D772E7DD402828561AA000A02B0E400050210052200000001AF0DB0352050A15FBC6000040188800000006BC42418C0142857ED47FFA10072200000001AF1150904050A15FB9A000040208800000006BC4AC2F00142857EE080002C0A3400000200019AFB5D1346050A35FFA6177C0A0A2BFE64464B5FD921F600A0A6BF14443981428D7CF6891302851AF5E11142050A35EED218340A0A058EC00020096049A0000004000ED7C1B896902851AFFE90DCE050535FE5E2E3C0A0A6BFB3C26781414D7E5C883402829AF9911096050A35F57A14CC0A142BE86C25D35F2F610940A0A218412000AC7A000100C60E40004581668000002000135FB8226D80A146BFF1C7C401414D7F3C878202829AFB531352050A02C590001C04B030D000000400036C00BC4E681428D801789A302828AFF8D0F76D7F0E877C02829AFC950CA4050502C554001C0440350800000006C0DD44F88142858000814D100E4200000001B06A713CA050536000205480A0A2C197400000200001B079CED3004F135FF1113200A3205874000400960D3A00000100000D8234765D027B1AFFF08A14051402C360002004B06DD000000400006C0653B22013D8D800A4518028A0160C80006025838E8000002000035FDB1D84C09EC6C003BA14814140B0540003012C187400000080011B13F6EDB804F115FA6DFC10AFC94FC6A57EE07DCE2BFA7BED3B5FFCD72E80A1E018C90000800" }, { "description": "Test case 3", @@ -79,7 +79,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T21:46:50.967Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "RSU", "sanitized": false, @@ -94,7 +94,7 @@ } } }, - "expected": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload91194b7c-ba02-4e71-8297-e11c2a968e6210002024-11-08T21:46:50.967Z70RSUfalse00128315380230002044D0094D3EA1DB2CCC713452F402DC325806280000040000B5DC45F6640A0A694423FFE01478D267B809B02788162500004025804280000040000B5DD2DF1180A0A69400C01581478D26BE802102788162700004025802280000050000B5DE71EA600A0A69346401281478D27C88052027889629000040231A2400218C9000196020A00000080002D7681808802829A58F9007E051E15E689FAFC5616A000A02B0C400050210052200000001AEC35053C050515FB9A000040188800000006BAFBC20981414D7EEC800002828401C8800000006BAE1C2BB01414D7EDA800B02828B020D000000200006BD19441381414D802398EB027D8460E48002306200022C093400000200001AF6F5103605053600FE640809F6058D400020096051A00000080000D7CC8880402829B008B323204FB0AC494001C056268000E0420168400000001603CA2058B000103682018840000000160A162058AFFE90368581AA80000050000B61E6E14B409F66EB433FE901428DD7357FAB0294086184800230B20002583C00030196072A00000100002D87F183EB027D9BAC18FFAC050A375D61FE5C0A50058340003009607AA00000100002D88148270027D9BAC1AFF98050A375C8DFEE00A500582C00030096082A00000080000D884D813A027D9BBC18FEEC050F02C690000404B0455000000400006C443BFD4813ECDCF047FBB028281632A0002022024C4000000036238DF5AC09F62C08D3FFD0809B100000000D89287BD4027D8B01CCFFF42028C40000000362545EA3409F62C0734000160B3A00000100008582B977ED2C003381A35FD4DDED40A0A2BFCC3E2FB5F7E9D5B00A0A6BDC63640814140B0C80008012C157400000080014B0882EFD057FE3784B2BFF7BAEFB5FD21E3800A0A2BF81BC9835FA55E3240A0A6BDC336710141423142400118990001160C3A0000008000057FF477D16BFE637C1014140B0550003012C177400000100010B029CEF9657FE96FD26BFD7BD3E8141457F1478066BF143BC101414D7BA86CF902828160C8000602203304000000035F719DE5C0A0A2BFFD3F6D880D4100000000D7BED779702828B0000FDCE813ECCEB0E00B027D858D0FEA2D0476B169636B0200800161F00010022041A400000000BE456B81904002043A400000000BE01114184C00013C457FD24A52058C40001008037263DFF780A146E023C005813EC0A0806012C1554000002000045FE580ADC92E801402829B81AEFFC804FB0281C1804B05950000008000117FBD42371E39FF980A0A6E132C01E813EC0A0606012C18540000010000C780E7B5B3CEA805C0A0A1F0122C8BDCBC0000A0A5F07223204FB028800404B05D5000000400001E02A202DA50180060282814420202000RSU10.11.81.36us.dot.its.jpo.ode.model.OdeHexByteArray00128315380230002044D0094D3EA1DB2CCC713452F402DC325806280000040000B5DC45F6640A0A694423FFE01478D267B809B02788162500004025804280000040000B5DD2DF1180A0A69400C01581478D26BE802102788162700004025802280000050000B5DE71EA600A0A69346401281478D27C88052027889629000040231A2400218C9000196020A00000080002D7681808802829A58F9007E051E15E689FAFC5616A000A02B0C400050210052200000001AEC35053C050515FB9A000040188800000006BAFBC20981414D7EEC800002828401C8800000006BAE1C2BB01414D7EDA800B02828B020D000000200006BD19441381414D802398EB027D8460E48002306200022C093400000200001AF6F5103605053600FE640809F6058D400020096051A00000080000D7CC8880402829B008B323204FB0AC494001C056268000E0420168400000001603CA2058B000103682018840000000160A162058AFFE90368581AA80000050000B61E6E14B409F66EB433FE901428DD7357FAB0294086184800230B20002583C00030196072A00000100002D87F183EB027D9BAC18FFAC050A375D61FE5C0A50058340003009607AA00000100002D88148270027D9BAC1AFF98050A375C8DFEE00A500582C00030096082A00000080000D884D813A027D9BBC18FEEC050F02C690000404B0455000000400006C443BFD4813ECDCF047FBB028281632A0002022024C4000000036238DF5AC09F62C08D3FFD0809B100000000D89287BD4027D8B01CCFFF42028C40000000362545EA3409F62C0734000160B3A00000100008582B977ED2C003381A35FD4DDED40A0A2BFCC3E2FB5F7E9D5B00A0A6BDC63640814140B0C80008012C157400000080014B0882EFD057FE3784B2BFF7BAEFB5FD21E3800A0A2BF81BC9835FA55E3240A0A6BDC336710141423142400118990001160C3A0000008000057FF477D16BFE637C1014140B0550003012C177400000100010B029CEF9657FE96FD26BFD7BD3E8141457F1478066BF143BC101414D7BA86CF902828160C8000602203304000000035F719DE5C0A0A2BFFD3F6D880D4100000000D7BED779702828B0000FDCE813ECCEB0E00B027D858D0FEA2D0476B169636B0200800161F00010022041A400000000BE456B81904002043A400000000BE01114184C00013C457FD24A52058C40001008037263DFF780A146E023C005813EC0A0806012C1554000002000045FE580ADC92E801402829B81AEFFC804FB0281C1804B05950000008000117FBD42371E39FF980A0A6E132C01E813EC0A0606012C18540000010000C780E7B5B3CEA805C0A0A1F0122C8BDCBC0000A0A5F07223204FB028800404B05D5000000400001E02A202DA50180060282814420202000" + "expected": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload91194b7c-ba02-4e71-8297-e11c2a968e6210002024-11-08T21:46:50.967Z80RSUfalse00128315380230002044D0094D3EA1DB2CCC713452F402DC325806280000040000B5DC45F6640A0A694423FFE01478D267B809B02788162500004025804280000040000B5DD2DF1180A0A69400C01581478D26BE802102788162700004025802280000050000B5DE71EA600A0A69346401281478D27C88052027889629000040231A2400218C9000196020A00000080002D7681808802829A58F9007E051E15E689FAFC5616A000A02B0C400050210052200000001AEC35053C050515FB9A000040188800000006BAFBC20981414D7EEC800002828401C8800000006BAE1C2BB01414D7EDA800B02828B020D000000200006BD19441381414D802398EB027D8460E48002306200022C093400000200001AF6F5103605053600FE640809F6058D400020096051A00000080000D7CC8880402829B008B323204FB0AC494001C056268000E0420168400000001603CA2058B000103682018840000000160A162058AFFE90368581AA80000050000B61E6E14B409F66EB433FE901428DD7357FAB0294086184800230B20002583C00030196072A00000100002D87F183EB027D9BAC18FFAC050A375D61FE5C0A50058340003009607AA00000100002D88148270027D9BAC1AFF98050A375C8DFEE00A500582C00030096082A00000080000D884D813A027D9BBC18FEEC050F02C690000404B0455000000400006C443BFD4813ECDCF047FBB028281632A0002022024C4000000036238DF5AC09F62C08D3FFD0809B100000000D89287BD4027D8B01CCFFF42028C40000000362545EA3409F62C0734000160B3A00000100008582B977ED2C003381A35FD4DDED40A0A2BFCC3E2FB5F7E9D5B00A0A6BDC63640814140B0C80008012C157400000080014B0882EFD057FE3784B2BFF7BAEFB5FD21E3800A0A2BF81BC9835FA55E3240A0A6BDC336710141423142400118990001160C3A0000008000057FF477D16BFE637C1014140B0550003012C177400000100010B029CEF9657FE96FD26BFD7BD3E8141457F1478066BF143BC101414D7BA86CF902828160C8000602203304000000035F719DE5C0A0A2BFFD3F6D880D4100000000D7BED779702828B0000FDCE813ECCEB0E00B027D858D0FEA2D0476B169636B0200800161F00010022041A400000000BE456B81904002043A400000000BE01114184C00013C457FD24A52058C40001008037263DFF780A146E023C005813EC0A0806012C1554000002000045FE580ADC92E801402829B81AEFFC804FB0281C1804B05950000008000117FBD42371E39FF980A0A6E132C01E813EC0A0606012C18540000010000C780E7B5B3CEA805C0A0A1F0122C8BDCBC0000A0A5F07223204FB028800404B05D5000000400001E02A202DA50180060282814420202000RSU10.11.81.36us.dot.its.jpo.ode.model.OdeHexByteArray00128315380230002044D0094D3EA1DB2CCC713452F402DC325806280000040000B5DC45F6640A0A694423FFE01478D267B809B02788162500004025804280000040000B5DD2DF1180A0A69400C01581478D26BE802102788162700004025802280000050000B5DE71EA600A0A69346401281478D27C88052027889629000040231A2400218C9000196020A00000080002D7681808802829A58F9007E051E15E689FAFC5616A000A02B0C400050210052200000001AEC35053C050515FB9A000040188800000006BAFBC20981414D7EEC800002828401C8800000006BAE1C2BB01414D7EDA800B02828B020D000000200006BD19441381414D802398EB027D8460E48002306200022C093400000200001AF6F5103605053600FE640809F6058D400020096051A00000080000D7CC8880402829B008B323204FB0AC494001C056268000E0420168400000001603CA2058B000103682018840000000160A162058AFFE90368581AA80000050000B61E6E14B409F66EB433FE901428DD7357FAB0294086184800230B20002583C00030196072A00000100002D87F183EB027D9BAC18FFAC050A375D61FE5C0A50058340003009607AA00000100002D88148270027D9BAC1AFF98050A375C8DFEE00A500582C00030096082A00000080000D884D813A027D9BBC18FEEC050F02C690000404B0455000000400006C443BFD4813ECDCF047FBB028281632A0002022024C4000000036238DF5AC09F62C08D3FFD0809B100000000D89287BD4027D8B01CCFFF42028C40000000362545EA3409F62C0734000160B3A00000100008582B977ED2C003381A35FD4DDED40A0A2BFCC3E2FB5F7E9D5B00A0A6BDC63640814140B0C80008012C157400000080014B0882EFD057FE3784B2BFF7BAEFB5FD21E3800A0A2BF81BC9835FA55E3240A0A6BDC336710141423142400118990001160C3A0000008000057FF477D16BFE637C1014140B0550003012C177400000100010B029CEF9657FE96FD26BFD7BD3E8141457F1478066BF143BC101414D7BA86CF902828160C8000602203304000000035F719DE5C0A0A2BFFD3F6D880D4100000000D7BED779702828B0000FDCE813ECCEB0E00B027D858D0FEA2D0476B169636B0200800161F00010022041A400000000BE456B81904002043A400000000BE01114184C00013C457FD24A52058C40001008037263DFF780A146E023C005813EC0A0806012C1554000002000045FE580ADC92E801402829B81AEFFC804FB0281C1804B05950000008000117FBD42371E39FF980A0A6E132C01E813EC0A0606012C18540000010000C780E7B5B3CEA805C0A0A1F0122C8BDCBC0000A0A5F07223204FB028800404B05D5000000400001E02A202DA50180060282814420202000" }, { "description": "Test case 4", @@ -111,7 +111,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T21:46:51.971Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "RSU", "sanitized": false, @@ -126,7 +126,7 @@ } } }, - "expected": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadce610ea5-0963-4c9e-a149-fc3c5b420d4610002024-11-08T21:46:51.971Z70RSUfalse0012830538023000205EA2094D3A3E202CA7783451FA02DC385824E8000002000089D7FA3C8FF96D5837A9E7A4163680002025822E80000020000A97DFAB40A0A6C00BD21D013EC3792FAD4163880002025820E80000040001A92E3AA00A0A6BFE6538C813ECC7FD3303027D9B01B5AC0004E235FE3698CC09E2058240003009607BA00000100006A32EEB6028298FFA7E6A04FB31FFDFEA809F66C0276FE601374C7D7F795027B0160B0000C0220270400000000A7FF8A4108E8220290400000000AE7B8BC106654582F6800000400008BB12D889D763ED6CD4D1F3D027B01617000100258316800000400010BADA8407C8F7F7B37CB7C0C09F65EF01F8E04FB02C2A0002004B066D0000004000117754649317D7F1C5F5AF8E0B0540003012C1AB4000001000045D8EF044D741F7C5E72E30C04FB02C110000C04406F08000000017372C9833182C4073080000000172BA0F033D800B07B90000002000117BA05905140476BFCD2EDD813D8031D200012C03140000010000451D42D0C808C5E8027D97035116813EC2B0A4000501485A000296010A000001000062A421736408A2E5813ECD802B5DAA027B1B00507F4404E736005D134009B00589C00010096008A000001000082BB615E6407E1FA013ECB806072409F66405040A013ECD806744FF02739AFFA48A8604D802C520000804B024D000000400015070BFA01414C2F6E02E0282866DD75682C4D0001C04B020D000000400005073B5901414C18BE01D0282816288000E02580E680000040001283196680A0A610C6FF481414338842B0258DFD82C6E0001004B018D0000008000250602268141443771FB058F7A150050508C8E05C1639000080220148400000002836E6FC0A0A0229030805A100000000A104B5C0282806D400202B240000000161566915810BFF2400A48000000008D5480C0F18AE4008480000000093B88680F4880203BA40000000134E16A301C4422581CC800000100012CF576F9028283793BFB201DED0C09F6241B7BB408C3480004218400201AA4000000030CE28E000A0A01B50008062900000000C33B621C0282805EBF400002000144016C02C36DDFFF0282984ACC1EE05052C36F0AC02828669D82DA8F821480A0A10F140002C8E0001004B03190000008000519FD190C43B2E0066108B08401428C342A0CE02828258A0604A6BE959AEE0E6050502C920001004B02D90000008000459FA164404FB30A8580A00A14619C306701414C32CE10E02829659081F814141029030164B000080200RSU10.11.81.19us.dot.its.jpo.ode.model.OdeHexByteArray0012830538023000205EA2094D3A3E202CA7783451FA02DC385824E8000002000089D7FA3C8FF96D5837A9E7A4163680002025822E80000020000A97DFAB40A0A6C00BD21D013EC3792FAD4163880002025820E80000040001A92E3AA00A0A6BFE6538C813ECC7FD3303027D9B01B5AC0004E235FE3698CC09E2058240003009607BA00000100006A32EEB6028298FFA7E6A04FB31FFDFEA809F66C0276FE601374C7D7F795027B0160B0000C0220270400000000A7FF8A4108E8220290400000000AE7B8BC106654582F6800000400008BB12D889D763ED6CD4D1F3D027B01617000100258316800000400010BADA8407C8F7F7B37CB7C0C09F65EF01F8E04FB02C2A0002004B066D0000004000117754649317D7F1C5F5AF8E0B0540003012C1AB4000001000045D8EF044D741F7C5E72E30C04FB02C110000C04406F08000000017372C9833182C4073080000000172BA0F033D800B07B90000002000117BA05905140476BFCD2EDD813D8031D200012C03140000010000451D42D0C808C5E8027D97035116813EC2B0A4000501485A000296010A000001000062A421736408A2E5813ECD802B5DAA027B1B00507F4404E736005D134009B00589C00010096008A000001000082BB615E6407E1FA013ECB806072409F66405040A013ECD806744FF02739AFFA48A8604D802C520000804B024D000000400015070BFA01414C2F6E02E0282866DD75682C4D0001C04B020D000000400005073B5901414C18BE01D0282816288000E02580E680000040001283196680A0A610C6FF481414338842B0258DFD82C6E0001004B018D0000008000250602268141443771FB058F7A150050508C8E05C1639000080220148400000002836E6FC0A0A0229030805A100000000A104B5C0282806D400202B240000000161566915810BFF2400A48000000008D5480C0F18AE4008480000000093B88680F4880203BA40000000134E16A301C4422581CC800000100012CF576F9028283793BFB201DED0C09F6241B7BB408C3480004218400201AA4000000030CE28E000A0A01B50008062900000000C33B621C0282805EBF400002000144016C02C36DDFFF0282984ACC1EE05052C36F0AC02828669D82DA8F821480A0A10F140002C8E0001004B03190000008000519FD190C43B2E0066108B08401428C342A0CE02828258A0604A6BE959AEE0E6050502C920001004B02D90000008000459FA164404FB30A8580A00A14619C306701414C32CE10E02829659081F814141029030164B000080200" + "expected": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadce610ea5-0963-4c9e-a149-fc3c5b420d4610002024-11-08T21:46:51.971Z80RSUfalse0012830538023000205EA2094D3A3E202CA7783451FA02DC385824E8000002000089D7FA3C8FF96D5837A9E7A4163680002025822E80000020000A97DFAB40A0A6C00BD21D013EC3792FAD4163880002025820E80000040001A92E3AA00A0A6BFE6538C813ECC7FD3303027D9B01B5AC0004E235FE3698CC09E2058240003009607BA00000100006A32EEB6028298FFA7E6A04FB31FFDFEA809F66C0276FE601374C7D7F795027B0160B0000C0220270400000000A7FF8A4108E8220290400000000AE7B8BC106654582F6800000400008BB12D889D763ED6CD4D1F3D027B01617000100258316800000400010BADA8407C8F7F7B37CB7C0C09F65EF01F8E04FB02C2A0002004B066D0000004000117754649317D7F1C5F5AF8E0B0540003012C1AB4000001000045D8EF044D741F7C5E72E30C04FB02C110000C04406F08000000017372C9833182C4073080000000172BA0F033D800B07B90000002000117BA05905140476BFCD2EDD813D8031D200012C03140000010000451D42D0C808C5E8027D97035116813EC2B0A4000501485A000296010A000001000062A421736408A2E5813ECD802B5DAA027B1B00507F4404E736005D134009B00589C00010096008A000001000082BB615E6407E1FA013ECB806072409F66405040A013ECD806744FF02739AFFA48A8604D802C520000804B024D000000400015070BFA01414C2F6E02E0282866DD75682C4D0001C04B020D000000400005073B5901414C18BE01D0282816288000E02580E680000040001283196680A0A610C6FF481414338842B0258DFD82C6E0001004B018D0000008000250602268141443771FB058F7A150050508C8E05C1639000080220148400000002836E6FC0A0A0229030805A100000000A104B5C0282806D400202B240000000161566915810BFF2400A48000000008D5480C0F18AE4008480000000093B88680F4880203BA40000000134E16A301C4422581CC800000100012CF576F9028283793BFB201DED0C09F6241B7BB408C3480004218400201AA4000000030CE28E000A0A01B50008062900000000C33B621C0282805EBF400002000144016C02C36DDFFF0282984ACC1EE05052C36F0AC02828669D82DA8F821480A0A10F140002C8E0001004B03190000008000519FD190C43B2E0066108B08401428C342A0CE02828258A0604A6BE959AEE0E6050502C920001004B02D90000008000459FA164404FB30A8580A00A14619C306701414C32CE10E02829659081F814141029030164B000080200RSU10.11.81.19us.dot.its.jpo.ode.model.OdeHexByteArray0012830538023000205EA2094D3A3E202CA7783451FA02DC385824E8000002000089D7FA3C8FF96D5837A9E7A4163680002025822E80000020000A97DFAB40A0A6C00BD21D013EC3792FAD4163880002025820E80000040001A92E3AA00A0A6BFE6538C813ECC7FD3303027D9B01B5AC0004E235FE3698CC09E2058240003009607BA00000100006A32EEB6028298FFA7E6A04FB31FFDFEA809F66C0276FE601374C7D7F795027B0160B0000C0220270400000000A7FF8A4108E8220290400000000AE7B8BC106654582F6800000400008BB12D889D763ED6CD4D1F3D027B01617000100258316800000400010BADA8407C8F7F7B37CB7C0C09F65EF01F8E04FB02C2A0002004B066D0000004000117754649317D7F1C5F5AF8E0B0540003012C1AB4000001000045D8EF044D741F7C5E72E30C04FB02C110000C04406F08000000017372C9833182C4073080000000172BA0F033D800B07B90000002000117BA05905140476BFCD2EDD813D8031D200012C03140000010000451D42D0C808C5E8027D97035116813EC2B0A4000501485A000296010A000001000062A421736408A2E5813ECD802B5DAA027B1B00507F4404E736005D134009B00589C00010096008A000001000082BB615E6407E1FA013ECB806072409F66405040A013ECD806744FF02739AFFA48A8604D802C520000804B024D000000400015070BFA01414C2F6E02E0282866DD75682C4D0001C04B020D000000400005073B5901414C18BE01D0282816288000E02580E680000040001283196680A0A610C6FF481414338842B0258DFD82C6E0001004B018D0000008000250602268141443771FB058F7A150050508C8E05C1639000080220148400000002836E6FC0A0A0229030805A100000000A104B5C0282806D400202B240000000161566915810BFF2400A48000000008D5480C0F18AE4008480000000093B88680F4880203BA40000000134E16A301C4422581CC800000100012CF576F9028283793BFB201DED0C09F6241B7BB408C3480004218400201AA4000000030CE28E000A0A01B50008062900000000C33B621C0282805EBF400002000144016C02C36DDFFF0282984ACC1EE05052C36F0AC02828669D82DA8F821480A0A10F140002C8E0001004B03190000008000519FD190C43B2E0066108B08401428C342A0CE02828258A0604A6BE959AEE0E6050502C920001004B02D90000008000459FA164404FB30A8580A00A14619C306701414C32CE10E02829659081F814141029030164B000080200" }, { "description": "Test case 5", @@ -143,7 +143,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-08T21:46:50.313Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "RSU", "sanitized": false, @@ -158,7 +158,7 @@ } } }, - "expected": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadc8fbfede-ea1f-47d8-a039-0f015146816010002024-11-08T21:46:50.313Z70RSUfalse0012834538023000205EA0094D3C71C12CA6CE5D527C02DC3458244800000400028CF6F61F62355F9101464B5AAE70C0A0A631B181A81428D6F27A48302829ADDE94A56050F35BD42952C09C4058340003009609920000010000A2128E4162EAD9980143CC566B6AF028798AF5EB7C050F11349EE19ADCEF4CCA050A35B9E29BE009CE0582C000300960A120000008000222DFE5B6303588D0143CB5AB683C0A0A058F2000080960A920000008000424D3E7162ECF8AF8143CC4C9F8D6028A16876F54814140B1D4000101101632000000014E83CC805050181D34405CC80000000546A74C01414061F5E101832000000015559DAE05050181CA8B06910000008000557F359801414BCCB40000A0A5F6BDEA8050533D307B6C0A1E27EA6FE0AFA9B073027D99945C26C04FB02C360002004B06D1000000800045E50A3E40505331437DAC0A0A6D098BF540143CBEE5BF780A0A67F5501A013ECCC9BA13C027D8161900010025822280000010401AC5437B1027D933B3360141495F5F840A0A62FEF8C581428B624E1CC0A142187100008C3C80008220400203AA400000000F926E6B066F00080F29000000003E45B0481CCC0C583EC800000100012F552960027D9500E77E04FB32AB0218809CE0D89092231E2000118E900011601B200000080002ABF4179027D9958E8EE004E20AE20254561A8000A02B0C40005022C0264000002000115B2C2BC04FB32ACF1F7809C4658F42A6813C4CAEB868F02761B281EA9E004DD364E2D53CC09C4058B40001009600B200000100008AF30177027D9967B06AA04E232A272BEC09E2652CE518813B0D953152C1026E9B2A82A47E04E202C5E0000804401DC8000000051E38FE013EC89FCCA027D84019C8000000052BB904013EC89A097027D84015C80000000538B109813EC0988B31004720000000151DC3EE04FB225C22C09F62C0A840000020000965B0781813D8D599C7FEF02789AB155007204F1356711FFBC09EC058EC0002009604C200000100002B336362809EC6A2FE40170139CD452D7FF502788163D0000802201B2400000002C80D40A027D8067C0020192400000002C825284027D905EC0004FB08085100000000C1AD65AC02788033C00201F4400000003068D912009E2011F0008075100000000C1A1E2F00278804ABF47A7C8195028280540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.20us.dot.its.jpo.ode.model.OdeHexByteArray0012834538023000205EA0094D3C71C12CA6CE5D527C02DC3458244800000400028CF6F61F62355F9101464B5AAE70C0A0A631B181A81428D6F27A48302829ADDE94A56050F35BD42952C09C4058340003009609920000010000A2128E4162EAD9980143CC566B6AF028798AF5EB7C050F11349EE19ADCEF4CCA050A35B9E29BE009CE0582C000300960A120000008000222DFE5B6303588D0143CB5AB683C0A0A058F2000080960A920000008000424D3E7162ECF8AF8143CC4C9F8D6028A16876F54814140B1D4000101101632000000014E83CC805050181D34405CC80000000546A74C01414061F5E101832000000015559DAE05050181CA8B06910000008000557F359801414BCCB40000A0A5F6BDEA8050533D307B6C0A1E27EA6FE0AFA9B073027D99945C26C04FB02C360002004B06D1000000800045E50A3E40505331437DAC0A0A6D098BF540143CBEE5BF780A0A67F5501A013ECCC9BA13C027D8161900010025822280000010401AC5437B1027D933B3360141495F5F840A0A62FEF8C581428B624E1CC0A142187100008C3C80008220400203AA400000000F926E6B066F00080F29000000003E45B0481CCC0C583EC800000100012F552960027D9500E77E04FB32AB0218809CE0D89092231E2000118E900011601B200000080002ABF4179027D9958E8EE004E20AE20254561A8000A02B0C40005022C0264000002000115B2C2BC04FB32ACF1F7809C4658F42A6813C4CAEB868F02761B281EA9E004DD364E2D53CC09C4058B40001009600B200000100008AF30177027D9967B06AA04E232A272BEC09E2652CE518813B0D953152C1026E9B2A82A47E04E202C5E0000804401DC8000000051E38FE013EC89FCCA027D84019C8000000052BB904013EC89A097027D84015C80000000538B109813EC0988B31004720000000151DC3EE04FB225C22C09F62C0A840000020000965B0781813D8D599C7FEF02789AB155007204F1356711FFBC09EC058EC0002009604C200000100002B336362809EC6A2FE40170139CD452D7FF502788163D0000802201B2400000002C80D40A027D8067C0020192400000002C825284027D905EC0004FB08085100000000C1AD65AC02788033C00201F4400000003068D912009E2011F0008075100000000C1A1E2F00278804ABF47A7C8195028280540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000" + "expected": "mapTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadc8fbfede-ea1f-47d8-a039-0f015146816010002024-11-08T21:46:50.313Z80RSUfalse0012834538023000205EA0094D3C71C12CA6CE5D527C02DC3458244800000400028CF6F61F62355F9101464B5AAE70C0A0A631B181A81428D6F27A48302829ADDE94A56050F35BD42952C09C4058340003009609920000010000A2128E4162EAD9980143CC566B6AF028798AF5EB7C050F11349EE19ADCEF4CCA050A35B9E29BE009CE0582C000300960A120000008000222DFE5B6303588D0143CB5AB683C0A0A058F2000080960A920000008000424D3E7162ECF8AF8143CC4C9F8D6028A16876F54814140B1D4000101101632000000014E83CC805050181D34405CC80000000546A74C01414061F5E101832000000015559DAE05050181CA8B06910000008000557F359801414BCCB40000A0A5F6BDEA8050533D307B6C0A1E27EA6FE0AFA9B073027D99945C26C04FB02C360002004B06D1000000800045E50A3E40505331437DAC0A0A6D098BF540143CBEE5BF780A0A67F5501A013ECCC9BA13C027D8161900010025822280000010401AC5437B1027D933B3360141495F5F840A0A62FEF8C581428B624E1CC0A142187100008C3C80008220400203AA400000000F926E6B066F00080F29000000003E45B0481CCC0C583EC800000100012F552960027D9500E77E04FB32AB0218809CE0D89092231E2000118E900011601B200000080002ABF4179027D9958E8EE004E20AE20254561A8000A02B0C40005022C0264000002000115B2C2BC04FB32ACF1F7809C4658F42A6813C4CAEB868F02761B281EA9E004DD364E2D53CC09C4058B40001009600B200000100008AF30177027D9967B06AA04E232A272BEC09E2652CE518813B0D953152C1026E9B2A82A47E04E202C5E0000804401DC8000000051E38FE013EC89FCCA027D84019C8000000052BB904013EC89A097027D84015C80000000538B109813EC0988B31004720000000151DC3EE04FB225C22C09F62C0A840000020000965B0781813D8D599C7FEF02789AB155007204F1356711FFBC09EC058EC0002009604C200000100002B336362809EC6A2FE40170139CD452D7FF502788163D0000802201B2400000002C80D40A027D8067C0020192400000002C825284027D905EC0004FB08085100000000C1AD65AC02788033C00201F4400000003068D912009E2011F0008075100000000C1A1E2F00278804ABF47A7C8195028280540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000RSU10.11.81.20us.dot.its.jpo.ode.model.OdeHexByteArray0012834538023000205EA0094D3C71C12CA6CE5D527C02DC3458244800000400028CF6F61F62355F9101464B5AAE70C0A0A631B181A81428D6F27A48302829ADDE94A56050F35BD42952C09C4058340003009609920000010000A2128E4162EAD9980143CC566B6AF028798AF5EB7C050F11349EE19ADCEF4CCA050A35B9E29BE009CE0582C000300960A120000008000222DFE5B6303588D0143CB5AB683C0A0A058F2000080960A920000008000424D3E7162ECF8AF8143CC4C9F8D6028A16876F54814140B1D4000101101632000000014E83CC805050181D34405CC80000000546A74C01414061F5E101832000000015559DAE05050181CA8B06910000008000557F359801414BCCB40000A0A5F6BDEA8050533D307B6C0A1E27EA6FE0AFA9B073027D99945C26C04FB02C360002004B06D1000000800045E50A3E40505331437DAC0A0A6D098BF540143CBEE5BF780A0A67F5501A013ECCC9BA13C027D8161900010025822280000010401AC5437B1027D933B3360141495F5F840A0A62FEF8C581428B624E1CC0A142187100008C3C80008220400203AA400000000F926E6B066F00080F29000000003E45B0481CCC0C583EC800000100012F552960027D9500E77E04FB32AB0218809CE0D89092231E2000118E900011601B200000080002ABF4179027D9958E8EE004E20AE20254561A8000A02B0C40005022C0264000002000115B2C2BC04FB32ACF1F7809C4658F42A6813C4CAEB868F02761B281EA9E004DD364E2D53CC09C4058B40001009600B200000100008AF30177027D9967B06AA04E232A272BEC09E2652CE518813B0D953152C1026E9B2A82A47E04E202C5E0000804401DC8000000051E38FE013EC89FCCA027D84019C8000000052BB904013EC89A097027D84015C80000000538B109813EC0988B31004720000000151DC3EE04FB225C22C09F62C0A840000020000965B0781813D8D599C7FEF02789AB155007204F1356711FFBC09EC058EC0002009604C200000100002B336362809EC6A2FE40170139CD452D7FF502788163D0000802201B2400000002C80D40A027D8067C0020192400000002C825284027D905EC0004FB08085100000000C1AD65AC02788033C00201F4400000003068D912009E2011F0008075100000000C1A1E2F00278804ABF47A7C8195028280540000020000DB05B909DE04FB365C8610C40A0A2C710C0EE1625DA03C1B1C5F01F6050502C160001804B0415000000800032C19041BF1637FE0AACB24FF05A658E2181806C714C07C814140B04800060110147200000001B411EFE4405051603CA005C000" } ] } \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/UDPMAP_To_EncodedJSON_Validation.json b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/UDPMAP_To_EncodedJSON_Validation.json index 9214b1aa1..2a532f1a2 100644 --- a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/UDPMAP_To_EncodedJSON_Validation.json +++ b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.udp.map/UDPMAP_To_EncodedJSON_Validation.json @@ -7,7 +7,7 @@ "metadata": { "securityResultCode": "success", "recordGeneratedBy": "RSU", - "schemaVersion": 7, + "schemaVersion": 8, "mapSource": "RSU", "payloadType": "us.dot.its.jpo.ode.model.OdeAsn1Payload", "serialId": { @@ -39,7 +39,7 @@ "metadata": { "securityResultCode": "success", "recordGeneratedBy": "RSU", - "schemaVersion": 7, + "schemaVersion": 8, "mapSource": "RSU", "payloadType": "us.dot.its.jpo.ode.model.OdeAsn1Payload", "serialId": { diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-bsm.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-bsm.json index 058e5ac9f..4383d3c99 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-bsm.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-bsm.json @@ -22,7 +22,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-03-15T16:46:45.297174600Z", - "schemaVersion": 6, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "OBU", "sanitized": false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-psm.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-psm.json index 37466dc65..035d266d9 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-psm.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-psm.json @@ -11,7 +11,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-03-15T19:16:35.212860500Z", - "schemaVersion": 6, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "UNKNOWN", "sanitized": false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-spat.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-spat.json index 5d6cc2598..b218301fa 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-spat.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-spat.json @@ -11,7 +11,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-03-15T19:43:22.604870100Z", - "schemaVersion": 6, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "RSU", "sanitized": false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-srm.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-srm.json index fc1beee60..ac938d193 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-srm.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-srm.json @@ -11,7 +11,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-03-15T19:24:04.113614500Z", - "schemaVersion": 6, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "OBU", "sanitized": false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-ssm.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-ssm.json index e42e3d175..6cf9b370a 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-ssm.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-ssm.json @@ -11,7 +11,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-03-15T19:31:02.907835400Z", - "schemaVersion": 6, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "RSU", "sanitized": false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-tim.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-tim.json index 9068b128b..e40bacfd7 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-tim.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/decoder-input-tim.json @@ -11,7 +11,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-03-15T19:38:48.578500100Z", - "schemaVersion": 6, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "RSU", "sanitized": false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-bsm.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-bsm.xml index 09e560dc9..0d06ee3a2 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-bsm.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-bsm.xml @@ -1 +1 @@ -EVbsmTxsuccessunavailableunavailableunavailableunavailableunavailableRSUunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadbe071349-9bb6-4b66-b1c7-8df1f9e0cb7410002024-03-15T16:46:45.297174600Z60OBUfalse192.168.0.1us.dot.its.jpo.ode.model.OdeHexByteArray001480AD4644A9EA5442BC26E97C7496576E052569B214000070007050FD7D0FA1007FFF8000681250020214C1C0FF64BFFA0FB84F720FF71BFF9500DFFFC0FF564006D001FFFC0FF5BBFE5B031FFFC0FF573FF73075FFFC0FF973FFB708FFFFC0FFEFC00B50B5FFFC0FFF0401150BBFFFC0FFDF4015D0C1FFFC0FFB9C01690C7FFFC0FFC0401550C9FFFC0FFBAC014F0C9FFFC0FFBBC01530CBFFFC0FFBB400B30E7FFFC100383FFCD0E3FFFCFFFEC800400120000243450D45B978805B073A8672E91E9D80824A65C65F85E35B61502149263F000FE804E6B84AF66507D51690DE76F30D1468A68F8986B58E6AECB2C5FC4766C223F0B977E87678DDF714FE123C483622CC7500 \ No newline at end of file +EVbsmTxsuccessunavailableunavailableunavailableunavailableunavailableRSUunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadbe071349-9bb6-4b66-b1c7-8df1f9e0cb7410002024-03-15T16:46:45.297174600Z80OBUfalse192.168.0.1us.dot.its.jpo.ode.model.OdeHexByteArray001480AD4644A9EA5442BC26E97C7496576E052569B214000070007050FD7D0FA1007FFF8000681250020214C1C0FF64BFFA0FB84F720FF71BFF9500DFFFC0FF564006D001FFFC0FF5BBFE5B031FFFC0FF573FF73075FFFC0FF973FFB708FFFFC0FFEFC00B50B5FFFC0FFF0401150BBFFFC0FFDF4015D0C1FFFC0FFB9C01690C7FFFC0FFC0401550C9FFFC0FFBAC014F0C9FFFC0FFBBC01530CBFFFC0FFBB400B30E7FFFC100383FFCD0E3FFFCFFFEC800400120000243450D45B978805B073A8672E91E9D80824A65C65F85E35B61502149263F000FE804E6B84AF66507D51690DE76F30D1468A68F8986B58E6AECB2C5FC4766C223F0B977E87678DDF714FE123C483622CC7500 \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-psm.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-psm.xml index a924a714a..18c3af04c 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-psm.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-psm.xml @@ -1 +1 @@ -psmTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadfa3dfe1b-80cd-45cb-ae2c-c604a214fe5610002024-03-15T19:16:35.212860500Z60UNKNOWNfalseRSU192.168.0.1us.dot.its.jpo.ode.model.OdeHexByteArray00201A0000021BD86891DE75F84DA101C13F042E2214141FFF00022C2000270000000163B2CC79860100 \ No newline at end of file +psmTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadfa3dfe1b-80cd-45cb-ae2c-c604a214fe5610002024-03-15T19:16:35.212860500Z80UNKNOWNfalseRSU192.168.0.1us.dot.its.jpo.ode.model.OdeHexByteArray00201A0000021BD86891DE75F84DA101C13F042E2214141FFF00022C2000270000000163B2CC79860100 \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-spat.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-spat.xml index d70b23d56..4c1b3f663 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-spat.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-spat.xml @@ -1 +1 @@ -spatTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload5ec410a3-bec6-4724-9601-1e08778e1dfc10002024-03-15T19:43:22.604870100Z60RSUfalseRSU192.168.0.1falseus.dot.its.jpo.ode.model.OdeHexByteArray00134700081132000000E437070010434257925790010232119A11CE800C10D095E495E400808684AF24AF20050434257925790030232119A11CE801C10D095E495E401008684AF24AF200 \ No newline at end of file +spatTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload5ec410a3-bec6-4724-9601-1e08778e1dfc10002024-03-15T19:43:22.604870100Z80RSUfalseRSU192.168.0.1falseus.dot.its.jpo.ode.model.OdeHexByteArray00134700081132000000E437070010434257925790010232119A11CE800C10D095E495E400808684AF24AF20050434257925790030232119A11CE801C10D095E495E401008684AF24AF200 \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-srm.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-srm.xml index 6d9210b79..091ffc3e9 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-srm.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-srm.xml @@ -1 +1 @@ -srmTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload190cbd65-d1e2-488a-ba42-b7d3f03a5c6910002024-03-15T19:24:04.113614500Z60OBUfalse192.168.0.1RSUus.dot.its.jpo.ode.model.OdeHexByteArray001D2130000010090BD341080D00855C6C0C6899853000A534F7C24CB29897694759B7C000 \ No newline at end of file +srmTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload190cbd65-d1e2-488a-ba42-b7d3f03a5c6910002024-03-15T19:24:04.113614500Z80OBUfalse192.168.0.1RSUus.dot.its.jpo.ode.model.OdeHexByteArray001D2130000010090BD341080D00855C6C0C6899853000A534F7C24CB29897694759B7C000 \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-ssm.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-ssm.xml index 467140718..13f11925b 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-ssm.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-ssm.xml @@ -1 +1 @@ -ssmTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadc4e4e92d-dccc-45f5-813f-7d36795529a010002024-03-15T19:31:02.907835400Z60RSUfalse192.168.0.1RSUus.dot.its.jpo.ode.model.OdeHexByteArray001E120000000005E9C04071A26614C06000040BA000 \ No newline at end of file +ssmTxsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payloadc4e4e92d-dccc-45f5-813f-7d36795529a010002024-03-15T19:31:02.907835400Z80RSUfalse192.168.0.1RSUus.dot.its.jpo.ode.model.OdeHexByteArray001E120000000005E9C04071A26614C06000040BA000 \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-tim.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-tim.xml index 26c76f589..fa1b38750 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-tim.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/kafka/listeners/asn1/expected-tim.xml @@ -1 +1 @@ -timMsgsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload9952caf6-81bd-490d-ad95-47dee31c3ba810002024-03-15T19:38:48.578500100Z60RSUfalse192.168.0.1us.dot.its.jpo.ode.model.OdeHexByteArray001F79201000000000012AA366D080729B8987D859717EE22001FFFE4FD0011589D828007E537130FB0B2E2FDC440001F46FFFF002B8B2E46E926E27CE6813D862CB90EDC9B89E11CE2CB8E98F9B89BCC4050518B2E365B66E26AE3B8B2E291A66E2591D8141462CB873969B89396C62CB86AFE9B89208E00000131560018300023E43A6A1351800023E4700EFC51881010100030180C620FB90CAAD3B9C5082080E1DDC905E10168E396921000325A0D73B83279C83010180034801090001260001808001838005008001F0408001828005008001304000041020407E800320409780050080012040000320409900018780032040958005000001E0408183E7139D7B70987019B526B8A950052F5C011D3C4B992143E885C71F95DA6071658082346CC03A50D66801F65288C30AB39673D0494536C559047E457AD291C99C20A7FB1244363E993EE3EE98C78742609340541DA01545A0F7339C26A527903576D300 \ No newline at end of file +timMsgsuccessunsecuredDataMessageFrameUPERus.dot.its.jpo.ode.model.OdeAsn1Payload9952caf6-81bd-490d-ad95-47dee31c3ba810002024-03-15T19:38:48.578500100Z80RSUfalse192.168.0.1us.dot.its.jpo.ode.model.OdeHexByteArray001F79201000000000012AA366D080729B8987D859717EE22001FFFE4FD0011589D828007E537130FB0B2E2FDC440001F46FFFF002B8B2E46E926E27CE6813D862CB90EDC9B89E11CE2CB8E98F9B89BCC4050518B2E365B66E26AE3B8B2E291A66E2591D8141462CB873969B89396C62CB86AFE9B89208E00000131560018300023E43A6A1351800023E4700EFC51881010100030180C620FB90CAAD3B9C5082080E1DDC905E10168E396921000325A0D73B83279C83010180034801090001260001808001838005008001F0408001828005008001304000041020407E800320409780050080012040000320409900018780032040958005000001E0408183E7139D7B70987019B526B8A950052F5C011D3C4B992143E885C71F95DA6071658082346CC03A50D66801F65288C30AB39673D0494536C559047E457AD291C99C20A7FB1244363E993EE3EE98C78742609340541DA01545A0F7339C26A527903576D300 \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-bsm.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-bsm.xml index e7e98cd4a..89bf3715d 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-bsm.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-bsm.xml @@ -31,7 +31,7 @@ 0 2024-12-10T17:30:48.095Z - 7 + 8 0 OBU diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-map.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-map.xml index 323fa804a..0a9f920c1 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-map.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-map.xml @@ -21,7 +21,7 @@ 0 2024-12-10T17:32:22.024Z - 7 + 8 0 RSU diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-psm.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-psm.xml index 129b7c280..26a4985f9 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-psm.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-psm.xml @@ -21,7 +21,7 @@ 0 2024-12-10T17:33:49.421Z - 7 + 8 0 UNKNOWN diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-spat.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-spat.xml index 07c2303f7..7b6884dd5 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-spat.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-spat.xml @@ -21,7 +21,7 @@ 0 2024-12-10T17:34:40.359Z - 7 + 8 0 RSU diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-srm.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-srm.xml index 0f1fa7233..a868f2a9d 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-srm.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-srm.xml @@ -21,7 +21,7 @@ 0 2024-12-10T17:35:36.923Z - 7 + 8 0 OBU diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-ssm.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-ssm.xml index 05c67bc6f..1da1020b5 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-ssm.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-ssm.xml @@ -21,7 +21,7 @@ 0 2024-12-10T17:36:31.804Z - 7 + 8 0 RSU diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-tim.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-tim.xml index d9ab2b93f..93b5b63d9 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-tim.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/decoder-output-tim.xml @@ -21,7 +21,7 @@ 0 2024-12-10T17:20:48.699Z - 7 + 8 0 RSU diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-bsm.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-bsm.json index c546a6f3e..12eee6d75 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-bsm.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-bsm.json @@ -23,7 +23,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-12-10T17:30:48.095Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedAt": "", "recordGeneratedBy": "OBU", diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-map.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-map.json index c975b08b4..13c9658c8 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-map.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-map.json @@ -1 +1 @@ -{"metadata":{"logFileName":"","recordType":"mapTx","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeMapPayload","serialId":{"streamId":"2bc6b4d1-8534-482c-9004-18a4d2613622","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:32:22.024Z","schemaVersion":7,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001283C138003000205E9C014D3EAB092CA624B5518202DC3658042800000400023622C60CA009F66D48ABFAF81388D8AD18070027D9B2FFCFE9804F13667B1FFD009EC2C76E3FFC82C4E0001004B00C5000000800066C4574101813ECD8B757FAE027D9B30E6FF5604EC363561FE7809EC6CD69BFEC813C4D8A617FC9027D9B2147008604FB163666000016250000802580228000001000096229E1309B51A6FE4204DD361CF1FE5009F6018E1000096020A00000080004D88A57F84027D9B3827002804EC36087600A009F62C289407282C310001C0440188800000006C46DBE02813EC5816D800710052200000001B11B6FAD404FB16054A0000401C8800000006C47B3D24813EC5816D801B100C4200000000AF890F12C580007E87100D4200000008AF4C0F12C580077E7A2C0004000160002001CB028D000000800052C160BC40B5FFFD8A9409D86BFEBB5B40141457FEF53B76C008B467014145800080002BFFCBFFC82C6A0001804B024D000000800036C2213C3B013ECD80096D64027D9AFFD8CDFC04F635FF7983BC09F66C0082AA2014280B1B80006012C0B3400000100004B02BCF0F6D7FE065D602788B0138EB900B1240001012C083400000080009B0C2AF0B804FB15FE6DE171AFFF6C63E04EC15FE1DE670060E40002581EA8000004000135DA6DF0180A0A6ADC2C00D0143CD51897FDA028C8ABB25001A0B0680008012C105400000200009AEDBEFAE005053540EE003C0A326A9CF3FED8143C5667780010582C0004009608AA00000080004D76DE7EE402829ABA88FFDC050F354525FFF80A322BCF23FA602C690000C04B0395000000200016BB4FBD4E01414D3215800802940AB108FFF2030D2000110126200000001AEE5103BE050A15F6F1FFC8404D8800000006BB97C18E0142857DFA800010146200000001AEE89099A050A15F8720000B05DD000000800046BE3743B781428D80E1B00002879B00514B4404F63600827D8C09E22C000400015FFE6007016190000402582CE8000004000135ECEE1DE80A146C02E54758143CD8059AD3E027B1B00613DD004F102C360000804B055D000000200046BCC7C3C781428D80108C6E02829B002B2ECE050A16019A4B29B00AB5C3604F136004E410409EC018A10000960C3A00000080004D7DE9878602851B003923CC05053601623B440A0A6BFB8C3A5014140B0640005012C197400000100005AFE570EF2050A36003A47C80A0A6BFD2C45F014140B054000501101A8200000001B05A90EDC050535FFE605800A0A101B8200000001B08A30EC0050535FFE605300A0A101C8200000005B0C6F0EA4050515FFCA0568B0001000E00","mapSource":"RSU","originIp":"172.18.0.1"},"payload":{"data":{"msgIssueRevision":0,"layerType":"intersectionData","layerID":0,"intersections":{"intersectionGeometry":[{"id":{"id":12110},"revision":0,"refPoint":{"latitude":39.5952649,"longitude":-105.0914122,"elevation":1677.0},"laneWidth":366,"laneSet":{"GenericLane":[{"laneID":2,"ingressApproach":1,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2225,"y":808}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":10517,"y":-161}},"attributes":{"dElevation":-60}},{"delta":{"nodeXY6":{"x":2769,"y":112}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":6142,"y":-180}},"attributes":{"dElevation":-30}},{"delta":{"nodeXY6":{"x":6636,"y":-12}},"attributes":{"dElevation":-20}},{"delta":{"nodeXY6":{"x":3804,"y":-7}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":19,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":4,"connectionID":1}]}},{"laneID":3,"ingressApproach":1,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2222,"y":515}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":2933,"y":-82}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":6259,"y":-85}},"attributes":{"dElevation":-40}},{"delta":{"nodeXY6":{"x":3416,"y":-98}},"attributes":{"dElevation":-20}},{"delta":{"nodeXY6":{"x":6867,"y":-39}},"attributes":{"dElevation":-30}},{"delta":{"nodeXY6":{"x":2657,"y":-55}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":4259,"y":67}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":3481,"y":0}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":18,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":4,"connectionID":1}]}},{"laneID":1,"ingressApproach":1,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2215,"y":1218}}},{"delta":{"nodeXY6":{"x":10451,"y":-223}},"attributes":{"dElevation":-70}},{"delta":{"nodeXY6":{"x":1852,"y":-108}},"attributes":{"dElevation":-10}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":28,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"connectionID":1}]}},{"laneID":4,"ingressApproach":1,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2213,"y":-124}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":7187,"y":20}},"attributes":{"dElevation":-40}},{"delta":{"nodeXY6":{"x":541,"y":40}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":1298,"y":229}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":12,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":7,"connectionID":1}]}},{"laneID":6,"egressApproach":2,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2267,"y":-1019}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":365,"y":7}}}]}},{"laneID":5,"egressApproach":2,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2267,"y":-662}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":338,"y":0}}}]}},{"laneID":7,"egressApproach":2,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2294,"y":-1463}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":365,"y":27}}}]}},{"laneID":12,"egressApproach":4,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-952,"y":-1898}}},{"delta":{"nodeXY6":{"x":0,"y":-377}}}]}},{"laneID":13,"egressApproach":4,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-1440,"y":-1898}}},{"delta":{"nodeXY6":{"x":7,"y":-390}}},{"delta":{"nodeXY6":{"x":0,"y":0}}},{"delta":{"nodeXY6":{"x":0,"y":7}}}]}},{"laneID":10,"ingressApproach":3,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":705,"y":-1919}}},{"delta":{"nodeXY6":{"x":-1,"y":-7515}},"attributes":{"dElevation":-40}},{"delta":{"nodeXY6":{"x":-41,"y":-5272}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-17,"y":-11337}}},{"delta":{"nodeXY6":{"x":17,"y":-5938}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":0,"y":0}}},{"delta":{"nodeXY6":{"x":-7,"y":-7}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":26,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":6,"connectionID":1}]}},{"laneID":9,"ingressApproach":3,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":1090,"y":-1930}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":9,"y":-4764}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":-20,"y":-6402}},"attributes":{"dElevation":-20}},{"delta":{"nodeXY6":{"x":-34,"y":-7953}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":16,"y":-10940}},"attributes":{"dElevation":20}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":27,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":6,"connectionID":1}]}},{"laneID":11,"ingressApproach":3,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":350,"y":-1925}}},{"delta":{"nodeXY6":{"x":-32,"y":-6698}},"attributes":{"dElevation":-30}},{"delta":{"nodeXY6":{"x":156,"y":-2616}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":18,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":1,"connectionID":1}]}},{"laneID":8,"ingressApproach":3,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":1557,"y":-1956}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":-101,"y":-1956}}},{"delta":{"nodeXY6":{"x":-5,"y":-7393}},"attributes":{"dElevation":-40}},{"delta":{"nodeXY6":{"x":-121,"y":-1636}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":7,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"connectionID":1}]}},{"laneID":15,"ingressApproach":5,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2405,"y":-1018}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-9339,"y":26}},"attributes":{"dElevation":30}},{"delta":{"nodeXY6":{"x":-11895,"y":-38}},"attributes":{"dElevation":50}},{"delta":{"nodeXY6":{"x":-8814,"y":13}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":6,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":8,"connectionID":1}]}},{"laneID":16,"ingressApproach":5,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2337,"y":-656}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-12229,"y":15}},"attributes":{"dElevation":50}},{"delta":{"nodeXY6":{"x":-11362,"y":-37}},"attributes":{"dElevation":30}},{"delta":{"nodeXY6":{"x":-6537,"y":1}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":5,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":8,"connectionID":1}]}},{"laneID":17,"ingressApproach":5,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2338,"y":-284}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-8892,"y":-18}},"attributes":{"dElevation":30}},{"delta":{"nodeXY6":{"x":-11959,"y":-2}},"attributes":{"dElevation":50}},{"delta":{"nodeXY6":{"x":-1564,"y":-180}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":26,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":3,"connectionID":1}]}},{"laneID":14,"ingressApproach":5,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2401,"y":-1380}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-19947,"y":8}},"attributes":{"dElevation":80}},{"delta":{"nodeXY6":{"x":-10108,"y":-7}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":13,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"connectionID":1}]}},{"laneID":18,"egressApproach":6,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2264,"y":479}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":-580,"y":-14}}}]}},{"laneID":19,"egressApproach":6,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2257,"y":796}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":-518,"y":0}}}]}},{"laneID":20,"egressApproach":6,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2236,"y":1229}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":-484,"y":0}}}]}},{"laneID":23,"ingressApproach":7,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-914,"y":1903}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":225,"y":12288}},"attributes":{"dElevation":30}},{"delta":{"nodeXY6":{"x":40,"y":9634}},"attributes":{"dElevation":-20}},{"delta":{"nodeXY6":{"x":32,"y":8035}},"attributes":{"dElevation":-30}},{"delta":{"nodeXY6":{"x":0,"y":0}}},{"delta":{"nodeXY6":{"x":-7,"y":28}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":12,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":2,"connectionID":1}]}},{"laneID":22,"ingressApproach":7,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-1221,"y":1914}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":92,"y":10475}},"attributes":{"dElevation":30}},{"delta":{"nodeXY6":{"x":89,"y":11582}},"attributes":{"dElevation":-20}},{"delta":{"nodeXY6":{"x":48,"y":7912}},"attributes":{"dElevation":-30}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":13,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":2,"connectionID":1}]}},{"laneID":21,"ingressApproach":7,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-1649,"y":1935}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":16,"y":3182}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":21,"y":5991}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":102,"y":4810}}},{"delta":{"nodeXY6":{"x":85,"y":11803}},"attributes":{"dElevation":-30}},{"delta":{"nodeXY6":{"x":19,"y":4161}},"attributes":{"dElevation":-20}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":20,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"connectionID":1}]}},{"laneID":24,"ingressApproach":7,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-535,"y":1926}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":28,"y":4582}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":88,"y":3793}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-143,"y":1866}},"attributes":{"dElevation":10}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":6,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":5,"connectionID":1}]}},{"laneID":25,"ingressApproach":7,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-213,"y":1913}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":14,"y":4594}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-91,"y":2238}},"attributes":{"dElevation":10}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":5,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":5,"connectionID":1}]}},{"laneID":26,"egressApproach":8,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":724,"y":1902}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-7,"y":352}},"attributes":{"dElevation":10}}]}},{"laneID":27,"egressApproach":8,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":1105,"y":1888}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-7,"y":332}},"attributes":{"dElevation":10}}]}},{"laneID":28,"egressApproach":8,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":1591,"y":1874}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-14,"y":346}}},{"delta":{"nodeXY6":{"x":0,"y":7}}}]}}]}}]}},"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735MAP"}} \ No newline at end of file +{"metadata":{"logFileName":"","recordType":"mapTx","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeMapPayload","serialId":{"streamId":"2bc6b4d1-8534-482c-9004-18a4d2613622","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:32:22.024Z","schemaVersion":8,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001283C138003000205E9C014D3EAB092CA624B5518202DC3658042800000400023622C60CA009F66D48ABFAF81388D8AD18070027D9B2FFCFE9804F13667B1FFD009EC2C76E3FFC82C4E0001004B00C5000000800066C4574101813ECD8B757FAE027D9B30E6FF5604EC363561FE7809EC6CD69BFEC813C4D8A617FC9027D9B2147008604FB163666000016250000802580228000001000096229E1309B51A6FE4204DD361CF1FE5009F6018E1000096020A00000080004D88A57F84027D9B3827002804EC36087600A009F62C289407282C310001C0440188800000006C46DBE02813EC5816D800710052200000001B11B6FAD404FB16054A0000401C8800000006C47B3D24813EC5816D801B100C4200000000AF890F12C580007E87100D4200000008AF4C0F12C580077E7A2C0004000160002001CB028D000000800052C160BC40B5FFFD8A9409D86BFEBB5B40141457FEF53B76C008B467014145800080002BFFCBFFC82C6A0001804B024D000000800036C2213C3B013ECD80096D64027D9AFFD8CDFC04F635FF7983BC09F66C0082AA2014280B1B80006012C0B3400000100004B02BCF0F6D7FE065D602788B0138EB900B1240001012C083400000080009B0C2AF0B804FB15FE6DE171AFFF6C63E04EC15FE1DE670060E40002581EA8000004000135DA6DF0180A0A6ADC2C00D0143CD51897FDA028C8ABB25001A0B0680008012C105400000200009AEDBEFAE005053540EE003C0A326A9CF3FED8143C5667780010582C0004009608AA00000080004D76DE7EE402829ABA88FFDC050F354525FFF80A322BCF23FA602C690000C04B0395000000200016BB4FBD4E01414D3215800802940AB108FFF2030D2000110126200000001AEE5103BE050A15F6F1FFC8404D8800000006BB97C18E0142857DFA800010146200000001AEE89099A050A15F8720000B05DD000000800046BE3743B781428D80E1B00002879B00514B4404F63600827D8C09E22C000400015FFE6007016190000402582CE8000004000135ECEE1DE80A146C02E54758143CD8059AD3E027B1B00613DD004F102C360000804B055D000000200046BCC7C3C781428D80108C6E02829B002B2ECE050A16019A4B29B00AB5C3604F136004E410409EC018A10000960C3A00000080004D7DE9878602851B003923CC05053601623B440A0A6BFB8C3A5014140B0640005012C197400000100005AFE570EF2050A36003A47C80A0A6BFD2C45F014140B054000501101A8200000001B05A90EDC050535FFE605800A0A101B8200000001B08A30EC0050535FFE605300A0A101C8200000005B0C6F0EA4050515FFCA0568B0001000E00","mapSource":"RSU","originIp":"172.18.0.1"},"payload":{"data":{"msgIssueRevision":0,"layerType":"intersectionData","layerID":0,"intersections":{"intersectionGeometry":[{"id":{"id":12110},"revision":0,"refPoint":{"latitude":39.5952649,"longitude":-105.0914122,"elevation":1677.0},"laneWidth":366,"laneSet":{"GenericLane":[{"laneID":2,"ingressApproach":1,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2225,"y":808}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":10517,"y":-161}},"attributes":{"dElevation":-60}},{"delta":{"nodeXY6":{"x":2769,"y":112}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":6142,"y":-180}},"attributes":{"dElevation":-30}},{"delta":{"nodeXY6":{"x":6636,"y":-12}},"attributes":{"dElevation":-20}},{"delta":{"nodeXY6":{"x":3804,"y":-7}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":19,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":4,"connectionID":1}]}},{"laneID":3,"ingressApproach":1,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2222,"y":515}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":2933,"y":-82}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":6259,"y":-85}},"attributes":{"dElevation":-40}},{"delta":{"nodeXY6":{"x":3416,"y":-98}},"attributes":{"dElevation":-20}},{"delta":{"nodeXY6":{"x":6867,"y":-39}},"attributes":{"dElevation":-30}},{"delta":{"nodeXY6":{"x":2657,"y":-55}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":4259,"y":67}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":3481,"y":0}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":18,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":4,"connectionID":1}]}},{"laneID":1,"ingressApproach":1,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2215,"y":1218}}},{"delta":{"nodeXY6":{"x":10451,"y":-223}},"attributes":{"dElevation":-70}},{"delta":{"nodeXY6":{"x":1852,"y":-108}},"attributes":{"dElevation":-10}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":28,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"connectionID":1}]}},{"laneID":4,"ingressApproach":1,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2213,"y":-124}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":7187,"y":20}},"attributes":{"dElevation":-40}},{"delta":{"nodeXY6":{"x":541,"y":40}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":1298,"y":229}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":12,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":7,"connectionID":1}]}},{"laneID":6,"egressApproach":2,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2267,"y":-1019}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":365,"y":7}}}]}},{"laneID":5,"egressApproach":2,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2267,"y":-662}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":338,"y":0}}}]}},{"laneID":7,"egressApproach":2,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":2294,"y":-1463}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":365,"y":27}}}]}},{"laneID":12,"egressApproach":4,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-952,"y":-1898}}},{"delta":{"nodeXY6":{"x":0,"y":-377}}}]}},{"laneID":13,"egressApproach":4,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-1440,"y":-1898}}},{"delta":{"nodeXY6":{"x":7,"y":-390}}},{"delta":{"nodeXY6":{"x":0,"y":0}}},{"delta":{"nodeXY6":{"x":0,"y":7}}}]}},{"laneID":10,"ingressApproach":3,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":705,"y":-1919}}},{"delta":{"nodeXY6":{"x":-1,"y":-7515}},"attributes":{"dElevation":-40}},{"delta":{"nodeXY6":{"x":-41,"y":-5272}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-17,"y":-11337}}},{"delta":{"nodeXY6":{"x":17,"y":-5938}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":0,"y":0}}},{"delta":{"nodeXY6":{"x":-7,"y":-7}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":26,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":6,"connectionID":1}]}},{"laneID":9,"ingressApproach":3,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":1090,"y":-1930}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":9,"y":-4764}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":-20,"y":-6402}},"attributes":{"dElevation":-20}},{"delta":{"nodeXY6":{"x":-34,"y":-7953}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":16,"y":-10940}},"attributes":{"dElevation":20}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":27,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":6,"connectionID":1}]}},{"laneID":11,"ingressApproach":3,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":350,"y":-1925}}},{"delta":{"nodeXY6":{"x":-32,"y":-6698}},"attributes":{"dElevation":-30}},{"delta":{"nodeXY6":{"x":156,"y":-2616}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":18,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":1,"connectionID":1}]}},{"laneID":8,"ingressApproach":3,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":1557,"y":-1956}},"attributes":{"dElevation":-10}},{"delta":{"nodeXY6":{"x":-101,"y":-1956}}},{"delta":{"nodeXY6":{"x":-5,"y":-7393}},"attributes":{"dElevation":-40}},{"delta":{"nodeXY6":{"x":-121,"y":-1636}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":7,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"connectionID":1}]}},{"laneID":15,"ingressApproach":5,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2405,"y":-1018}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-9339,"y":26}},"attributes":{"dElevation":30}},{"delta":{"nodeXY6":{"x":-11895,"y":-38}},"attributes":{"dElevation":50}},{"delta":{"nodeXY6":{"x":-8814,"y":13}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":6,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":8,"connectionID":1}]}},{"laneID":16,"ingressApproach":5,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2337,"y":-656}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-12229,"y":15}},"attributes":{"dElevation":50}},{"delta":{"nodeXY6":{"x":-11362,"y":-37}},"attributes":{"dElevation":30}},{"delta":{"nodeXY6":{"x":-6537,"y":1}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":5,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":8,"connectionID":1}]}},{"laneID":17,"ingressApproach":5,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2338,"y":-284}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-8892,"y":-18}},"attributes":{"dElevation":30}},{"delta":{"nodeXY6":{"x":-11959,"y":-2}},"attributes":{"dElevation":50}},{"delta":{"nodeXY6":{"x":-1564,"y":-180}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":26,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":3,"connectionID":1}]}},{"laneID":14,"ingressApproach":5,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2401,"y":-1380}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-19947,"y":8}},"attributes":{"dElevation":80}},{"delta":{"nodeXY6":{"x":-10108,"y":-7}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":13,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"connectionID":1}]}},{"laneID":18,"egressApproach":6,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2264,"y":479}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":-580,"y":-14}}}]}},{"laneID":19,"egressApproach":6,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2257,"y":796}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":-518,"y":0}}}]}},{"laneID":20,"egressApproach":6,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-2236,"y":1229}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":-484,"y":0}}}]}},{"laneID":23,"ingressApproach":7,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-914,"y":1903}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":225,"y":12288}},"attributes":{"dElevation":30}},{"delta":{"nodeXY6":{"x":40,"y":9634}},"attributes":{"dElevation":-20}},{"delta":{"nodeXY6":{"x":32,"y":8035}},"attributes":{"dElevation":-30}},{"delta":{"nodeXY6":{"x":0,"y":0}}},{"delta":{"nodeXY6":{"x":-7,"y":28}}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":12,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":2,"connectionID":1}]}},{"laneID":22,"ingressApproach":7,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-1221,"y":1914}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":92,"y":10475}},"attributes":{"dElevation":30}},{"delta":{"nodeXY6":{"x":89,"y":11582}},"attributes":{"dElevation":-20}},{"delta":{"nodeXY6":{"x":48,"y":7912}},"attributes":{"dElevation":-30}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":13,"maneuver":{"maneuverStraightAllowed":true,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":2,"connectionID":1}]}},{"laneID":21,"ingressApproach":7,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-1649,"y":1935}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":16,"y":3182}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":21,"y":5991}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":102,"y":4810}}},{"delta":{"nodeXY6":{"x":85,"y":11803}},"attributes":{"dElevation":-30}},{"delta":{"nodeXY6":{"x":19,"y":4161}},"attributes":{"dElevation":-20}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":20,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":false,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":true,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"connectionID":1}]}},{"laneID":24,"ingressApproach":7,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-535,"y":1926}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":28,"y":4582}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":88,"y":3793}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-143,"y":1866}},"attributes":{"dElevation":10}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":6,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":5,"connectionID":1}]}},{"laneID":25,"ingressApproach":7,"laneAttributes":{"directionalUse":{"ingressPath":true,"egressPath":false},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"maneuvers":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":-213,"y":1913}},"attributes":{"dElevation":20}},{"delta":{"nodeXY6":{"x":14,"y":4594}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-91,"y":2238}},"attributes":{"dElevation":10}}]},"connectsTo":{"connectsTo":[{"connectingLane":{"lane":5,"maneuver":{"maneuverStraightAllowed":false,"maneuverNoStoppingAllowed":false,"goWithHalt":false,"maneuverLeftAllowed":true,"maneuverUTurnAllowed":false,"maneuverLeftTurnOnRedAllowed":false,"reserved1":false,"maneuverRightAllowed":false,"maneuverLaneChangeAllowed":false,"yieldAllwaysRequired":false,"maneuverRightTurnOnRedAllowed":false,"caution":false}},"signalGroup":5,"connectionID":1}]}},{"laneID":26,"egressApproach":8,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":724,"y":1902}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-7,"y":352}},"attributes":{"dElevation":10}}]}},{"laneID":27,"egressApproach":8,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":1105,"y":1888}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-7,"y":332}},"attributes":{"dElevation":10}}]}},{"laneID":28,"egressApproach":8,"laneAttributes":{"directionalUse":{"ingressPath":false,"egressPath":true},"shareWith":{"busVehicleTraffic":false,"trackedVehicleTraffic":false,"individualMotorizedVehicleTraffic":false,"taxiVehicleTraffic":false,"overlappingLaneDescriptionProvided":false,"cyclistVehicleTraffic":false,"otherNonMotorizedTrafficTypes":false,"multipleLanesTreatedAsOneLane":false,"pedestrianTraffic":false,"pedestriansTraffic":false},"laneType":{"vehicle":{"isVehicleRevocableLane":false,"isVehicleFlyOverLane":false,"permissionOnRequest":false,"hasIRbeaconCoverage":false,"restrictedToBusUse":false,"restrictedToTaxiUse":false,"restrictedFromPublicUse":false,"hovLaneUseOnly":false}}},"nodeList":{"nodes":[{"delta":{"nodeXY6":{"x":1591,"y":1874}},"attributes":{"dElevation":10}},{"delta":{"nodeXY6":{"x":-14,"y":346}}},{"delta":{"nodeXY6":{"x":0,"y":7}}}]}}]}}]}},"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735MAP"}} \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-psm.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-psm.json index 035b14986..4ce5ed073 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-psm.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-psm.json @@ -1 +1 @@ -{"metadata":{"logFileName":"","recordType":"psmTx","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdePsmPayload","serialId":{"streamId":"9219cf4d-66e3-4b65-8981-b56b50688023","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:33:49.421Z","schemaVersion":7,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"UNKNOWN","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"00201A0000021BD86891DE75F84DA101C13F042E2214141FFF00022C2000270000000163B2CC79860100","psmSource":"RSU","originIp":"172.18.0.1"},"payload":{"data":{"basicType":"aPEDESTRIAN","secMark":3564,"msgCnt":26,"id":"24779D7E","position":{"latitude":40.2397377,"longitude":-74.2761437},"accuracy":{"semiMajor":1.00,"semiMinor":1.00,"orientation":44.9951935489},"speed":0,"heading":8898},"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735PSM"}} \ No newline at end of file +{"metadata":{"logFileName":"","recordType":"psmTx","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdePsmPayload","serialId":{"streamId":"9219cf4d-66e3-4b65-8981-b56b50688023","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:33:49.421Z","schemaVersion":8,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"UNKNOWN","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"00201A0000021BD86891DE75F84DA101C13F042E2214141FFF00022C2000270000000163B2CC79860100","psmSource":"RSU","originIp":"172.18.0.1"},"payload":{"data":{"basicType":"aPEDESTRIAN","secMark":3564,"msgCnt":26,"id":"24779D7E","position":{"latitude":40.2397377,"longitude":-74.2761437},"accuracy":{"semiMajor":1.00,"semiMinor":1.00,"orientation":44.9951935489},"speed":0,"heading":8898},"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735PSM"}} \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-spat.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-spat.json index 366dbb3c8..45f48c796 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-spat.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-spat.json @@ -1 +1 @@ -{"metadata":{"logFileName":"","recordType":"spatTx","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeSpatPayload","serialId":{"streamId":"a80d7125-d548-4114-b435-ce890b8906d3","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:34:40.359Z","schemaVersion":7,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001338000817A780000089680500204642B342B34802021A15A955A940181190ACD0ACD20100868555C555C00104342AAE2AAE002821A15571557000","spatSource":"RSU","originIp":"172.18.0.1","isCertPresent":false},"payload":{"data":{"intersectionStateList":{"intersectionStatelist":[{"id":{"id":12111},"revision":0,"status":{"failureFlash":false,"noValidSPATisAvailableAtThisTime":false,"fixedTimeOperation":false,"standbyOperation":false,"trafficDependentOperation":false,"manualControlIsEnabled":false,"off":false,"stopTimeIsActivated":false,"recentChangeInMAPassignedLanesIDsUsed":false,"recentMAPmessageUpdate":false,"failureMode":false,"noValidMAPisAvailableAtThisTime":false,"signalPriorityIsActive":false,"preemptIsActive":false},"timeStamp":35176,"states":{"movementList":[{"signalGroup":2,"state_time_speed":{"movementEventList":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":22120,"maxEndTime":22121}}]}},{"signalGroup":4,"state_time_speed":{"movementEventList":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":22181,"maxEndTime":22181}}]}},{"signalGroup":6,"state_time_speed":{"movementEventList":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":22120,"maxEndTime":22121}}]}},{"signalGroup":8,"state_time_speed":{"movementEventList":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":21852,"maxEndTime":21852}}]}},{"signalGroup":1,"state_time_speed":{"movementEventList":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":21852,"maxEndTime":21852}}]}},{"signalGroup":5,"state_time_speed":{"movementEventList":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":21852,"maxEndTime":21852}}]}}]}}]}},"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735SPAT"}} \ No newline at end of file +{"metadata":{"logFileName":"","recordType":"spatTx","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeSpatPayload","serialId":{"streamId":"a80d7125-d548-4114-b435-ce890b8906d3","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:34:40.359Z","schemaVersion":8,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001338000817A780000089680500204642B342B34802021A15A955A940181190ACD0ACD20100868555C555C00104342AAE2AAE002821A15571557000","spatSource":"RSU","originIp":"172.18.0.1","isCertPresent":false},"payload":{"data":{"intersectionStateList":{"intersectionStatelist":[{"id":{"id":12111},"revision":0,"status":{"failureFlash":false,"noValidSPATisAvailableAtThisTime":false,"fixedTimeOperation":false,"standbyOperation":false,"trafficDependentOperation":false,"manualControlIsEnabled":false,"off":false,"stopTimeIsActivated":false,"recentChangeInMAPassignedLanesIDsUsed":false,"recentMAPmessageUpdate":false,"failureMode":false,"noValidMAPisAvailableAtThisTime":false,"signalPriorityIsActive":false,"preemptIsActive":false},"timeStamp":35176,"states":{"movementList":[{"signalGroup":2,"state_time_speed":{"movementEventList":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":22120,"maxEndTime":22121}}]}},{"signalGroup":4,"state_time_speed":{"movementEventList":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":22181,"maxEndTime":22181}}]}},{"signalGroup":6,"state_time_speed":{"movementEventList":[{"eventState":"PROTECTED_MOVEMENT_ALLOWED","timing":{"minEndTime":22120,"maxEndTime":22121}}]}},{"signalGroup":8,"state_time_speed":{"movementEventList":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":21852,"maxEndTime":21852}}]}},{"signalGroup":1,"state_time_speed":{"movementEventList":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":21852,"maxEndTime":21852}}]}},{"signalGroup":5,"state_time_speed":{"movementEventList":[{"eventState":"STOP_AND_REMAIN","timing":{"minEndTime":21852,"maxEndTime":21852}}]}}]}}]}},"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735SPAT"}} \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-srm.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-srm.json index 7cfa207c2..7717c67ab 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-srm.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-srm.json @@ -1 +1 @@ -{"metadata":{"logFileName":"","recordType":"srmTx","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeSrmPayload","serialId":{"streamId":"48e23a19-c438-4e97-a54e-150cdf10afe1","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:35:36.923Z","schemaVersion":7,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"OBU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001D2130000010090BD341080D00855C6C0C6899853000A534F7C24CB29897694759B7C000","originIp":"172.18.0.1","srmSource":"RSU"},"payload":{"data":{"second":0,"sequenceNumber":1,"requests":{"signalRequestPackage":[{"request":{"id":{"id":12109},"requestID":4,"requestType":"priorityRequest","inBoundLane":{"lane":13},"outBoundLane":{"lane":4}},"duration":10979}]},"requestor":{"id":{"stationID":2366845094},"type":{"role":"publicTransport"},"position":{"position":{"latitude":39.5904915,"longitude":-105.0913829,"elevation":1685.4},"heading":175.9000}}},"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735SRM"}} \ No newline at end of file +{"metadata":{"logFileName":"","recordType":"srmTx","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeSrmPayload","serialId":{"streamId":"48e23a19-c438-4e97-a54e-150cdf10afe1","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:35:36.923Z","schemaVersion":8,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"OBU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001D2130000010090BD341080D00855C6C0C6899853000A534F7C24CB29897694759B7C000","originIp":"172.18.0.1","srmSource":"RSU"},"payload":{"data":{"second":0,"sequenceNumber":1,"requests":{"signalRequestPackage":[{"request":{"id":{"id":12109},"requestID":4,"requestType":"priorityRequest","inBoundLane":{"lane":13},"outBoundLane":{"lane":4}},"duration":10979}]},"requestor":{"id":{"stationID":2366845094},"type":{"role":"publicTransport"},"position":{"position":{"latitude":39.5904915,"longitude":-105.0913829,"elevation":1685.4},"heading":175.9000}}},"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735SRM"}} \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-ssm.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-ssm.json index f8e77af81..47a5d9d6e 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-ssm.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-ssm.json @@ -1 +1 @@ -{"metadata":{"logFileName":"","recordType":"ssmTx","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeSsmPayload","serialId":{"streamId":"b04f6d45-d1f2-4cfb-8a6c-f542bbd0aa51","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:36:31.804Z","schemaVersion":7,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001E120000000005E9C04071A26614C06000040BA000","originIp":"172.18.0.1","ssmSource":"RSU"},"payload":{"data":{"second":0,"status":{"signalStatus":[{"sequenceNumber":0,"id":{"id":12110},"sigStatus":{"signalStatusPackage":[{"requester":{"id":{"stationID":2366845094},"request":3,"sequenceNumber":0,"typeData":{"role":"publicTransport"}},"inboundOn":{"lane":23},"status":"granted"}]}}]}},"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735SSM"}} \ No newline at end of file +{"metadata":{"logFileName":"","recordType":"ssmTx","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeSsmPayload","serialId":{"streamId":"b04f6d45-d1f2-4cfb-8a6c-f542bbd0aa51","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:36:31.804Z","schemaVersion":8,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001E120000000005E9C04071A26614C06000040BA000","originIp":"172.18.0.1","ssmSource":"RSU"},"payload":{"data":{"second":0,"status":{"signalStatus":[{"sequenceNumber":0,"id":{"id":12110},"sigStatus":{"signalStatusPackage":[{"requester":{"id":{"stationID":2366845094},"request":3,"sequenceNumber":0,"typeData":{"role":"publicTransport"}},"inboundOn":{"lane":23},"status":"granted"}]}}]}},"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735SSM"}} \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-tim-specific.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-tim-specific.xml index fadc9ccb2..f5adf6909 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-tim-specific.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-tim-specific.xml @@ -21,7 +21,7 @@ 0 2024-12-10T17:20:48.699Z - 7 + 8 0 RSU diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-tim.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-tim.json index 192c901b5..0b8d8bc40 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-tim.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/services/asn1/expected-tim.json @@ -1 +1 @@ -{"metadata":{"logFileName":"","recordType":"dnMsg","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeTimPayload","serialId":{"streamId":"d1475b66-9f6d-4a85-a4bd-bc54a825fb0f","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:20:48.699Z","schemaVersion":7,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"03810040038081D4001F80D07016DA410000000000000BBC2B0F775D9B0309C271431FA166EE0A27FFF93F136B8205A0A107FB2EF979F4C5BFAEEC97E4AD70C2FB36CD9730BECDB355CC2FD2A7556B160B98B46AB98AE62C185FA55EFB468D5B4000000004E2863F42CDDC144FF7980040401262CDD7B809C509F5C62CDD35519C507B9062CDCEE129C505CF262CDCA5FF9C50432C62CDC5D3D9C502E3E62CDC13E79C501E9262CDBCA2D9C5013EE62CDB80359C500E6A62CDB36299C500BC862CDAEC1D9C50093C62CDAA2109C5006EA1080203091A859EEEBB36006001830001AAD27F4FF7580001AAD355E39B5880A30029D6585009EF808332D8D9F80C3855151B38C772F765007967EC1170BCB7937F5CB880A25A52863493BCB87570DBCB5ABC6BFB2FAEC606CFA34EB95A24790B2017366D3AABE7729E00","originIp":"172.18.0.1"},"payload":{"data":{"msgCnt":1,"timeStamp":449089,"packetID":"0000000000000BBC2B","urlB":"null","dataFrames":[{"doNotUse1":0,"frameType":"advisory","msgId":{"roadSignID":{"position":{"lat":411269876,"long":-1047269563},"viewAngle":{"from000-0to022-5degrees":true,"from022-5to045-0degrees":true,"from045-0to067-5degrees":true,"from067-5to090-0degrees":true,"from090-0to112-5degrees":true,"from112-5to135-0degrees":true,"from135-0to157-5degrees":true,"from157-5to180-0degrees":true,"from180-0to202-5degrees":true,"from202-5to225-0degrees":true,"from225-0to247-5degrees":true,"from247-5to270-0degrees":true,"from270-0to292-5degrees":true,"from292-5to315-0degrees":true,"from315-0to337-5degrees":true,"from337-5to360-0degrees":true},"mutcdCode":"warning"}},"startYear":2018,"startTime":448260,"durationTime":1440,"priority":5,"doNotUse2":0,"regions":[{"name":"westbound_I-80_366.0_365.0_RSU-10.145.1.100_RW_4456","id":{"region":0,"id":0},"anchor":{"lat":411269876,"long":-1047269563},"laneWidth":32700,"directionality":"both","closedPath":false,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":true,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"path":{"scale":0,"offset":{"xy":{"nodes":[{"delta":{"node-LatLon":{"lon":-1047287423,"lat":411264686}}},{"delta":{"node-LatLon":{"lon":-1047305390,"lat":411260104}}},{"delta":{"node-LatLon":{"lon":-1047323629,"lat":411256185}}},{"delta":{"node-LatLon":{"lon":-1047342080,"lat":411252886}}},{"delta":{"node-LatLon":{"lon":-1047360706,"lat":411250207}}},{"delta":{"node-LatLon":{"lon":-1047379480,"lat":411248201}}},{"delta":{"node-LatLon":{"lon":-1047398354,"lat":411246839}}},{"delta":{"node-LatLon":{"lon":-1047417290,"lat":411246133}}},{"delta":{"node-LatLon":{"lon":-1047436246,"lat":411245796}}},{"delta":{"node-LatLon":{"lon":-1047455202,"lat":411245470}}},{"delta":{"node-LatLon":{"lon":-1047474159,"lat":411245173}}}]}}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"advisory":[{"item":{"itis":777}},{"item":{"itis":13579}}]},"url":"null"}]},"dataType":"us.dot.its.jpo.ode.plugin.j2735.travelerinformation.TravelerInformation"}} \ No newline at end of file +{"metadata":{"logFileName":"","recordType":"dnMsg","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeTimPayload","serialId":{"streamId":"d1475b66-9f6d-4a85-a4bd-bc54a825fb0f","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-10T17:20:48.699Z","schemaVersion":8,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"03810040038081D4001F80D07016DA410000000000000BBC2B0F775D9B0309C271431FA166EE0A27FFF93F136B8205A0A107FB2EF979F4C5BFAEEC97E4AD70C2FB36CD9730BECDB355CC2FD2A7556B160B98B46AB98AE62C185FA55EFB468D5B4000000004E2863F42CDDC144FF7980040401262CDD7B809C509F5C62CDD35519C507B9062CDCEE129C505CF262CDCA5FF9C50432C62CDC5D3D9C502E3E62CDC13E79C501E9262CDBCA2D9C5013EE62CDB80359C500E6A62CDB36299C500BC862CDAEC1D9C50093C62CDAA2109C5006EA1080203091A859EEEBB36006001830001AAD27F4FF7580001AAD355E39B5880A30029D6585009EF808332D8D9F80C3855151B38C772F765007967EC1170BCB7937F5CB880A25A52863493BCB87570DBCB5ABC6BFB2FAEC606CFA34EB95A24790B2017366D3AABE7729E00","originIp":"172.18.0.1"},"payload":{"data":{"msgCnt":1,"timeStamp":449089,"packetID":"0000000000000BBC2B","urlB":"null","dataFrames":[{"doNotUse1":0,"frameType":"advisory","msgId":{"roadSignID":{"position":{"lat":411269876,"long":-1047269563},"viewAngle":{"from000-0to022-5degrees":true,"from022-5to045-0degrees":true,"from045-0to067-5degrees":true,"from067-5to090-0degrees":true,"from090-0to112-5degrees":true,"from112-5to135-0degrees":true,"from135-0to157-5degrees":true,"from157-5to180-0degrees":true,"from180-0to202-5degrees":true,"from202-5to225-0degrees":true,"from225-0to247-5degrees":true,"from247-5to270-0degrees":true,"from270-0to292-5degrees":true,"from292-5to315-0degrees":true,"from315-0to337-5degrees":true,"from337-5to360-0degrees":true},"mutcdCode":"warning"}},"startYear":2018,"startTime":448260,"durationTime":1440,"priority":5,"doNotUse2":0,"regions":[{"name":"westbound_I-80_366.0_365.0_RSU-10.145.1.100_RW_4456","id":{"region":0,"id":0},"anchor":{"lat":411269876,"long":-1047269563},"laneWidth":32700,"directionality":"both","closedPath":false,"direction":{"from000-0to022-5degrees":false,"from022-5to045-0degrees":false,"from045-0to067-5degrees":false,"from067-5to090-0degrees":false,"from090-0to112-5degrees":false,"from112-5to135-0degrees":false,"from135-0to157-5degrees":false,"from157-5to180-0degrees":false,"from180-0to202-5degrees":false,"from202-5to225-0degrees":false,"from225-0to247-5degrees":false,"from247-5to270-0degrees":true,"from270-0to292-5degrees":false,"from292-5to315-0degrees":false,"from315-0to337-5degrees":false,"from337-5to360-0degrees":false},"description":{"path":{"scale":0,"offset":{"xy":{"nodes":[{"delta":{"node-LatLon":{"lon":-1047287423,"lat":411264686}}},{"delta":{"node-LatLon":{"lon":-1047305390,"lat":411260104}}},{"delta":{"node-LatLon":{"lon":-1047323629,"lat":411256185}}},{"delta":{"node-LatLon":{"lon":-1047342080,"lat":411252886}}},{"delta":{"node-LatLon":{"lon":-1047360706,"lat":411250207}}},{"delta":{"node-LatLon":{"lon":-1047379480,"lat":411248201}}},{"delta":{"node-LatLon":{"lon":-1047398354,"lat":411246839}}},{"delta":{"node-LatLon":{"lon":-1047417290,"lat":411246133}}},{"delta":{"node-LatLon":{"lon":-1047436246,"lat":411245796}}},{"delta":{"node-LatLon":{"lon":-1047455202,"lat":411245470}}},{"delta":{"node-LatLon":{"lon":-1047474159,"lat":411245173}}}]}}}}}],"doNotUse3":0,"doNotUse4":0,"content":{"advisory":[{"item":{"itis":777}},{"item":{"itis":13579}}]},"url":"null"}]},"dataType":"us.dot.its.jpo.ode.plugin.j2735.travelerinformation.TravelerInformation"}} \ No newline at end of file diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/traveler/aemInputContainingCircleGeometry.xml b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/traveler/aemInputContainingCircleGeometry.xml index 94ca66b8d..f0ed3ca7f 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/traveler/aemInputContainingCircleGeometry.xml +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/traveler/aemInputContainingCircleGeometry.xml @@ -9,7 +9,7 @@ 0 2024-11-05T16:51:14.473Z - 7 + 8 8640 2024-09-25T10:00:00.000Z TMC diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/bsm/BsmReceiverTest_ValidBSM_expected.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/bsm/BsmReceiverTest_ValidBSM_expected.json index 3b7345c27..d6e17f831 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/bsm/BsmReceiverTest_ValidBSM_expected.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/bsm/BsmReceiverTest_ValidBSM_expected.json @@ -22,7 +22,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-26T23:53:21.120Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "OBU", "sanitized": false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/map/MapReceiverTest_ValidMAP_expected.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/map/MapReceiverTest_ValidMAP_expected.json index 36945c4eb..264f694d2 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/map/MapReceiverTest_ValidMAP_expected.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/map/MapReceiverTest_ValidMAP_expected.json @@ -11,7 +11,7 @@ "serialNumber" : 0 }, "odeReceivedAt": "2024-11-26T23:53:21.120Z", - "schemaVersion" : 7, + "schemaVersion" : 8, "maxDurationTime" : 0, "recordGeneratedBy" : "RSU", "sanitized" : false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/psm/PsmReceiverTest_ValidPSM_expected.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/psm/PsmReceiverTest_ValidPSM_expected.json index 4c53d160d..fcf052b44 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/psm/PsmReceiverTest_ValidPSM_expected.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/psm/PsmReceiverTest_ValidPSM_expected.json @@ -11,7 +11,7 @@ "serialNumber" : 0 }, "odeReceivedAt" : "2024-11-26T23:53:21.120Z", - "schemaVersion" : 7, + "schemaVersion" : 8, "maxDurationTime" : 0, "recordGeneratedBy" : "UNKNOWN", "sanitized" : false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/spat/SpatReceiverTest_ValidSPAT_expected.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/spat/SpatReceiverTest_ValidSPAT_expected.json index 5602460b0..0d4ccc0f0 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/spat/SpatReceiverTest_ValidSPAT_expected.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/spat/SpatReceiverTest_ValidSPAT_expected.json @@ -11,7 +11,7 @@ "serialNumber" : 0 }, "odeReceivedAt" : "2024-11-26T23:53:21.120Z", - "schemaVersion" : 7, + "schemaVersion" : 8, "maxDurationTime" : 0, "recordGeneratedBy" : "RSU", "sanitized" : false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/srm/SrmReceiverTest_ExpectedOutput.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/srm/SrmReceiverTest_ExpectedOutput.json index 17e87d5f6..b7b6d124e 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/srm/SrmReceiverTest_ExpectedOutput.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/srm/SrmReceiverTest_ExpectedOutput.json @@ -2,7 +2,7 @@ "metadata" : { "securityResultCode" : "success", "recordGeneratedBy" : "OBU", - "schemaVersion" : 7, + "schemaVersion" : 8, "payloadType" : "us.dot.its.jpo.ode.model.OdeAsn1Payload", "serialId" : { "recordId" : 0, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/ssm/SsmReceiverTest_ValidSSM_expected.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/ssm/SsmReceiverTest_ValidSSM_expected.json index 32881d799..5d86e494b 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/ssm/SsmReceiverTest_ValidSSM_expected.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/ssm/SsmReceiverTest_ValidSSM_expected.json @@ -11,7 +11,7 @@ "serialNumber": 0 }, "odeReceivedAt": "2024-11-26T23:53:21.120Z", - "schemaVersion": 7, + "schemaVersion": 8, "maxDurationTime": 0, "recordGeneratedBy": "RSU", "sanitized": false, diff --git a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/tim/TimReceiverTest_ValidTIM_expected.json b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/tim/TimReceiverTest_ValidTIM_expected.json index 51f34623f..78665f1f0 100644 --- a/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/tim/TimReceiverTest_ValidTIM_expected.json +++ b/jpo-ode-svcs/src/test/resources/us/dot/its/jpo/ode/udp/tim/TimReceiverTest_ValidTIM_expected.json @@ -2,7 +2,7 @@ "metadata" : { "securityResultCode" : "success", "recordGeneratedBy" : "RSU", - "schemaVersion" : 7, + "schemaVersion" : 8, "payloadType" : "us.dot.its.jpo.ode.model.OdeAsn1Payload", "serialId" : { "recordId" : 0, From 5aa498a4d35b26c459c66fec69cca06db80f14b6 Mon Sep 17 00:00:00 2001 From: Drew Johnston <31270488+drewjj@users.noreply.github.com> Date: Mon, 23 Dec 2024 17:22:02 -0700 Subject: [PATCH 2/5] Update formatting for checkstyle --- .../dot/its/jpo/ode/model/OdeMsgMetadata.java | 475 ++++++------ .../LogFileToAsn1CodecPublisherTest.java | 691 +++++++++--------- .../ode/traveler/TimTransmogrifierTest.java | 36 +- 3 files changed, 636 insertions(+), 566 deletions(-) diff --git a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java index 6752229d6..a49f8a031 100644 --- a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java +++ b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java @@ -1,233 +1,294 @@ /******************************************************************************* * Copyright 2018 572682 * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not + *

Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + *

http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + *

Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. ******************************************************************************/ + package us.dot.its.jpo.ode.model; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonPropertyOrder; - import us.dot.its.jpo.ode.util.DateTimeUtils; import us.dot.its.jpo.ode.util.JsonUtils; +/** + * Base ODE Metadata class. + */ @JsonPropertyOrder({ "logFileName", "recordType", "receivedMessageDetails", "payloadType", "serialId", - "odeReceivedAt", "schemaVersion", "maxDurationTime", "recordGeneratedAt", "recordGeneratedBy", "sanitized", "asn1" }) + "odeReceivedAt", "schemaVersion", "maxDurationTime", "recordGeneratedAt", "recordGeneratedBy", "sanitized", + "asn1" }) public class OdeMsgMetadata extends OdeObject { - public enum GeneratedBy { - TMC, OBU, RSU, TMC_VIA_SAT, TMC_VIA_SNMP, UNKNOWN - } - - private static final long serialVersionUID = 3979762143291085955L; - private static final int staticSchemaVersion = 8; - - private String payloadType; - private SerialId serialId; - private String odeReceivedAt; - private int schemaVersion; - private int maxDurationTime; - private String odePacketID; - private String odeTimStartDateTime; - private String recordGeneratedAt; - private GeneratedBy recordGeneratedBy; - private boolean sanitized = false; - - @JsonInclude(JsonInclude.Include.NON_NULL) - private String asn1 = null; - - public OdeMsgMetadata() { - this(OdeMsgPayload.class.getName(), new SerialId(), DateTimeUtils.now()); - } - - public OdeMsgMetadata(OdeMsgPayload payload) { - this(payload, new SerialId(), DateTimeUtils.now()); - } - - private OdeMsgMetadata(OdeMsgPayload payload, SerialId serialId, String receivedAt) { - this(payload.getClass().getName(), serialId, receivedAt); - setAsn1(payload); - } - - public OdeMsgMetadata(String payloadType, SerialId serialId, String receivedAt) { - super(); - this.schemaVersion = staticSchemaVersion; - this.payloadType = payloadType; - this.serialId = serialId; - this.odeReceivedAt = receivedAt; - } - - public String getPayloadType() { - return payloadType; - } - - public OdeMsgMetadata setPayloadType(OdeDataType payloadType) { - this.payloadType = payloadType.getShortName(); - return this; - } - - public OdeMsgMetadata setPayloadType(String payloadType) { - this.payloadType = payloadType; - return this; - } - - public SerialId getSerialId() { - return serialId; - } - - public void setSerialId(SerialId serialId) { - this.serialId = serialId; - } - - public String getOdeReceivedAt() { - return odeReceivedAt; - } - - public void setOdeReceivedAt(String receivedAt) { - this.odeReceivedAt = receivedAt; - } - - public int getSchemaVersion() { - return schemaVersion; - } - - public void setSchemaVersion(int aSchemaVersion) { - schemaVersion = aSchemaVersion; - } - - public int getMaxDurationTime() { - return maxDurationTime; - } - - public void setMaxDurationTime(int maxDurationTime) { - this.maxDurationTime = maxDurationTime; - } - - public String getOdePacketID() { - return odePacketID; - } - - public void setOdePacketID(String odePacketID) { - this.odePacketID = odePacketID; - } - - public String getOdeTimStartDateTime() { - return odeTimStartDateTime; - } - - public void setOdeTimStartDateTime(String odeTimStartDateTime) { - this.odeTimStartDateTime = odeTimStartDateTime; - } - - public String getRecordGeneratedAt() { - return recordGeneratedAt; - } - - public void setRecordGeneratedAt(String recordGeneratedAt) { - this.recordGeneratedAt = recordGeneratedAt; - } - - public GeneratedBy getRecordGeneratedBy() { - return recordGeneratedBy; - } - - public void setRecordGeneratedBy(GeneratedBy recordGeneratedBy) { - this.recordGeneratedBy = recordGeneratedBy; - } - - public boolean isSanitized() { - return sanitized; - } - - public void setSanitized(boolean sanitized) { - this.sanitized = sanitized; - } - - public static int getStaticSchemaVersion() { - return staticSchemaVersion; - } - - public String getAsn1() { - return asn1; - } - - public void setAsn1(String asn1) { - this.asn1 = asn1; - } - - public void setAsn1(OdeMsgPayload payload) { - if (payload != null && payload.getData() != null ) { - if (JsonUtils.getJsonNode(payload.getData().toString(), "bytes") != null) - this.asn1 = JsonUtils.getJsonNode(payload.getData().toString(), "bytes").asText(); + /** + * Enum for conveying where a message was generated from. + */ + public enum GeneratedBy { + TMC, OBU, RSU, TMC_VIA_SAT, TMC_VIA_SNMP, UNKNOWN + } + + private static final long serialVersionUID = 3979762143291085955L; + private static final int staticSchemaVersion = 8; + + private String payloadType; + private SerialId serialId; + private String odeReceivedAt; + private int schemaVersion; + private int maxDurationTime; + private String odePacketID; + private String odeTimStartDateTime; + private String recordGeneratedAt; + private GeneratedBy recordGeneratedBy; + private boolean sanitized = false; + + @JsonInclude(JsonInclude.Include.NON_NULL) + private String asn1 = null; + + public OdeMsgMetadata() { + this(OdeMsgPayload.class.getName(), new SerialId(), DateTimeUtils.now()); + } + + /** + * Constructs an OdeMsgMetadata object with the specified payload. + * + * @param payload the payload to be set + */ + public OdeMsgMetadata(OdeMsgPayload payload) { + this(payload, new SerialId(), DateTimeUtils.now()); + } + + /** + * Constructs an OdeMsgMetadata object with the specified payload, serial ID, + * and received time. + * + * @param payload the payload to be set + * @param serialId the serial ID to be set + * @param receivedAt the time the message was received + */ + private OdeMsgMetadata(OdeMsgPayload payload, SerialId serialId, String receivedAt) { + this(payload.getClass().getName(), serialId, receivedAt); + setAsn1(payload); + } + + /** + * Constructs an OdeMsgMetadata object with the specified payload type, serial + * ID, and received time. + * + * @param payloadType the type of the payload + * @param serialId the serial ID to be set + * @param receivedAt the time the message was received + */ + public OdeMsgMetadata(String payloadType, SerialId serialId, String receivedAt) { + super(); + this.schemaVersion = staticSchemaVersion; + this.payloadType = payloadType; + this.serialId = serialId; + this.odeReceivedAt = receivedAt; + } + + public String getPayloadType() { + return payloadType; + } + + public OdeMsgMetadata setPayloadType(OdeDataType payloadType) { + this.payloadType = payloadType.getShortName(); + return this; + } + + public OdeMsgMetadata setPayloadType(String payloadType) { + this.payloadType = payloadType; + return this; + } + + public SerialId getSerialId() { + return serialId; + } + + public void setSerialId(SerialId serialId) { + this.serialId = serialId; + } + + public String getOdeReceivedAt() { + return odeReceivedAt; + } + + public void setOdeReceivedAt(String receivedAt) { + this.odeReceivedAt = receivedAt; + } + + public int getSchemaVersion() { + return schemaVersion; + } + + public void setSchemaVersion(int schemaVersion) { + this.schemaVersion = schemaVersion; + } + + public int getMaxDurationTime() { + return maxDurationTime; + } + + public void setMaxDurationTime(int maxDurationTime) { + this.maxDurationTime = maxDurationTime; + } + + public String getOdePacketID() { + return odePacketID; + } + + public void setOdePacketID(String odePacketID) { + this.odePacketID = odePacketID; + } + + public String getOdeTimStartDateTime() { + return odeTimStartDateTime; + } + + public void setOdeTimStartDateTime(String odeTimStartDateTime) { + this.odeTimStartDateTime = odeTimStartDateTime; + } + + public String getRecordGeneratedAt() { + return recordGeneratedAt; + } + + public void setRecordGeneratedAt(String recordGeneratedAt) { + this.recordGeneratedAt = recordGeneratedAt; + } + + public GeneratedBy getRecordGeneratedBy() { + return recordGeneratedBy; + } + + public void setRecordGeneratedBy(GeneratedBy recordGeneratedBy) { + this.recordGeneratedBy = recordGeneratedBy; + } + + public boolean isSanitized() { + return sanitized; + } + + public void setSanitized(boolean sanitized) { + this.sanitized = sanitized; + } + + public static int getStaticSchemaVersion() { + return staticSchemaVersion; + } + + public String getAsn1() { + return asn1; + } + + public void setAsn1(String asn1) { + this.asn1 = asn1; + } + + /** + * Sets the ASN1 value for the metadata object. + * + * @param payload the ASN1 payload hex string + */ + public void setAsn1(OdeMsgPayload payload) { + if (payload != null && payload.getData() != null) { + if (JsonUtils.getJsonNode(payload.getData().toString(), "bytes") != null) { + this.asn1 = JsonUtils.getJsonNode(payload.getData().toString(), "bytes").asText(); } - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((odeReceivedAt == null) ? 0 : odeReceivedAt.hashCode()); - result = prime * result + ((payloadType == null) ? 0 : payloadType.hashCode()); - result = prime * result + ((recordGeneratedAt == null) ? 0 : recordGeneratedAt.hashCode()); - result = prime * result + ((recordGeneratedBy == null) ? 0 : recordGeneratedBy.hashCode()); - result = prime * result + (sanitized ? 1231 : 1237); - result = prime * result + schemaVersion; - result = prime * result + ((serialId == null) ? 0 : serialId.hashCode()); - result = prime * result + ((asn1 == null) ? 0 : asn1.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - OdeMsgMetadata other = (OdeMsgMetadata) obj; - if (odeReceivedAt == null) { - if (other.odeReceivedAt != null) - return false; - } else if (!odeReceivedAt.equals(other.odeReceivedAt)) - return false; - if (payloadType == null) { - if (other.payloadType != null) - return false; - } else if (!payloadType.equals(other.payloadType)) - return false; - if (recordGeneratedAt == null) { - if (other.recordGeneratedAt != null) - return false; - } else if (!recordGeneratedAt.equals(other.recordGeneratedAt)) - return false; - if (recordGeneratedBy != other.recordGeneratedBy) - return false; - if (sanitized != other.sanitized) - return false; - if (schemaVersion != other.schemaVersion) - return false; - if (serialId == null) { - if (other.serialId != null) - return false; - } else if (!serialId.equals(other.serialId)) - return false; - if (asn1 == null) { - if (other.asn1 != null) - return false; - } else if (!asn1.equals(other.asn1)) - return false; + } + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((odeReceivedAt == null) ? 0 : odeReceivedAt.hashCode()); + result = prime * result + ((payloadType == null) ? 0 : payloadType.hashCode()); + result = prime * result + ((recordGeneratedAt == null) ? 0 : recordGeneratedAt.hashCode()); + result = prime * result + ((recordGeneratedBy == null) ? 0 : recordGeneratedBy.hashCode()); + result = prime * result + (sanitized ? 1231 : 1237); + result = prime * result + schemaVersion; + result = prime * result + ((serialId == null) ? 0 : serialId.hashCode()); + result = prime * result + ((asn1 == null) ? 0 : asn1.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { return true; - } + } + + if (obj == null) { + return false; + } + + if (getClass() != obj.getClass()) { + return false; + } + + OdeMsgMetadata other = (OdeMsgMetadata) obj; + if (odeReceivedAt == null) { + if (other.odeReceivedAt != null) { + return false; + } + } else if (!odeReceivedAt.equals(other.odeReceivedAt)) { + return false; + } + + if (payloadType == null) { + if (other.payloadType != null) { + return false; + } + } else if (!payloadType.equals(other.payloadType)) { + return false; + } + + if (recordGeneratedAt == null) { + if (other.recordGeneratedAt != null) { + return false; + } + } else if (!recordGeneratedAt.equals(other.recordGeneratedAt)) { + return false; + } + + if (recordGeneratedBy != other.recordGeneratedBy) { + return false; + } + + if (sanitized != other.sanitized) { + return false; + } + + if (schemaVersion != other.schemaVersion) { + return false; + } + + if (serialId == null) { + if (other.serialId != null) { + return false; + } + } else if (!serialId.equals(other.serialId)) { + return false; + } + + if (asn1 == null) { + if (other.asn1 != null) { + return false; + } + } else if (!asn1.equals(other.asn1)) { + return false; + } + + return true; + } } diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java index f3e8fa9c8..33878ab0d 100644 --- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java +++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java @@ -1,20 +1,29 @@ /******************************************************************************* * Copyright 2018 572682 * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not + *

Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + *

http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + *

Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. ******************************************************************************/ + package us.dot.its.jpo.ode.coder.stream; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; + +import java.io.BufferedInputStream; +import java.io.ByteArrayInputStream; +import java.util.List; import mockit.Expectations; import mockit.Injectable; import mockit.Mocked; @@ -31,348 +40,354 @@ import us.dot.its.jpo.ode.model.OdeLogMetadata.RecordType; import us.dot.its.jpo.ode.util.DateTimeUtils; -import java.io.BufferedInputStream; -import java.io.ByteArrayInputStream; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; - class LogFileToAsn1CodecPublisherTest { - private static final String GZ = ".gz"; - private static final String schemaVersion = "8"; - - @Tested - LogFileToAsn1CodecPublisher testLogFileToAsn1CodecPublisher; - - @Injectable - StringPublisher injectableStringPublisher; - - @Injectable - JsonTopics injectableJsonTopics; - - @Injectable - RawEncodedJsonTopics injectableRawEncodedJsonTopics; - - @Test - void testPublishInit(@Mocked LogFileParser mockLogFileParser) throws Exception { - new Expectations() { - { - LogFileParser.factory(anyString); - result = mockLogFileParser; - - mockLogFileParser.parseFile((BufferedInputStream) any, anyString); - result = ParserStatus.INIT; - } - }; - - List dataList = testLogFileToAsn1CodecPublisher.publish( - new BufferedInputStream(new ByteArrayInputStream(new byte[0])), - "fileName", ImporterFileType.LOG_FILE); - - assertTrue(dataList.isEmpty()); - } - - @Test - void testPublishEOF(@Mocked LogFileParser mockLogFileParser) throws Exception { - new Expectations() { - { - LogFileParser.factory(anyString); - result = mockLogFileParser; - - mockLogFileParser.parseFile((BufferedInputStream) any, anyString); - result = ParserStatus.EOF; - } - }; - - List dataList = testLogFileToAsn1CodecPublisher.publish( - new BufferedInputStream(new ByteArrayInputStream(new byte[0])), - "fileName", ImporterFileType.LOG_FILE); - - assertTrue(dataList.isEmpty()); - } - - @Test - void testPublishThrowsIllegalArgumentException() { - // If the filename does not follow expected filename pattern, - // IllegalArgumentException should be thrown - assertThrows(IllegalArgumentException.class, () -> { - // If the filename does not follow expected filename pattern, - // IllegalArgumentException should be thrown - testLogFileToAsn1CodecPublisher.publish(new BufferedInputStream(new ByteArrayInputStream(new byte[0])), - "fileName", ImporterFileType.LOG_FILE); - fail("Expected an IllegalArgumentException to be thrown"); - }); - } - - @Test - void testPublishThrowsLogFileToAsn1CodecPublisherException(@Mocked LogFileParser mockLogFileParser) { - assertThrows(LogFileToAsn1CodecPublisherException.class, () -> { - new Expectations() { - { - LogFileParser.factory(anyString); - result = mockLogFileParser; - - /* - * If the embedded parser fails to parse a log file header, it may throw an - * exception - * which is then caught by the parser and re-thrown as - * LogFileToAsn1CodecPublisherException. - * This mocked object will simulate that eventuality. - */ - mockLogFileParser.parseFile((BufferedInputStream) any, anyString); - result = new LogFileToAsn1CodecPublisherException(anyString, (Exception) any); - } - }; - - testLogFileToAsn1CodecPublisher.publish(new BufferedInputStream(new ByteArrayInputStream(new byte[0])), - "fileName", ImporterFileType.LOG_FILE); - fail("Expected an LogFileToAsn1CodecPublisherException to be thrown"); - }); - } - - @Test - void testPublishDecodeFailure(@Mocked LogFileParser mockLogFileParser) throws Exception { - new Expectations() { - { - LogFileParser.factory(anyString); - result = mockLogFileParser; - - mockLogFileParser.parseFile((BufferedInputStream) any, anyString); - result = ParserStatus.ERROR; - } - }; - - List dataList = testLogFileToAsn1CodecPublisher.publish( - new BufferedInputStream(new ByteArrayInputStream(new byte[0])), - "fileName", ImporterFileType.LOG_FILE); - - assertTrue(dataList.isEmpty()); - } - - @Test - void testPublishBsmTxLogFile() throws Exception { - - byte[] buf = new byte[]{ - (byte) 0x00, // 1. direction - (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude - (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude - (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation - (byte) 0x04, (byte) 0x00, // 2.3 speed - (byte) 0x09, (byte) 0x27, // 2.4 heading - (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 3. utcTimeInSec - (byte) 0x8f, (byte) 0x01, // 4. mSec - (byte) 0x00, // 5. securityResultCode - (byte) 0x06, (byte) 0x00, // 6.0 payloadLength - // 6.1 payload - (byte) 0x03, (byte) 0x81, (byte) 0x00, (byte) 0x14, (byte) 0x03, (byte) 0x80 - }; - - String filename = RecordType.bsmTx.name() + GZ; - - BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); - - List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); - - for (OdeData data : dataList) { - assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), - DateTimeUtils.nowZDT()) > 0); - data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); - data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); - String asn1String = data.getMetadata().getAsn1(); - var expected = String.format("{\"metadata\":{\"bsmSource\":\"EV\",\"logFileName\":\"bsmTx.gz\",\"recordType\":\"bsmTx\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false,\"asn1\":\"%s\"},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"%s\"}}}", schemaVersion, asn1String, asn1String); - assertEquals(expected, data.toJson()); - } - } - - @Test - void testPublishDistressNotificationLogFile() throws Exception { - - byte[] buf = new byte[]{ - (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 1.1 latitude - (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 1.2 longitude - (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 1.3 elevation - (byte) 0x04, (byte) 0x00, // 1.4 speed - (byte) 0x09, (byte) 0x27, // 1.5 heading - (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 2. utcTimeInSec - (byte) 0x8f, (byte) 0x01, // 3. mSec - (byte) 0x00, // 4. securityResultCode - (byte) 0x06, (byte) 0x00, // 5.1 payloadLength - // 5.2 payload - (byte) 0x03, (byte) 0x81, (byte) 0x00, (byte) 0x40, (byte) 0x03, (byte) 0x80 - }; - - String filename = RecordType.dnMsg.name() + GZ; - - BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); - - List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); - - for (OdeData data : dataList) { - assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), - DateTimeUtils.nowZDT()) > 0); - data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); - data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); - var expected = String.format("{\"metadata\":{\"logFileName\":\"dnMsg.gz\",\"recordType\":\"dnMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"encodings\":[{\"elementName\":\"root\",\"elementType\":\"Ieee1609Dot2Data\",\"encodingRule\":\"COER\"},{\"elementName\":\"unsecuredData\",\"elementType\":\"MessageFrame\",\"encodingRule\":\"UPER\"}],\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"038100400380\"}}}", schemaVersion); + private static final String GZ = ".gz"; + private static final String schemaVersion = "8"; + + @Tested + LogFileToAsn1CodecPublisher testLogFileToAsn1CodecPublisher; + + @Injectable + StringPublisher injectableStringPublisher; + + @Injectable + JsonTopics injectableJsonTopics; + + @Injectable + RawEncodedJsonTopics injectableRawEncodedJsonTopics; + + @Test + void testPublishInit(@Mocked LogFileParser mockLogFileParser) throws Exception { + new Expectations() { + { + LogFileParser.factory(anyString); + result = mockLogFileParser; + + mockLogFileParser.parseFile((BufferedInputStream) any, anyString); + result = ParserStatus.INIT; + } + }; + + List dataList = testLogFileToAsn1CodecPublisher.publish( + new BufferedInputStream(new ByteArrayInputStream(new byte[0])), + "fileName", ImporterFileType.LOG_FILE); + + assertTrue(dataList.isEmpty()); + } + + @Test + void testPublishEOF(@Mocked LogFileParser mockLogFileParser) throws Exception { + new Expectations() { + { + LogFileParser.factory(anyString); + result = mockLogFileParser; + + mockLogFileParser.parseFile((BufferedInputStream) any, anyString); + result = ParserStatus.EOF; + } + }; + + List dataList = testLogFileToAsn1CodecPublisher.publish( + new BufferedInputStream(new ByteArrayInputStream(new byte[0])), + "fileName", ImporterFileType.LOG_FILE); + + assertTrue(dataList.isEmpty()); + } + + @Test + void testPublishThrowsIllegalArgumentException() { + // If the filename does not follow expected filename pattern, + // IllegalArgumentException should be thrown + assertThrows(IllegalArgumentException.class, () -> { + // If the filename does not follow expected filename pattern, + // IllegalArgumentException should be thrown + testLogFileToAsn1CodecPublisher.publish(new BufferedInputStream(new ByteArrayInputStream(new byte[0])), + "fileName", ImporterFileType.LOG_FILE); + fail("Expected an IllegalArgumentException to be thrown"); + }); + } + + @Test + void testPublishThrowsLogFileToAsn1CodecPublisherException(@Mocked LogFileParser mockLogFileParser) { + assertThrows(LogFileToAsn1CodecPublisherException.class, () -> { + new Expectations() { + { + LogFileParser.factory(anyString); + result = mockLogFileParser; + + /* + * If the embedded parser fails to parse a log file header, it may throw an + * exception + * which is then caught by the parser and re-thrown as + * LogFileToAsn1CodecPublisherException. + * This mocked object will simulate that eventuality. + */ + mockLogFileParser.parseFile((BufferedInputStream) any, anyString); + result = new LogFileToAsn1CodecPublisherException(anyString, (Exception) any); } + }; + + testLogFileToAsn1CodecPublisher.publish(new BufferedInputStream(new ByteArrayInputStream(new byte[0])), + "fileName", ImporterFileType.LOG_FILE); + fail("Expected an LogFileToAsn1CodecPublisherException to be thrown"); + }); + } + + @Test + void testPublishDecodeFailure(@Mocked LogFileParser mockLogFileParser) throws Exception { + new Expectations() { + { + LogFileParser.factory(anyString); + result = mockLogFileParser; + + mockLogFileParser.parseFile((BufferedInputStream) any, anyString); + result = ParserStatus.ERROR; + } + }; + + List dataList = testLogFileToAsn1CodecPublisher.publish( + new BufferedInputStream(new ByteArrayInputStream(new byte[0])), + "fileName", ImporterFileType.LOG_FILE); + + assertTrue(dataList.isEmpty()); + } + + @Test + void testPublishBsmTxLogFile() throws Exception { + + byte[] buf = new byte[] { + (byte) 0x00, // 1. direction + (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude + (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude + (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation + (byte) 0x04, (byte) 0x00, // 2.3 speed + (byte) 0x09, (byte) 0x27, // 2.4 heading + (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 3. utcTimeInSec + (byte) 0x8f, (byte) 0x01, // 4. mSec + (byte) 0x00, // 5. securityResultCode + (byte) 0x06, (byte) 0x00, // 6.0 payloadLength + // 6.1 payload + (byte) 0x03, (byte) 0x81, (byte) 0x00, (byte) 0x14, (byte) 0x03, (byte) 0x80 + }; + + String filename = RecordType.bsmTx.name() + GZ; + + BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); + + List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); + + for (OdeData data : dataList) { + assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), + DateTimeUtils.nowZDT()) > 0); + data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); + data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); + String asn1String = data.getMetadata().getAsn1(); + var expected = String.format( + "{\"metadata\":{\"bsmSource\":\"EV\",\"logFileName\":\"bsmTx.gz\",\"recordType\":\"bsmTx\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false,\"asn1\":\"%s\"},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"%s\"}}}", + schemaVersion, asn1String, asn1String); + assertEquals(expected, data.toJson()); } - - @Test - void testPublishDriverAlertLogFile() throws Exception { - - byte[] buf = new byte[]{ - (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 1.0 latitude - (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 1.1 longitude - (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 1.2 elevation - (byte) 0x04, (byte) 0x00, // 1.3 speed - (byte) 0x09, (byte) 0x27, // 1.4 heading - - (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 2. utcTimeInSec - (byte) 0x8f, (byte) 0x01, // 3. mSec - (byte) 0x11, (byte) 0x00, // 4.0 payloadLength - // 4.1 payload - 'T', 'e', 's', 't', ' ', 'D', 'r', 'i', 'v', 'e', 'r', ' ', 'A', 'l', 'e', 'r', 't' - }; - - String filename = RecordType.driverAlert.name() + GZ; - - BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); - - List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); - - for (OdeData data : dataList) { - assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), - DateTimeUtils.nowZDT()) > 0); - data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); - data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); - var expected = String.format("{\"metadata\":{\"logFileName\":\"driverAlert.gz\",\"recordType\":\"driverAlert\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeDriverAlertPayload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"alert\":\"Test Driver Alert\"}}", schemaVersion); - assertEquals(expected, data.toJson()); - } + } + + @Test + void testPublishDistressNotificationLogFile() throws Exception { + + byte[] buf = new byte[] { + (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 1.1 latitude + (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 1.2 longitude + (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 1.3 elevation + (byte) 0x04, (byte) 0x00, // 1.4 speed + (byte) 0x09, (byte) 0x27, // 1.5 heading + (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 2. utcTimeInSec + (byte) 0x8f, (byte) 0x01, // 3. mSec + (byte) 0x00, // 4. securityResultCode + (byte) 0x06, (byte) 0x00, // 5.1 payloadLength + // 5.2 payload + (byte) 0x03, (byte) 0x81, (byte) 0x00, (byte) 0x40, (byte) 0x03, (byte) 0x80 + }; + + String filename = RecordType.dnMsg.name() + GZ; + + BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); + + List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); + + for (OdeData data : dataList) { + assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), + DateTimeUtils.nowZDT()) > 0); + data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); + data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); + var expected = String.format( + "{\"metadata\":{\"logFileName\":\"dnMsg.gz\",\"recordType\":\"dnMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"encodings\":[{\"elementName\":\"root\",\"elementType\":\"Ieee1609Dot2Data\",\"encodingRule\":\"COER\"},{\"elementName\":\"unsecuredData\",\"elementType\":\"MessageFrame\",\"encodingRule\":\"UPER\"}],\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"038100400380\"}}}", + schemaVersion); } - - @Test - void testPublishRxMsgTIMLogFile() throws Exception { - - byte[] buf = new byte[]{ - (byte) 0x01, // 1. RxSource = SAT - (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude - (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude - (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation - (byte) 0x04, (byte) 0x00, // 2.3 speed - (byte) 0x09, (byte) 0x27, // 2.4 heading - (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 2. utcTimeInSec - (byte) 0x8f, (byte) 0x01, // 4. mSec - (byte) 0x00, // 5. securityResultCode - (byte) 0x06, (byte) 0x00, // 6.0 payloadLength - // 6.1 payload - (byte) 0x03, (byte) 0x81, (byte) 0x00, (byte) 0x14, (byte) 0x03, (byte) 0x80 - }; - - String filename = RecordType.rxMsg.name() + GZ; - - BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); - - List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); - - for (OdeData data : dataList) { - assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), - DateTimeUtils.nowZDT()) > 0); - data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); - data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); - String asn1String = data.getMetadata().getAsn1(); - var expected = String.format("{\"metadata\":{\"logFileName\":\"rxMsg.gz\",\"recordType\":\"rxMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"SAT\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"TMC_VIA_SAT\",\"sanitized\":false,\"asn1\":\"%s\"},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"%s\"}}}", schemaVersion, asn1String, asn1String); - assertEquals(expected, data.toJson()); - } + } + + @Test + void testPublishDriverAlertLogFile() throws Exception { + + byte[] buf = new byte[] { + (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 1.0 latitude + (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 1.1 longitude + (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 1.2 elevation + (byte) 0x04, (byte) 0x00, // 1.3 speed + (byte) 0x09, (byte) 0x27, // 1.4 heading + + (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 2. utcTimeInSec + (byte) 0x8f, (byte) 0x01, // 3. mSec + (byte) 0x11, (byte) 0x00, // 4.0 payloadLength + // 4.1 payload + 'T', 'e', 's', 't', ' ', 'D', 'r', 'i', 'v', 'e', 'r', ' ', 'A', 'l', 'e', 'r', 't' + }; + + String filename = RecordType.driverAlert.name() + GZ; + + BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); + + List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); + + for (OdeData data : dataList) { + assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), + DateTimeUtils.nowZDT()) > 0); + data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); + data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); + var expected = String.format( + "{\"metadata\":{\"logFileName\":\"driverAlert.gz\",\"recordType\":\"driverAlert\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeDriverAlertPayload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"alert\":\"Test Driver Alert\"}}", + schemaVersion); + assertEquals(expected, data.toJson()); } - - @Test - void testPublishRxMsgBSMLogFile() throws Exception { - - byte[] buf = new byte[]{ - (byte) 0x02, // 1. RxSource = RV - (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude - (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude - (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation - (byte) 0x04, (byte) 0x00, // 2.3 speed - (byte) 0x09, (byte) 0x27, // 2.4 heading - (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 3. utcTimeInSec - (byte) 0x8f, (byte) 0x01, // 4. mSec - (byte) 0x00, // 5. securityResultCode - (byte) 0x06, (byte) 0x00, // 6.0 payloadLength - // 6.1 payload - (byte) 0x11, (byte) 0x81, (byte) 0x00, (byte) 0x14, (byte) 0x03, (byte) 0x80 - }; - - String filename = RecordType.rxMsg.name() + GZ; - - BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); - - List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); - - for (OdeData data : dataList) { - assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), - DateTimeUtils.nowZDT()) > 0); - data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); - data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); - String asn1String = data.getMetadata().getAsn1(); - var expected = String.format("{\"metadata\":{\"bsmSource\":\"RV\",\"logFileName\":\"rxMsg.gz\",\"recordType\":\"rxMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"RV\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false,\"asn1\":\"%s\"},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"%s\"}}}", schemaVersion, asn1String, asn1String); - assertEquals(expected, data.toJson()); - } + } + + @Test + void testPublishRxMsgTIMLogFile() throws Exception { + + byte[] buf = new byte[] { + (byte) 0x01, // 1. RxSource = SAT + (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude + (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude + (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation + (byte) 0x04, (byte) 0x00, // 2.3 speed + (byte) 0x09, (byte) 0x27, // 2.4 heading + (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 2. utcTimeInSec + (byte) 0x8f, (byte) 0x01, // 4. mSec + (byte) 0x00, // 5. securityResultCode + (byte) 0x06, (byte) 0x00, // 6.0 payloadLength + // 6.1 payload + (byte) 0x03, (byte) 0x81, (byte) 0x00, (byte) 0x14, (byte) 0x03, (byte) 0x80 + }; + + String filename = RecordType.rxMsg.name() + GZ; + + BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); + + List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); + + for (OdeData data : dataList) { + assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), + DateTimeUtils.nowZDT()) > 0); + data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); + data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); + String asn1String = data.getMetadata().getAsn1(); + var expected = String.format( + "{\"metadata\":{\"logFileName\":\"rxMsg.gz\",\"recordType\":\"rxMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"SAT\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"TMC_VIA_SAT\",\"sanitized\":false,\"asn1\":\"%s\"},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"%s\"}}}", + schemaVersion, asn1String, asn1String); + assertEquals(expected, data.toJson()); } - - @Test - void testPublishNonLearLogFile() throws Exception { - - String filename = RecordType.rxMsg.name() + GZ; - - String jsonData = "{\"fakeJsonKey\":\"fakeJsonValue\""; - byte[] buf = jsonData.getBytes(); - BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); - - /* - * This call to publish method does not actually try to parse the data. It - * short-circuits the parsing because - * currently we dont' support JSON input records. We may in the future. - */ - - List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.JSON_FILE); - - assertTrue(dataList.isEmpty()); + } + + @Test + void testPublishRxMsgBSMLogFile() throws Exception { + + byte[] buf = new byte[] { + (byte) 0x02, // 1. RxSource = RV + (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude + (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude + (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation + (byte) 0x04, (byte) 0x00, // 2.3 speed + (byte) 0x09, (byte) 0x27, // 2.4 heading + (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 3. utcTimeInSec + (byte) 0x8f, (byte) 0x01, // 4. mSec + (byte) 0x00, // 5. securityResultCode + (byte) 0x06, (byte) 0x00, // 6.0 payloadLength + // 6.1 payload + (byte) 0x11, (byte) 0x81, (byte) 0x00, (byte) 0x14, (byte) 0x03, (byte) 0x80 + }; + + String filename = RecordType.rxMsg.name() + GZ; + + BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); + + List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); + + for (OdeData data : dataList) { + assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), + DateTimeUtils.nowZDT()) > 0); + data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); + data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); + String asn1String = data.getMetadata().getAsn1(); + var expected = String.format( + "{\"metadata\":{\"bsmSource\":\"RV\",\"logFileName\":\"rxMsg.gz\",\"recordType\":\"rxMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"RV\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false,\"asn1\":\"%s\"},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"%s\"}}}", + schemaVersion, asn1String, asn1String); + assertEquals(expected, data.toJson()); } - - @Test - void testPublishRxMsgBSMLogFileNewLine() throws Exception { - - byte[] buf = new byte[]{ - (byte) 0x02, // 1. RxSource = RV - (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude - (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude - (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation - (byte) 0x04, (byte) 0x00, // 2.3 speed - (byte) 0x09, (byte) 0x27, // 2.4 heading - (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 3. utcTimeInSec - (byte) 0x8f, (byte) 0x01, // 4. mSec - (byte) 0x00, // 5. securityResultCode - (byte) 0x06, (byte) 0x00, // 6.0 payloadLength - // 6.1 payload - (byte) 0x11, (byte) 0x81, (byte) 0x00, (byte) 0x14, (byte) 0x03, (byte) 0x80, - (byte) 0x0a - }; - - String filename = RecordType.rxMsg.name() + GZ; - - BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); - - List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); - - for (OdeData data : dataList) { - assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), - DateTimeUtils.nowZDT()) > 0); - data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); - data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); - String asn1String = data.getMetadata().getAsn1(); - var expected = String.format("{\"metadata\":{\"bsmSource\":\"RV\",\"logFileName\":\"rxMsg.gz\",\"recordType\":\"rxMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"RV\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false,\"asn1\":\"%s\"},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"%s\"}}}", schemaVersion, asn1String, asn1String); - assertEquals(expected, data.toJson()); - } + } + + @Test + void testPublishNonLearLogFile() throws Exception { + + String filename = RecordType.rxMsg.name() + GZ; + + String jsonData = "{\"fakeJsonKey\":\"fakeJsonValue\""; + byte[] buf = jsonData.getBytes(); + BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); + + /* + * This call to publish method does not actually try to parse the data. It + * short-circuits the parsing because + * currently we dont' support JSON input records. We may in the future. + */ + + List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.JSON_FILE); + + assertTrue(dataList.isEmpty()); + } + + @Test + void testPublishRxMsgBSMLogFileNewLine() throws Exception { + + byte[] buf = new byte[] { + (byte) 0x02, // 1. RxSource = RV + (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude + (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude + (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation + (byte) 0x04, (byte) 0x00, // 2.3 speed + (byte) 0x09, (byte) 0x27, // 2.4 heading + (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 3. utcTimeInSec + (byte) 0x8f, (byte) 0x01, // 4. mSec + (byte) 0x00, // 5. securityResultCode + (byte) 0x06, (byte) 0x00, // 6.0 payloadLength + // 6.1 payload + (byte) 0x11, (byte) 0x81, (byte) 0x00, (byte) 0x14, (byte) 0x03, (byte) 0x80, + (byte) 0x0a + }; + + String filename = RecordType.rxMsg.name() + GZ; + + BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf)); + + List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LOG_FILE); + + for (OdeData data : dataList) { + assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getRecordGeneratedAt()), + DateTimeUtils.nowZDT()) > 0); + data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z"); + data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92"); + String asn1String = data.getMetadata().getAsn1(); + var expected = String.format( + "{\"metadata\":{\"bsmSource\":\"RV\",\"logFileName\":\"rxMsg.gz\",\"recordType\":\"rxMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"RV\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false,\"asn1\":\"%s\"},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"%s\"}}}", + schemaVersion, asn1String, asn1String); + assertEquals(expected, data.toJson()); } + } } diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java index f3b6832c6..cce0a3419 100644 --- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java +++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java @@ -62,8 +62,7 @@ class TimTransmogrifierTest { @Test void testUpdateRsuCreds_UpdateWhenNull() { - RSU expected = - new RSU("127.0.0.1", rsuProperties.getUsername(), rsuProperties.getPassword(), 1, 2000); + RSU expected = new RSU("127.0.0.1", rsuProperties.getUsername(), rsuProperties.getPassword(), 1, 2000); RSU actual = new RSU("127.0.0.1", null, null, 1, 2000); TimTransmogrifier.updateRsuCreds(actual, rsuProperties); @@ -73,11 +72,9 @@ void testUpdateRsuCreds_UpdateWhenNull() { @Test void testUpdateRsuCreds_DoNotOverwriteExisting() { - RSU expected = - new RSU("127.0.0.1", rsuProperties.getUsername(), rsuProperties.getPassword(), 1, 2000); + RSU expected = new RSU("127.0.0.1", rsuProperties.getUsername(), rsuProperties.getPassword(), 1, 2000); - RSU actual = - new RSU("127.0.0.1", rsuProperties.getUsername(), rsuProperties.getPassword(), 1, 2000); + RSU actual = new RSU("127.0.0.1", rsuProperties.getUsername(), rsuProperties.getPassword(), 1, 2000); TimTransmogrifier.updateRsuCreds(actual, rsuProperties); assertEquals(expected, actual); @@ -85,8 +82,7 @@ void testUpdateRsuCreds_DoNotOverwriteExisting() { @Test void testUpdateRsuCreds_UpdatedWhenEmptyString() { - RSU expected = - new RSU("127.0.0.1", rsuProperties.getUsername(), rsuProperties.getPassword(), 1, 2000); + RSU expected = new RSU("127.0.0.1", rsuProperties.getUsername(), rsuProperties.getPassword(), 1, 2000); // rsuUsername and rsuPassword are blank RSU actual3 = new RSU("127.0.0.1", "", "", 1, 2000); TimTransmogrifier.updateRsuCreds(actual3, rsuProperties); @@ -115,17 +111,13 @@ void assertConvertArray(String array, String arrayKey, String elementKey, Object @Test void testConvertRsusArray() throws JsonUtilsException, XmlUtilsException { - String single = - "{\"ode\":{\"version\":3,\"verb\":\"POST\"},\"rsus\":{\"rsu_\":[{\"rsuTarget\":\"127.0.0.3\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"password\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10}]},\"snmp\":{\"rsuid\":\"00000083\",\"msgid\":31,\"mode\":1,\"channel\":178,\"interval\":2,\"deliverystart\":\"2017-06-01T17:47:11-05:00\",\"deliverystop\":\"2018-01-01T17:47:11-05:15\",\"enable\":1,\"status\":4}}"; - String singleXmlExpected = - "127.0.0.3v3userpassword1100010"; + String single = "{\"ode\":{\"version\":3,\"verb\":\"POST\"},\"rsus\":{\"rsu_\":[{\"rsuTarget\":\"127.0.0.3\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"password\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10}]},\"snmp\":{\"rsuid\":\"00000083\",\"msgid\":31,\"mode\":1,\"channel\":178,\"interval\":2,\"deliverystart\":\"2017-06-01T17:47:11-05:00\",\"deliverystop\":\"2018-01-01T17:47:11-05:15\",\"enable\":1,\"status\":4}}"; + String singleXmlExpected = "127.0.0.3v3userpassword1100010"; assertConvertArray(single, TimTransmogrifier.RSUS_STRING, TimTransmogrifier.RSUS_STRING, singleXmlExpected); - String multi = - "{\"ode\":{\"version\":3,\"verb\":\"POST\"},\"rsus\":{\"rsu_\":[{\"rsuTarget\":\"127.0.0.1\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"password\",\"rsuRetries\":0,\"rsuTimeout\":2000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.2\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"password\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.3\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"password\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10}]},\"snmp\":{\"rsuid\":\"00000083\",\"msgid\":31,\"mode\":1,\"channel\":178,\"interval\":2,\"deliverystart\":\"2017-06-01T17:47:11-05:00\",\"deliverystop\":\"2018-01-01T17:47:11-05:15\",\"enable\":1,\"status\":4}}"; - String multiXmlExpected = - "127.0.0.1v3userpassword0200010127.0.0.2v3userpassword1100010127.0.0.3v3userpassword1100010"; + String multi = "{\"ode\":{\"version\":3,\"verb\":\"POST\"},\"rsus\":{\"rsu_\":[{\"rsuTarget\":\"127.0.0.1\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"password\",\"rsuRetries\":0,\"rsuTimeout\":2000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.2\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"password\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10},{\"rsuTarget\":\"127.0.0.3\",\"rsuUsername\":\"v3user\",\"rsuPassword\":\"password\",\"rsuRetries\":1,\"rsuTimeout\":1000,\"rsuIndex\":10}]},\"snmp\":{\"rsuid\":\"00000083\",\"msgid\":31,\"mode\":1,\"channel\":178,\"interval\":2,\"deliverystart\":\"2017-06-01T17:47:11-05:00\",\"deliverystop\":\"2018-01-01T17:47:11-05:15\",\"enable\":1,\"status\":4}}"; + String multiXmlExpected = "127.0.0.1v3userpassword0200010127.0.0.2v3userpassword1100010127.0.0.3v3userpassword1100010"; assertConvertArray(multi, TimTransmogrifier.RSUS_STRING, TimTransmogrifier.RSUS_STRING, multiXmlExpected); } @@ -272,8 +264,7 @@ void testConvertToXMLMessageFrame() OdeMsgMetadata staticOdeMsgMetadata = new OdeMsgMetadata(); staticOdeMsgMetadata.setSchemaVersion(Integer.parseInt(schemaVersion)); - String actualXML = - TimTransmogrifier.convertToXml(null, encodableTID, staticOdeMsgMetadata, staticSerialId); + String actualXML = TimTransmogrifier.convertToXml(null, encodableTID, staticOdeMsgMetadata, staticSerialId); var expected = String.format( "us.dot.its.jpo.ode.model.OdeTimPayload6c33f802-418d-4b67-89d1-326b4fc8b1e31000%s%s0false42.537903-83.47790342.305753-82.842753thirtyminutes2017-06-01T17:47:11-05:002018-03-01T17:47:11-05:15MessageFrameMessageFrameUPER31MessageFrame", DateTimeUtils.now(), schemaVersion); @@ -281,7 +272,8 @@ void testConvertToXMLMessageFrame() } /** - * It should be noted that the 'prepare' section of this test largely follows the + * It should be noted that the 'prepare' section of this test largely follows + * the * logic in the TimDepositController.depositTim() method. This is because the * TimTransmogrifier.convertToXml() method is called by the TimDepositController * and the TimDepositController is responsible for preparing the data that is @@ -341,7 +333,8 @@ private SerialId prepareSerialId() { /** * Helper method to prepare an OdeTravelerInputData object for testing. * - * @param timRequestContainingCircleGeometry a JSON string containing a TIM request with a circle geometry + * @param timRequestContainingCircleGeometry a JSON string containing a TIM + * request with a circle geometry * @return an OdeTravelerInputData object * @throws JsonUtilsException if there is an issue parsing the JSON string */ @@ -375,7 +368,8 @@ private OdeRequestMsgMetadata prepareMetadata(OdeTravelerInputData odeTID, Seria maxDurationTime = Math.max(maxDurationTime, dataFrameItem.getDurationTime()); latestStartDateTime = latestStartDateTime == null || latestStartDateTime.before(dateFormat.parse(dataFrameItem.getStartDateTime())) - ? dateFormat.parse(dataFrameItem.getStartDateTime()) : latestStartDateTime; + ? dateFormat.parse(dataFrameItem.getStartDateTime()) + : latestStartDateTime; } timMetadata.setMaxDurationTime(maxDurationTime); timMetadata.setOdeTimStartDateTime(dateFormat.format(latestStartDateTime)); From 14d1bb2a5a1864149639c25f60da75391ac9b919 Mon Sep 17 00:00:00 2001 From: Drew Johnston <31270488+drewjj@users.noreply.github.com> Date: Sun, 29 Dec 2024 13:41:13 -0700 Subject: [PATCH 3/5] Update docs/schemas/README.md Co-authored-by: Matt Cook --- docs/schemas/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/schemas/README.md b/docs/schemas/README.md index 9f394cf0a..f0d71cb08 100644 --- a/docs/schemas/README.md +++ b/docs/schemas/README.md @@ -12,7 +12,7 @@ The jpo-ode supports receiving and decoding ASN1 messages from RSUs. The support The output JSON of the ODE is complex but it is similar to the official standard of J2735 with some minor differences due to the form of their deserialized POJOs. To help implement proper data validation for the JSON output of the ODE into any data pipeline infrastructure, you may use the provided validation schemas within this directory. -Each jpo-ode output object also contains a `schemaVersion`. This value represents the version of the jpo-ode output that the object came from. This version is not intended to be changed except in the scenario of newly added breaking changes to the output. This value is set [here](https://github.com/usdot-jpo-ode/jpo-ode/blob/develop/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java). +Each jpo-ode output object also contains a `schemaVersion`. This value represents the version of the jpo-ode output that the object came from. This version is not intended to be changed except in the scenario of newly added breaking changes to the output. This value is set [here](./jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java). ## Testing the schemas These schemas can be used for manual validation in the following steps: From d59c4acfbad34027e341da30fc4eb1a7cdffcb6b Mon Sep 17 00:00:00 2001 From: Drew Johnston <31270488+drewjj@users.noreply.github.com> Date: Sun, 29 Dec 2024 13:46:18 -0700 Subject: [PATCH 4/5] Updated schema constant requirement and associated tests --- jpo-ode-core/src/main/resources/schemas/schema-bsm.json | 2 +- jpo-ode-core/src/main/resources/schemas/schema-map.json | 2 +- jpo-ode-core/src/main/resources/schemas/schema-psm.json | 2 +- jpo-ode-core/src/main/resources/schemas/schema-spat.json | 2 +- jpo-ode-core/src/main/resources/schemas/schema-srm.json | 2 +- jpo-ode-core/src/main/resources/schemas/schema-ssm.json | 2 +- jpo-ode-core/src/main/resources/schemas/schema-tim.json | 3 ++- .../src/test/java/us/dot/its/jpo/ode/model/OdeBsmDataTest.java | 2 +- .../src/test/java/us/dot/its/jpo/ode/model/OdeMapDataTest.java | 2 +- .../src/test/java/us/dot/its/jpo/ode/model/OdePsmDataTest.java | 2 +- .../test/java/us/dot/its/jpo/ode/model/OdeSpatDataTest.java | 2 +- .../src/test/java/us/dot/its/jpo/ode/model/OdeSrmDataTest.java | 2 +- .../src/test/java/us/dot/its/jpo/ode/model/OdeSsmDataTest.java | 2 +- 13 files changed, 14 insertions(+), 13 deletions(-) diff --git a/jpo-ode-core/src/main/resources/schemas/schema-bsm.json b/jpo-ode-core/src/main/resources/schemas/schema-bsm.json index d4b12e89d..89187c143 100644 --- a/jpo-ode-core/src/main/resources/schemas/schema-bsm.json +++ b/jpo-ode-core/src/main/resources/schemas/schema-bsm.json @@ -155,7 +155,7 @@ "type": "boolean" }, "schemaVersion": { - "const": 7, + "const": 8, "type": "integer" }, "securityResultCode": { diff --git a/jpo-ode-core/src/main/resources/schemas/schema-map.json b/jpo-ode-core/src/main/resources/schemas/schema-map.json index 89c102e49..ec88eeac1 100644 --- a/jpo-ode-core/src/main/resources/schemas/schema-map.json +++ b/jpo-ode-core/src/main/resources/schemas/schema-map.json @@ -72,7 +72,7 @@ "type": "boolean" }, "schemaVersion": { - "const": 7, + "const": 8, "type": "integer" }, "securityResultCode": { diff --git a/jpo-ode-core/src/main/resources/schemas/schema-psm.json b/jpo-ode-core/src/main/resources/schemas/schema-psm.json index 6b336cf5d..08f3cf469 100644 --- a/jpo-ode-core/src/main/resources/schemas/schema-psm.json +++ b/jpo-ode-core/src/main/resources/schemas/schema-psm.json @@ -85,7 +85,7 @@ "type": "string" }, "schemaVersion": { - "const": 7, + "const": 8, "type": "integer" }, "maxDurationTime": { diff --git a/jpo-ode-core/src/main/resources/schemas/schema-spat.json b/jpo-ode-core/src/main/resources/schemas/schema-spat.json index 13d5e62a1..70b0bbdd3 100644 --- a/jpo-ode-core/src/main/resources/schemas/schema-spat.json +++ b/jpo-ode-core/src/main/resources/schemas/schema-spat.json @@ -214,7 +214,7 @@ }, "schemaVersion": { "type": "integer", - "const": 7 + "const": 8 }, "maxDurationTime": { "type": [ diff --git a/jpo-ode-core/src/main/resources/schemas/schema-srm.json b/jpo-ode-core/src/main/resources/schemas/schema-srm.json index 8ea7ec55c..bfe9b38fd 100644 --- a/jpo-ode-core/src/main/resources/schemas/schema-srm.json +++ b/jpo-ode-core/src/main/resources/schemas/schema-srm.json @@ -71,7 +71,7 @@ "type": "string" }, "schemaVersion": { - "const": 7, + "const": 8, "type": "integer" }, "maxDurationTime": { diff --git a/jpo-ode-core/src/main/resources/schemas/schema-ssm.json b/jpo-ode-core/src/main/resources/schemas/schema-ssm.json index c3e030551..710234c76 100644 --- a/jpo-ode-core/src/main/resources/schemas/schema-ssm.json +++ b/jpo-ode-core/src/main/resources/schemas/schema-ssm.json @@ -77,7 +77,7 @@ "type": "string" }, "schemaVersion": { - "const": 7, + "const": 8, "type": "integer" }, "maxDurationTime": { diff --git a/jpo-ode-core/src/main/resources/schemas/schema-tim.json b/jpo-ode-core/src/main/resources/schemas/schema-tim.json index 592a94c4b..8f1eb4b7f 100644 --- a/jpo-ode-core/src/main/resources/schemas/schema-tim.json +++ b/jpo-ode-core/src/main/resources/schemas/schema-tim.json @@ -60,7 +60,8 @@ "type": "boolean" }, "schemaVersion": { - "type": "number" + "const": 8, + "type": "integer" }, "securityResultCode": { "type": "string" diff --git a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeBsmDataTest.java b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeBsmDataTest.java index 1f586581b..6bff0e2ff 100644 --- a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeBsmDataTest.java +++ b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeBsmDataTest.java @@ -17,7 +17,7 @@ import us.dot.its.jpo.ode.util.JsonUtils; public class OdeBsmDataTest { - private static final String SCHEMA_VERSION = "7"; + private static final String SCHEMA_VERSION = "8"; private static final String ASN1_STRING = "0022e12d18466c65c1493800000e00e4616183e85a8f0100c000038081bc001480b8494c4c950cd8cde6e9651116579f22a424dd78fffff00761e4fd7eb7d07f7fff80005f11d1020214c1c0ffc7c016aff4017a0ff65403b0fd204c20ffccc04f8fe40c420ffe6404cefe60e9a10133408fcfde1438103ab4138f00e1eec1048ec160103e237410445c171104e26bc103dc4154305c2c84103b1c1c8f0a82f42103f34262d1123198103dac25fb12034ce10381c259f12038ca103574251b10e3b2210324c23ad0f23d8efffe0000209340d10000004264bf00"; private static final String bsmTxJson = String.format("{\"metadata\":{\"bsmSource\":\"RV\",\"logFileName\":\"\",\"recordType\":\"bsmTx\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"\",\"longitude\":\"\",\"elevation\":\"\",\"speed\":\"\",\"heading\":\"\"},\"rxSource\":\"RV\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeBsmPayload\",\"serialId\":{\"streamId\":\"504becf3-8e20-49cb-a2d7-25b646c34d0f\",\"bundleSize\":1,\"bundleId\":0,\"recordId\":0,\"serialNumber\":0},\"odeReceivedAt\":\"2022-06-17T19:14:21.223956Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"\",\"sanitized\":false,\"odePacketID\":\"\",\"odeTimStartDateTime\":\"\",\"originIp\":\"10.11.81.12\",\"asn1\":\"%s\"},\"payload\":{\"data\":{\"coreData\":{\"msgCnt\":46,\"id\":\"E6A99808\",\"secMark\":21061,\"position\":{\"latitude\":39.5881304,\"longitude\":-105.0910403,\"elevation\":1692.0},\"accelSet\":{\"accelLong\":-0.07,\"accelYaw\":-0.09},\"accuracy\":{\"semiMajor\":2.0,\"semiMinor\":2.0,\"orientation\":44.49530799},\"transmission\":\"UNAVAILABLE\",\"speed\":22.62,\"heading\":169.3,\"brakes\":{\"wheelBrakes\":{\"leftFront\":false,\"rightFront\":false,\"unavailable\":true,\"leftRear\":false,\"rightRear\":false},\"traction\":\"unavailable\",\"abs\":\"off\",\"scs\":\"unavailable\",\"brakeBoost\":\"unavailable\",\"auxBrakes\":\"unavailable\"},\"size\":{\"width\":180,\"length\":480}},\"partII\":[{\"id\":\"VehicleSafetyExtensions\",\"value\":{\"pathHistory\":{\"crumbData\":[{\"elevationOffset\":0.8,\"latOffset\":-0.0001802,\"lonOffset\":0.0000434,\"timeOffset\":0.89},{\"elevationOffset\":4.5,\"latOffset\":-0.0011801,\"lonOffset\":0.0002357,\"timeOffset\":5.7},{\"elevationOffset\":9.3,\"latOffset\":-0.0023623,\"lonOffset\":0.0003881,\"timeOffset\":11.1}]},\"pathPrediction\":{\"confidence\":70.0,\"radiusOfCurve\":0.0}}}]},\"dataType\":\"us.dot.its.jpo.ode.plugin.j2735.J2735Bsm\"}}", SCHEMA_VERSION, ASN1_STRING); diff --git a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeMapDataTest.java b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeMapDataTest.java index eda1eabf9..f9155580a 100644 --- a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeMapDataTest.java +++ b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeMapDataTest.java @@ -13,7 +13,7 @@ import us.dot.its.jpo.ode.util.JsonUtils; public class OdeMapDataTest { - private static final String SCHEMA_VERSION = "7"; + private static final String SCHEMA_VERSION = "8"; private static final String ASN1_STRING = "001283c138003000205e9c014d3eab092ca624b5518202dc3658042800000400023622c60ca009f66d48abfaf81388d8ad18070027d9b2ffcfe9804f13667b1ffd009ec2c76e3ffc82c4e0001004b00c5000000800066c4574101813ecd8b757fae027d9b30e6ff5604ec363561fe7809ec6cd69bfec813c4d8a617fc9027d9b2147008604fb163666000016250000802580228000001000096229e1309b51a6fe4204dd361cf1fe5009f6018e1000096020a00000080004d88a57f84027d9b3827002804ec36087600a009f62c289407282c310001c0440188800000006c46dbe02813ec5816d800710052200000001b11b6fad404fb16054a0000401c8800000006c47b3d24813ec5816d801b100c4200000000af890f12c580007e87100d4200000008af4c0f12c580077e7a2c0004000160002001cb028d000000800052c160bc40b5fffd8a9409d86bfebb5b40141457fef53b76c008b467014145800080002bffcbffc82c6a0001804b024d000000800036c2213c3b013ecd80096d64027d9affd8cdfc04f635ff7983bc09f66c0082aa2014280b1b80006012c0b3400000100004b02bcf0f6d7fe065d602788b0138eb900b1240001012c083400000080009b0c2af0b804fb15fe6de171afff6c63e04ec15fe1de670060e40002581ea8000004000135da6df0180a0a6adc2c00d0143cd51897fda028c8abb25001a0b0680008012c105400000200009aedbefae005053540ee003c0a326a9cf3fed8143c5667780010582c0004009608aa00000080004d76de7ee402829aba88ffdc050f354525fff80a322bcf23fa602c690000c04b0395000000200016bb4fbd4e01414d3215800802940ab108fff2030d2000110126200000001aee5103be050a15f6f1ffc8404d8800000006bb97c18e0142857dfa800010146200000001aee89099a050a15f8720000b05dd000000800046be3743b781428d80e1b00002879b00514b4404f63600827d8c09e22c000400015ffe6007016190000402582ce8000004000135ecee1de80a146c02e54758143cd8059ad3e027b1b00613dd004f102c360000804b055d000000200046bcc7c3c781428d80108c6e02829b002b2ece050a16019a4b29b00ab5c3604f136004e410409ec018a10000960c3a00000080004d7de9878602851b003923cc05053601623b440a0a6bfb8c3a5014140b0640005012c197400000100005afe570ef2050a36003a47c80a0a6bfd2c45f014140b054000501101a8200000001b05a90edc050535ffe605800a0a101b8200000001b08a30ec0050535ffe605300a0a101c8200000005b0c6f0ea4050515ffca0568b0001000e"; final String json = String.format("{\"metadata\":{\"logFileName\":\"\",\"recordType\":\"mapTx\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":null,\"rxSource\":\"NA\"},\"encodings\":null,\"payloadType\":\"us.dot.its.jpo.ode.model.OdeMapPayload\",\"serialId\":{\"streamId\":\"18d7c2e0-9158-4456-916d-5cd4b080d290\",\"bundleSize\":1,\"bundleId\":0,\"recordId\":0,\"serialNumber\":0},\"odeReceivedAt\":\"2022-06-17T19:02:13.083984Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"\",\"recordGeneratedBy\":null,\"sanitized\":false,\"odePacketID\":\"\",\"odeTimStartDateTime\":\"\",\"mapSource\":\"RSU\",\"originIp\":\"10.11.81.25\",\"asn1\":\"%s\"},\"payload\":{\"data\":{\"timeStamp\":null,\"msgIssueRevision\":2,\"layerType\":\"intersectionData\",\"layerID\":0,\"intersections\":null,\"roadSegments\":null,\"dataParameters\":null,\"restrictionList\":null},\"dataType\":\"us.dot.its.jpo.ode.plugin.j2735.J2735MAP\"}}",SCHEMA_VERSION,ASN1_STRING); diff --git a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdePsmDataTest.java b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdePsmDataTest.java index 6dd122d4d..80e2231db 100644 --- a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdePsmDataTest.java +++ b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdePsmDataTest.java @@ -13,7 +13,7 @@ import us.dot.its.jpo.ode.util.JsonUtils; public class OdePsmDataTest { - private static final String SCHEMA_VERSION = "7"; + private static final String SCHEMA_VERSION = "8"; private static final String ASN1_STRING = "011d0000201a0000021bd86891de75f84da101c13f042e2214141fff00022c2000270000000163b2cc7986010000"; final String json = String.format("{\"metadata\":{\"logFileName\":\"\",\"maxDurationTime\":0,\"odePacketID\":\"\",\"odeReceivedAt\":\"2023-09-21T15:30:14.926500Z\",\"odeTimStartDateTime\":\"\",\"originIp\":\"192.168.16.1\",\"payloadType\":\"us.dot.its.jpo.ode.model.OdePsmPayload\",\"psmSource\":\"RSU\",\"receivedMessageDetails\":{\"rxSource\":\"NA\"},\"recordGeneratedAt\":\"\",\"recordType\":\"psmTx\",\"sanitized\":false,\"schemaVersion\":%s,\"securityResultCode\":\"success\",\"serialId\":{\"bundleId\":0,\"bundleSize\":1,\"recordId\":0,\"serialNumber\":0,\"streamId\":\"06cc1c17-e331-4806-a8ee-456b98c6517b\"},\"asn1\":\"%s\"},\"payload\":{\"data\":{\"accuracy\":{\"orientation\":44.9951935489,\"semiMajor\":1.0,\"semiMinor\":1.0},\"basicType\":\"aPEDESTRIAN\",\"heading\":8898,\"id\":\"24779D7E\",\"msgCnt\":26,\"position\":{\"latitude\":40.2397377,\"longitude\":-74.2761437},\"secMark\":3564,\"speed\":0},\"dataType\":\"us.dot.its.jpo.ode.plugin.j2735.J2735PSM\"}}", SCHEMA_VERSION, ASN1_STRING); diff --git a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSpatDataTest.java b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSpatDataTest.java index 23e8bdff3..0de3c7881 100644 --- a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSpatDataTest.java +++ b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSpatDataTest.java @@ -13,7 +13,7 @@ import us.dot.its.jpo.ode.util.JsonUtils; public class OdeSpatDataTest { - private static final String SCHEMA_VERSION = "7"; + private static final String SCHEMA_VERSION = "8"; private static final String ASN1_STRING = "001338000817a780000089680500204642b342b34802021a15a955a940181190acd0acd20100868555c555c00104342aae2aae002821a155715570"; final String json = String.format("{\"metadata\":{\"logFileName\":\"\",\"recordType\":\"spatTx\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"rxSource\":\"NA\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeSpatPayload\",\"serialId\":{\"streamId\":\"ed008249-0a8d-47f2-a526-ffd8c30b9810\",\"bundleSize\":1,\"bundleId\":0,\"recordId\":0,\"serialNumber\":0},\"odeReceivedAt\":\"2022-12-24T01:49:54.160478Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"\",\"sanitized\":false,\"odePacketID\":\"\",\"odeTimStartDateTime\":\"\",\"spatSource\":\"V2X\",\"originIp\":\"172.18.0.1\",\"isCertPresent\":false,\"asn1\":\"%s\"},\"payload\":{\"data\":{\"intersectionStateList\":{\"intersectionStatelist\":[{\"id\":{\"id\":12111},\"revision\":0,\"status\":{\"failureFlash\":false,\"noValidSPATisAvailableAtThisTime\":false,\"fixedTimeOperation\":false,\"standbyOperation\":false,\"trafficDependentOperation\":false,\"manualControlIsEnabled\":false,\"off\":false,\"stopTimeIsActivated\":false,\"recentChangeInMAPassignedLanesIDsUsed\":false,\"recentMAPmessageUpdate\":false,\"failureMode\":false,\"noValidMAPisAvailableAtThisTime\":false,\"signalPriorityIsActive\":false,\"preemptIsActive\":false},\"timeStamp\":35176,\"states\":{\"movementList\":[{\"signalGroup\":2,\"state_time_speed\":{\"movementEventList\":[{\"eventState\":\"PROTECTED_MOVEMENT_ALLOWED\",\"timing\":{\"minEndTime\":22120,\"maxEndTime\":22121}}]}},{\"signalGroup\":4,\"state_time_speed\":{\"movementEventList\":[{\"eventState\":\"STOP_AND_REMAIN\",\"timing\":{\"minEndTime\":22181,\"maxEndTime\":22181}}]}},{\"signalGroup\":6,\"state_time_speed\":{\"movementEventList\":[{\"eventState\":\"PROTECTED_MOVEMENT_ALLOWED\",\"timing\":{\"minEndTime\":22120,\"maxEndTime\":22121}}]}},{\"signalGroup\":8,\"state_time_speed\":{\"movementEventList\":[{\"eventState\":\"STOP_AND_REMAIN\",\"timing\":{\"minEndTime\":21852,\"maxEndTime\":21852}}]}},{\"signalGroup\":1,\"state_time_speed\":{\"movementEventList\":[{\"eventState\":\"STOP_AND_REMAIN\",\"timing\":{\"minEndTime\":21852,\"maxEndTime\":21852}}]}},{\"signalGroup\":5,\"state_time_speed\":{\"movementEventList\":[{\"eventState\":\"STOP_AND_REMAIN\",\"timing\":{\"minEndTime\":21852,\"maxEndTime\":21852}}]}}]}}]}},\"dataType\":\"us.dot.its.jpo.ode.plugin.j2735.J2735SPAT\"}}", SCHEMA_VERSION, ASN1_STRING); diff --git a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSrmDataTest.java b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSrmDataTest.java index f86706f81..704d9c3e6 100644 --- a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSrmDataTest.java +++ b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSrmDataTest.java @@ -13,7 +13,7 @@ import us.dot.its.jpo.ode.util.JsonUtils; public class OdeSrmDataTest { - private static final String SCHEMA_VERSION = "7"; + private static final String SCHEMA_VERSION = "8"; private static final String ASN1_STRING = "001d2130000010090bd341080d00855c6c0c6899853000a534f7c24cb29897694759b7c0"; final String json = String.format("{\"metadata\":{\"logFileName\":\"\",\"recordType\":\"srmTx\",\"securityResultCode\":null,\"receivedMessageDetails\":{\"locationData\":null,\"rxSource\":\"NA\"},\"encodings\":null,\"payloadType\":\"us.dot.its.jpo.ode.model.OdeSrmPayload\",\"serialId\":{\"streamId\":\"c3ff825f-ed1f-4411-a12e-1ba889f56483\",\"bundleSize\":1,\"bundleId\":0,\"recordId\":0,\"serialNumber\":0},\"odeReceivedAt\":\"2022-12-13T18:58:53.541816Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"\",\"recordGeneratedBy\":null,\"sanitized\":false,\"odePacketID\":\"\",\"odeTimStartDateTime\":\"\",\"originIp\":\"172.21.0.1\",\"srmSource\":\"RSU\",\"asn1\":\"%s\"},\"payload\":{\"data\":{\"timeStamp\":null,\"second\":0,\"sequenceNumber\":1,\"requests\":{\"signalRequestPackage\":[{\"request\":{\"id\":{\"region\":null,\"id\":12109},\"requestID\":4,\"requestType\":\"priorityRequest\",\"inBoundLane\":{\"lane\":13,\"approach\":null,\"connection\":null},\"outBoundLane\":{\"lane\":4,\"approach\":null,\"connection\":null}},\"minute\":null,\"second\":null,\"duration\":10979}]},\"requestor\":{\"id\":{\"entityID\":null,\"stationID\":2366845094},\"type\":{\"role\":\"publicTransport\",\"subrole\":null,\"request\":null,\"iso3883\":null,\"hpmsType\":null},\"position\":{\"position\":{\"latitude\":39.5904915,\"longitude\":-105.0913829,\"elevation\":1685.4},\"heading\":175.9000,\"speed\":null},\"name\":null,\"routeName\":null,\"transitStatus\":null,\"transitOccupancy\":null,\"transitSchedule\":null}},\"dataType\":\"us.dot.its.jpo.ode.plugin.j2735.J2735SRM\"}}", SCHEMA_VERSION, ASN1_STRING); diff --git a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSsmDataTest.java b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSsmDataTest.java index cd163307e..04417ce15 100644 --- a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSsmDataTest.java +++ b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/model/OdeSsmDataTest.java @@ -13,7 +13,7 @@ import us.dot.its.jpo.ode.util.JsonUtils; public class OdeSsmDataTest { - private static final String SCHEMA_VERSION = "7"; + private static final String SCHEMA_VERSION = "8"; private static final String ASN1_STRING = "001e120000000005e9c04071a26614c06000040ba0"; final String json = String.format("{\"metadata\":{\"logFileName\":\"\",\"recordType\":\"ssmTx\",\"securityResultCode\":null,\"receivedMessageDetails\":{\"locationData\":null,\"rxSource\":\"NA\"},\"encodings\":null,\"payloadType\":\"us.dot.its.jpo.ode.model.OdeSsmPayload\",\"serialId\":{\"streamId\":\"b9801eb3-66fb-4d36-ae08-3e8f2bcb2026\",\"bundleSize\":1,\"bundleId\":0,\"recordId\":0,\"serialNumber\":0},\"odeReceivedAt\":\"2022-12-13T19:00:42.326229Z\",\"schemaVersion\":%s,\"maxDurationTime\":0,\"recordGeneratedAt\":\"\",\"recordGeneratedBy\":null,\"sanitized\":false,\"odePacketID\":\"\",\"odeTimStartDateTime\":\"\",\"originIp\":\"172.21.0.1\",\"ssmSource\":\"RSU\",\"asn1\":\"%s\"},\"payload\":{\"data\":{\"timeStamp\":null,\"second\":0,\"sequenceNumber\":null,\"status\":{\"signalStatus\":[{\"sequenceNumber\":0,\"id\":{\"region\":null,\"id\":12110},\"sigStatus\":{\"signalStatusPackage\":[{\"requester\":{\"id\":{\"entityID\":null,\"stationID\":2366845094},\"request\":3,\"sequenceNumber\":0,\"role\":null,\"typeData\":{\"role\":\"publicTransport\",\"subrole\":null,\"request\":null,\"iso3883\":null,\"hpmsType\":null}},\"inboundOn\":{\"lane\":23,\"approach\":null,\"connection\":null},\"outboundOn\":null,\"minute\":null,\"second\":null,\"duration\":null,\"status\":\"granted\"}]}}]}},\"dataType\":\"us.dot.its.jpo.ode.plugin.j2735.J2735SSM\"}}", SCHEMA_VERSION, ASN1_STRING); From b0ed4a0c963a340e5f65a2c53322fbcdea2ad53a Mon Sep 17 00:00:00 2001 From: Drew Johnston <31270488+drewjj@users.noreply.github.com> Date: Mon, 30 Dec 2024 15:46:53 -0700 Subject: [PATCH 5/5] Remove outdated comment --- .../test/java/us/dot/its/jpo/ode/udp/map/MapReceiverTest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/udp/map/MapReceiverTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/udp/map/MapReceiverTest.java index f96ae538a..0ac327004 100644 --- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/udp/map/MapReceiverTest.java +++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/udp/map/MapReceiverTest.java @@ -73,10 +73,6 @@ void testMapReceiver() throws IOException { // Set the clock to a fixed time so that the MapReceiver will produce the same output every time DateTimeUtils.setClock( Clock.fixed(Instant.parse("2020-01-01T00:00:00Z"), Clock.systemUTC().getZone())); - // Set the static schema version to 7 so that the MapReceiver will produce the same output every time - // This is necessary because the schema version is set in only one of the OdeMsgMetadata constructors (this should be fixed) - // and the schema version is set to the static schema version in the constructor. This means that the schema version - // will be set to 6 for all OdeMsgMetadata objects created in the MapReceiver run method's code path. MapReceiver mapReceiver = new MapReceiver(udpReceiverProperties.getMap(), kafkaTemplate, rawEncodedJsonTopics.getMap());