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 d539c00e9..9076ee5c3 100644 --- a/jpo-ode-core/src/main/resources/schemas/schema-tim.json +++ b/jpo-ode-core/src/main/resources/schemas/schema-tim.json @@ -260,10 +260,10 @@ "type": "object", "properties": { "nwCorner": { - "$ref": "#/$defs/OdePosition3D" + "$ref": "#/$defs/Position3D" }, "seCorner": { - "$ref": "#/$defs/OdePosition3D" + "$ref": "#/$defs/Position3D" } }, "required": [ @@ -317,7 +317,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/$defs/J2735Tim" + "$ref": "#/$defs/TravelerInformation" }, "dataType": { "type": "string" @@ -328,11 +328,11 @@ "dataType" ] }, - "J2735Tim": { + "TravelerInformation": { "type": "object", "properties": { "timeStamp": { - "type": "string" + "type": "number" }, "packetID": { "type": "string" @@ -344,12 +344,12 @@ "type": "array", "prefixItems": [ { - "$ref": "#/$defs/J2735TravelerDataFrame" + "$ref": "#/$defs/TravelerDataFrame" } ] }, "msgCnt": { - "type": "string" + "type": "number" } }, "required": [ @@ -357,11 +357,11 @@ "msgCnt" ] }, - "J2735TravelerDataFrame": { + "TravelerDataFrame": { "type": "object", "properties": { "notUsed": { - "type": "string" + "type": "number" }, "frameType": { "enum": [ @@ -385,41 +385,49 @@ ] }, { - "$ref": "#/$defs/J2735DF_MsgId_RoadSignId" + "type": "object", + "properties": { + "roadSignID": { + "$ref": "#/$defs/RoadSignID" + } + }, + "required": [ + "roadSignID" + ] } ] }, "startYear": { - "type": "string" + "type": "number" }, "startTime": { - "type": "string" + "type": "number" }, "durationTime": { - "type": "string" + "type": "number" }, "priority": { - "type": "string" + "type": "number" }, "notUsed1": { - "type": "string" + "type": "number" }, "regions": { "type": "array", "prefixItems": [ { - "$ref": "#/$defs/J2735DF_GeographicalPath" + "$ref": "#/$defs/GeographicalPath" } ] }, "notUsed2": { - "type": "string" + "type": "number" }, "notUsed3": { - "type": "string" + "type": "number" }, "content": { - "$ref": "#/$defs/J2735DF_Content" + "$ref": "#/$defs/ContentChoice" }, "url": { "type": "string" @@ -439,84 +447,153 @@ "content" ] }, - "J2735DF_MsgId_RoadSignId": { + "RoadSignID": { "type": "object", "properties": { - "roadSignID": { - "type": "object", - "properties": { - "position": { - "$ref": "#/$defs/OdePosition3D" - }, - "viewAngle": { - "type": "string" - }, - "mutcdCode": { - "enum": [ - "none", - "regulatory", - "warning", - "maintenance", - "motoristService", - "guide", - "rec" - ] - } - }, - "required": [ - "position", - "viewAngle" + "position": { + "$ref": "#/$defs/Position3D" + }, + "viewAngle": { + "$ref": "#/$defs/HeadingSlice" + }, + "mutcdCode": { + "enum": [ + "none", + "regulatory", + "warning", + "maintenance", + "motoristService", + "guide", + "rec" ] + }, + "crc": { + "type": "string" + } + }, + "required": [ + "position", + "viewAngle" + ] + }, + "HeadingSlice": { + "type": "object", + "properties": { + "from000-0to022-5degrees": { + "type": "boolean" + }, + "from022-5to045-0degrees": { + "type": "boolean" + }, + "from045-0to067-5degrees": { + "type": "boolean" + }, + "from067-5to090-0degrees": { + "type": "boolean" + }, + "from090-0to112-5degrees": { + "type": "boolean" + }, + "from112-5to135-0degrees": { + "type": "boolean" + }, + "from135-0to157-5degrees": { + "type": "boolean" + }, + "from157-5to180-0degrees": { + "type": "boolean" + }, + "from180-0to202-5degrees": { + "type": "boolean" + }, + "from202-5to225-0degrees": { + "type": "boolean" + }, + "from225-0to247-5degrees": { + "type": "boolean" + }, + "from247-5to270-0degrees": { + "type": "boolean" + }, + "from270-0to292-5degrees": { + "type": "boolean" + }, + "from292-5to315-0degrees": { + "type": "boolean" + }, + "from315-0to337-5degrees": { + "type": "boolean" + }, + "from337-5to360-0degrees": { + "type": "boolean" } }, "required": [ - "roadSignID" + "from000-0to022-5degrees", + "from022-5to045-0degrees", + "from045-0to067-5degrees", + "from067-5to090-0degrees", + "from090-0to112-5degrees", + "from112-5to135-0degrees", + "from135-0to157-5degrees", + "from157-5to180-0degrees", + "from180-0to202-5degrees", + "from202-5to225-0degrees", + "from225-0to247-5degrees", + "from247-5to270-0degrees", + "from270-0to292-5degrees", + "from292-5to315-0degrees", + "from315-0to337-5degrees", + "from337-5to360-0degrees" ] }, - "J2735DF_GeographicalPath": { + "GeographicalPath": { "type": "object", "properties": { "name": { "type": "string" }, "id": { - "$ref": "#/$defs/J2735RoadSegmentReferenceID" + "$ref": "#/$defs/RoadSegmentReferenceID" }, "anchor": { - "$ref": "#/$defs/OdePosition3D" + "$ref": "#/$defs/Position3D" }, "laneWidth": { "type": "number" }, "directionality": { - "enum": [ - "unavailable", - "forward", - "reverse", - "both" - ] + "$ref": "#/$defs/DirectionOfUse" }, "closedPath": { "type": "boolean" }, "direction": { - "type": "string" + "$ref": "#/$defs/HeadingSlice" }, "description": { - "$ref": "#/$defs/J2735DF_Regions_Description" + "$ref": "#/$defs/DescriptionChoice" } }, "required": [ "description" ] }, - "J2735DF_Regions_Description": { + "DirectionOfUse": { + "enum": [ + "unavailable", + "forward", + "reverse", + "both" + ] + }, + "DescriptionChoice": { "oneOf": [ { "type": "object", "properties": { "path": { - "$ref": "#/$defs/J2735OffsetSystem" + "$ref": "#/$defs/OffsetSystem" } }, "required": [ @@ -527,76 +604,105 @@ "type": "object", "properties": { "geometry": { - "$ref": "#/$defs/J2735GeometricProjection" + "$ref": "#/$defs/GeometricProjection" } }, "required": [ "geometry" ] + }, + { + "type": "object", + "properties": { + "oldRegion": { + "$ref": "#/$defs/ValidRegion" + } + }, + "required": [ + "oldRegion" + ] } ] }, - "J2735OffsetSystem": { + "OffsetSystem": { "type": "object", "properties": { "scale": { "type": "number" }, "offset": { - "oneOf": [ - { - "type": "object", - "properties": { - "xy": { - "$ref": "#/$defs/J2735NodeListXY" - } - }, - "required": [ - "xy" - ] - }, - { - "type": "object", - "properties": { - "ll": { - "$ref": "#/$defs/J2735NodeListLL" - } - }, - "required": [ - "ll" - ] - } - ] + "$ref": "#/$defs/OffsetChoice" } }, "required": [ "offset" ] }, - "J2735NodeListXY": { - "type": "object", - "properties": { - "nodes": { - "type": "array", - "prefixItems": [ - { - "$ref": "#/$defs/J2735NodeXY" + "OffsetChoice": { + "oneOf": [ + { + "type": "object", + "properties": { + "xy": { + "$ref": "#/$defs/NodeListXY" + } + }, + "required": [ + "xy" + ] + }, + { + "type": "object", + "properties": { + "ll": { + "$ref": "#/$defs/NodeListLL" } + }, + "required": [ + "ll" + ] + } + ] + }, + "NodeListXY": { + "oneOf": [ + { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "prefixItems": [ + { + "$ref": "#/$defs/NodeXY" + } + ] + } + }, + "required": [ + "nodes" + ] + }, + { + "type": "object", + "properties": { + "computed": { + "$ref": "#/$defs/ComputedLane" + } + }, + "required": [ + "computed" ] } - }, - "required": [ - "nodes" ] }, - "J2735NodeListLL": { + "NodeListLL": { "type": "object", "properties": { "nodes": { "type": "array", "prefixItems": [ { - "$ref": "#/$defs/J2735NodeLL" + "$ref": "#/$defs/NodeLL" } ] } @@ -605,504 +711,778 @@ "nodes" ] }, - "J2735NodeXY": { + "NodeXY": { "type": "object", "properties": { "delta": { - "oneOf": [ - { - "type": "object", - "properties": { - "nodeXY1": { - "$ref": "#/$defs/J2735NodeXYDelta" - } - }, - "required": [ - "nodeXY1" - ] - }, - { - "type": "object", - "properties": { - "nodeXY2": { - "$ref": "#/$defs/J2735NodeXYDelta" - } - }, - "required": [ - "nodeXY2" - ] - }, - { - "type": "object", - "properties": { - "nodeXY3": { - "$ref": "#/$defs/J2735NodeXYDelta" - } - }, - "required": [ - "nodeXY3" - ] - }, - { - "type": "object", - "properties": { - "nodeXY4": { - "$ref": "#/$defs/J2735NodeXYDelta" - } - }, - "required": [ - "nodeXY4" - ] - }, - { - "type": "object", - "properties": { - "nodeXY5": { - "$ref": "#/$defs/J2735NodeXYDelta" - } - }, - "required": [ - "nodeXY5" - ] - }, - { - "type": "object", - "properties": { - "nodeXY6": { - "$ref": "#/$defs/J2735NodeXYDelta" - } - }, - "required": [ - "nodeXY6" - ] - }, - { - "type": "object", - "properties": { - "nodeLatLon": { - "$ref": "#/$defs/J2735NodeLLDelta" - } - }, - "required": [ - "nodeLatLon" - ] - } - ] + "$ref": "#/$defs/NodeOffsetPointXY" + }, + "attributes": { + "$ref": "#/$defs/NodeAttributeSet" } }, "required": [ "delta" ] }, - "J2735NodeLL": { - "type": "object", - "properties": { - "delta": { - "oneOf": [ - { - "type": "object", - "properties": { - "nodeLL1": { - "$ref": "#/$defs/J2735NodeLLDelta" - } - }, - "required": [ - "nodeLL1" - ] - }, - { - "type": "object", - "properties": { - "nodeLL2": { - "$ref": "#/$defs/J2735NodeLLDelta" - } - }, - "required": [ - "nodeLL2" - ] - }, - { - "type": "object", - "properties": { - "nodeLL3": { - "$ref": "#/$defs/J2735NodeLLDelta" - } - }, - "required": [ - "nodeLL3" - ] - }, - { - "type": "object", - "properties": { - "nodeLL4": { - "$ref": "#/$defs/J2735NodeLLDelta" - } - }, - "required": [ - "nodeLL4" - ] - }, - { - "type": "object", - "properties": { - "nodeLL5": { - "$ref": "#/$defs/J2735NodeLLDelta" - } - }, - "required": [ - "nodeLL5" - ] - }, + "NodeOffsetPointXY": { + "oneOf": [ + { + "type": "object", + "properties": { + "nodeXY1": { + "$ref": "#/$defs/NodeXYPoint" + } + }, + "required": [ + "nodeXY1" + ] + }, + { + "type": "object", + "properties": { + "nodeXY2": { + "$ref": "#/$defs/NodeXYPoint" + } + }, + "required": [ + "nodeXY2" + ] + }, + { + "type": "object", + "properties": { + "nodeXY3": { + "$ref": "#/$defs/NodeXYPoint" + } + }, + "required": [ + "nodeXY3" + ] + }, + { + "type": "object", + "properties": { + "nodeXY4": { + "$ref": "#/$defs/NodeXYPoint" + } + }, + "required": [ + "nodeXY4" + ] + }, + { + "type": "object", + "properties": { + "nodeXY5": { + "$ref": "#/$defs/NodeXYPoint" + } + }, + "required": [ + "nodeXY5" + ] + }, + { + "type": "object", + "properties": { + "nodeXY6": { + "$ref": "#/$defs/NodeXYPoint" + } + }, + "required": [ + "nodeXY6" + ] + }, + { + "type": "object", + "properties": { + "nodeLatLon": { + "$ref": "#/$defs/NodeLLmD" + } + }, + "required": [ + "nodeLatLon" + ] + } + ] + }, + "NodeAttributeSet": { + "type": "object", + "properties": { + "localNode": { + "type": "array", + "prefixItems": [ { - "type": "object", - "properties": { - "nodeLL6": { - "$ref": "#/$defs/J2735NodeLLDelta" - } - }, - "required": [ - "nodeLL6" - ] - }, + "$ref": "#/$defs/NodeAttributeXY" + } + ] + }, + "disabled": { + "type": "array", + "prefixItems": [ { - "type": "object", - "properties": { - "nodeLatLon": { - "$ref": "#/$defs/J2735NodeLLDelta" - } - }, - "required": [ - "nodeLatLon" - ] + "$ref": "#/$defs/SegmentAttributeXY" } ] + }, + "enabled": { + "type": "array", + "prefixItems": [ + { + "$ref": "#/$defs/SegmentAttributeXY" + } + ] + }, + "data": { + "type": "array", + "prefixItems": [ + { + "$ref": "#/$defs/LaneDataAttribute" + } + ] + }, + "dWidth": { + "type": "number" + }, + "dElevation": { + "type": "number" } - }, - "required": [ - "delta" + } + }, + "NodeAttributeXY": { + "enum": [ + "reserved", + "stopLine", + "roundedCapStyleA", + "roundedCapStyleB", + "mergePoint", + "divergePoint", + "downstreamStopLine", + "downstreamStartNode", + "closedToTraffic", + "safeIsland", + "curbPresentAtStepOff", + "hydrantPresent" + ] + }, + "SegmentAttributeXY": { + "enum": [ + "reserved", + "doNotBlock", + "whiteLine", + "mergingLaneLeft", + "mergingLaneRight", + "curbOnLeft", + "curbOnRight", + "loadingzoneOnLeft", + "loadingzoneOnRight", + "turnOutPointOnLeft", + "turnOutPointOnRight", + "adjacentParkingOnLeft", + "adjacentParkingOnRight", + "adjacentBikeLaneOnLeft", + "adjacentBikeLaneOnRight", + "sharedBikeLane", + "bikeBoxInFront", + "transitStopOnLeft", + "transitStopOnRight", + "transitStopInLane", + "sharedWithTrackedVehicle", + "safeIsland", + "lowCurbsPresent", + "rumbleStripPresent", + "audibleSignalingPresent", + "adaptiveTimingPresent", + "rfSignalRequestPresent", + "partialCurbIntrusion", + "taperToLeft", + "taperToRight", + "taperToCenterLine", + "parallelParking", + "headInParking", + "freeParking", + "timeRestrictionsOnParking", + "costToPark", + "midBlockCurbPresent", + "unEvenPavementPresent" ] }, - "J2735NodeXYDelta": { + "LaneDataAttribute": { "type": "object", "properties": { - "x": { + "pathEndPointAngle": { "type": "number" }, - "y": { + "laneCrownPointCenter": { "type": "number" + }, + "laneCrownPointLeft": { + "type": "number" + }, + "laneCrownPointRight": { + "type": "number" + }, + "laneAngle": { + "type": "number" + }, + "speedLimits": { + "type": "array", + "prefixItems": [ + { + "$ref": "#/$defs/RegulatorySpeedLimit" + } + ] } }, "required": [ - "x", - "y" + "pathEndPointAngle", + "laneCrownPointCenter", + "laneCrownPointLeft", + "laneCrownPointRight", + "laneAngle", + "speedLimits" ] }, - "J2735NodeLLDelta": { + "RegulatorySpeedLimit": { "type": "object", "properties": { - "lat": { - "type": "number" + "type": { + "enum": [ + "unknown", + "maxSpeedInSchoolZone", + "maxSpeedInSchoolZoneWhenChildrenArePresent", + "maxSpeedInConstructionZone", + "vehicleMinSpeed", + "vehicleMaxSpeed", + "vehicleNightMaxSpeed", + "truckMinSpeed", + "truckMaxSpeed", + "truckNightMaxSpeed", + "vehiclesWithTrailersMinSpeed", + "vehiclesWithTrailersMaxSpeed", + "vehiclesWithTrailersNightMaxSpeed" + ] }, - "lon": { + "speed": { "type": "number" } }, "required": [ - "lon", - "lat" + "type", + "speed" ] }, - "J2735GeometricProjection": { + "NodeLL": { "type": "object", "properties": { - "direction": { - "type": "string" - }, - "extent": { - "type": "string" + "delta": { + "$ref": "#/$defs/NodeOffsetPointLL" }, - "laneWidth": { - "type": "string" + "attributes": { + "$ref": "#/$defs/NodeAttributeSet" + } + }, + "required": [ + "delta" + ] + }, + "NodeOffsetPointLL": { + "oneOf": [ + { + "type": "object", + "properties": { + "nodeLL1": { + "$ref": "#/$defs/NodeLLmD" + } + }, + "required": [ + "nodeLL1" + ] }, - "circle": { + { "type": "object", "properties": { - "center": { - "$ref": "#/$defs/J2735Position3D" - }, - "radius": { - "type": "string" - }, - "units": { - "$ref": "#/$defs/J2735DistanceUnits" + "nodeLL2": { + "$ref": "#/$defs/NodeLLmD" } }, "required": [ - "center", - "radius", - "units" + "nodeLL2" ] - } - }, - "required": [ - "direction", - "circle" - ] - }, - "J2735DF_Content": { - "oneOf": [ + }, { "type": "object", "properties": { - "advisory": { - "$ref": "#/$defs/J2735DF_ContentSequence" + "nodeLL3": { + "$ref": "#/$defs/NodeLLmD" } }, "required": [ - "advisory" + "nodeLL3" ] }, { "type": "object", "properties": { - "workZone": { - "$ref": "#/$defs/J2735DF_ContentSequence" + "nodeLL4": { + "$ref": "#/$defs/NodeLLmD" } }, "required": [ - "workZone" + "nodeLL4" ] }, { "type": "object", "properties": { - "genericSign": { - "$ref": "#/$defs/J2735DF_ContentSequence" + "nodeLL5": { + "$ref": "#/$defs/NodeLLmD" } }, "required": [ - "genericSign" + "nodeLL5" ] }, { "type": "object", "properties": { - "speedLimit": { - "$ref": "#/$defs/J2735DF_ContentSequence" + "nodeLL6": { + "$ref": "#/$defs/NodeLLmD" } }, "required": [ - "speedLimit" + "nodeLL6" ] }, { "type": "object", "properties": { - "exitService": { - "$ref": "#/$defs/J2735DF_ContentSequence" + "nodeLatLon": { + "$ref": "#/$defs/NodeLLmD" } }, "required": [ - "exitService" + "nodeLatLon" ] } ] }, - "J2735DF_ContentSequence": { + "NodeXYPoint": { + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + "NodeLLmD": { + "type": "object", + "properties": { + "lat": { + "type": "number" + }, + "lon": { + "type": "number" + } + }, + "required": [ + "lon", + "lat" + ] + }, + "ComputedLane": { + "type": "object", + "properties": { + "referenceLaneId": { + "type": "number" + }, + "offsetXaxis": { + "$ref": "#/$defs/OffsetXaxisChoice" + }, + "offsetYaxis": { + "$ref": "#/$defs/OffsetYaxisChoice" + }, + "rotateXY": { + "type": "number" + }, + "scaleXaxis": { + "type": "number" + }, + "scaleYaxis": { + "type": "number" + } + }, + "required": [ + "referenceLaneId", + "offsetXaxis", + "offsetYaxis" + ] + }, + "OffsetXaxisChoice": { "oneOf": [ { "type": "object", "properties": { - "SEQUENCE": { - "type": "array", - "prefixItems": [ - { - "$ref": "#/$defs/J2735DF_ContentSequenceItem" - } - ] + "small": { + "type": "number" } }, "required": [ - "SEQUENCE" + "small" ] }, { "type": "object", "properties": { - "SEQUENCE": { - "$ref": "#/$defs/J2735DF_ContentSequenceItem" + "large": { + "type": "number" } }, "required": [ - "SEQUENCE" + "large" ] } ] }, - "J2735DF_ContentSequenceItem": { - "type": "object", - "properties": { - "item": { + "OffsetYaxisChoice": { + "oneOf": [ + { "type": "object", "properties": { - "itis": { - "type": "string" + "small": { + "type": "number" } }, "required": [ - "itis" + "small" + ] + }, + { + "type": "object", + "properties": { + "large": { + "type": "number" + } + }, + "required": [ + "large" ] } - }, - "required": [ - "item" ] }, - "J2735Position3D": { + "GeometricProjection": { "type": "object", "properties": { - "lat": { - "type": "string" + "direction": { + "$ref": "#/$defs/HeadingSlice" }, - "long": { - "type": "string" + "extent": { + "$ref": "#/$defs/Extent" }, - "elevation": { - "type": [ - "string", - "null" - ] + "laneWidth": { + "type": "number" + }, + "circle": { + "$ref": "#/$defs/Circle" } }, "required": [ - "lat", - "long" + "direction", + "circle" ] }, - "OdePosition3D": { + "Circle": { "type": "object", "properties": { - "latitude": { - "type": "number" + "center": { + "$ref": "#/$defs/Position3D" }, - "longitude": { + "radius": { "type": "number" }, - "elevation": { - "type": "number" + "units": { + "$ref": "#/$defs/DistanceUnits" } }, "required": [ - "latitude", - "longitude" + "center", + "radius", + "units" ] }, - "J2735RoadSegmentReferenceID": { + "ValidRegion": { "type": "object", "properties": { - "id": { - "type": "number" + "direction": { + "$ref": "#/$defs/HeadingSlice" }, - "region": { - "type": "number" + "extent": { + "$ref": "#/$defs/Extent" + }, + "area": { + "$ref": "#/$defs/AreaChoice" } }, "required": [ - "id" + "direction", + "extent", + "area" ] }, - "J2735DistanceUnits": { + "Extent": { + "enum": [ + "useInstantlyOnly", + "useFor3meters", + "useFor10meters", + "useFor50meters", + "useFor100meters", + "useFor500meters", + "useFor1000meters", + "useFor5000meters", + "useFor10000meters", + "useFor50000meters", + "useFor100000meters", + "useFor500000meters", + "useFor1000000meters", + "useFor5000000meters", + "useFor10000000meters", + "forever" + ] + }, + "AreaChoice": { "oneOf": [ { "type": "object", "properties": { - "centimeter": { - "type": "string" + "shapePointSet": { + "$ref": "#/$defs/ShapePointSet" } }, "required": [ - "centimeter" + "shapePointSet" ] }, { "type": "object", "properties": { - "cm2-5": { - "type": "string" + "circle": { + "$ref": "#/$defs/Circle" } }, "required": [ - "cm2-5" + "circle" ] }, { "type": "object", "properties": { - "decimeter": { - "type": "string" + "regionPointSet": { + "$ref": "#/$defs/RegionPointSet" } }, "required": [ - "decimeter" + "regionPointSet" ] + } + ] + }, + "ShapePointSet": { + "type": "object", + "properties": { + "anchor": { + "$ref": "#/$defs/Position3D" + }, + "laneWidth": { + "type": "number" + }, + "directionality": { + "$ref": "#/$defs/DirectionOfUse" }, + "nodeList": { + "$ref": "#/$defs/NodeListXY" + } + }, + "required": [ + "nodeList" + ] + }, + "RegionPointSet": { + "type": "object", + "properties": { + "anchor": { + "$ref": "#/$defs/Position3D" + }, + "scale": { + "type": "number" + }, + "nodeList": { + "type": "array", + "prefixItems": [ + { + "$ref": "#/$defs/RegionList" + } + ] + } + }, + "required": [ + "nodeList" + ] + }, + "RegionList": { + "type": "object", + "properties": { + "xOffset": { + "type": "number" + }, + "yOffset": { + "type": "number" + }, + "zOffset": { + "type": "number" + } + }, + "required": [ + "xOffset", + "yOffset" + ] + }, + "ContentChoice": { + "oneOf": [ { "type": "object", "properties": { - "meter": { - "type": "string" + "advisory": { + "$ref": "#/$defs/ContentSequence" } }, "required": [ - "meter" + "advisory" ] }, { "type": "object", "properties": { - "kilometer": { - "type": "string" + "workZone": { + "$ref": "#/$defs/ContentSequence" } }, "required": [ - "kilometer" + "workZone" ] }, { "type": "object", "properties": { - "foot": { - "type": "string" + "genericSign": { + "$ref": "#/$defs/ContentSequence" } }, "required": [ - "foot" + "genericSign" ] }, { "type": "object", "properties": { - "yard": { - "type": "string" + "speedLimit": { + "$ref": "#/$defs/ContentSequence" } }, "required": [ - "yard" + "speedLimit" ] }, { "type": "object", "properties": { - "mile": { - "type": "string" + "exitService": { + "$ref": "#/$defs/ContentSequence" } }, "required": [ - "mile" + "exitService" ] } ] + }, + "ContentSequence": { + "type": "array", + "prefixItems": [ + { + "$ref": "#/$defs/ContentSequenceItem" + } + ] + }, + "ContentSequenceItem": { + "type": "object", + "properties": { + "item": { + "type": "object", + "properties": { + "itis": { + "type": ["string", "number"] + } + }, + "required": [ + "itis" + ] + } + }, + "required": [ + "item" + ] + + }, + "Position3D": { + "type": "object", + "properties": { + "lat": { + "type": "number" + }, + "long": { + "type": "number" + }, + "elevation": { + "type": "number" + } + }, + "required": [ + "lat", + "long" + ] + }, + "RoadSegmentReferenceID": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "region": { + "type": "number" + } + }, + "required": [ + "id" + ] + }, + "DistanceUnits": { + "enum": [ + "centimeter", + "cm2-5", + "decimeter", + "meter", + "kilometer", + "foot", + "yard", + "mile" + ] } } } \ No newline at end of file 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 8d38a5a14..3e096b913 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":"89b9de68-7e91-4491-886f-d95276b67907","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-11-26T07:29:12.257Z","schemaVersion":7,"maxDurationTime":0,"recordGeneratedAt":"","recordGeneratedBy":"RSU","sanitized":false,"odePacketID":"","odeTimStartDateTime":"","asn1":"001F80AE70165E87AD5DB73EE53601D49C0F775D9B0B01C266509C496663068FFFF93F43448C001EA007F95937EAD35AC9A5FA54EADF62C17316CB99385CDA00000000266509C4966630689388C200021000EBE86F264E051097630004008027BBAECD8C070999427125998C1A3FFFE4FD0D1230007A801FE564DFAB4D6B2697E953AB7D8B05CC5B2E64E1736800000000999427125998C1A24E230800084003AFA1BC993814425D8C0000003023DDD766C0913189880FB96879A18B9BEE7183450F963D09BEACCD8A5B06FB639381F59F27808066C418702727350EEAB14E752EA27C0AF0540260F9187757E2192FECE54EF4F0032D653EFB5938AE340F6D3122636E7F61F9BD3A1CB5B4695B634BFFADD4018543C5862B4D608430EA9F2FCE99599935425B5DD64F77EC1495571FB50D0B03FF442529D80EA12704C08088E30204E84B3BD03B6001002009EEEBB360A4000801004F775D9B00C1265E25E2A8F3809BC14F804485CC84244966B611857569128444CB48453B9DC84ACCB06E225C6B7C36122F9B9E008F85DC55C42092CD4611CE5A3B107BFB25F0864A19C5049086E7A024071790208BE4FAF8D63F87FC1027B83FF235FF8DFFC6116EAC028093B920DF0468311194237188767113D84037081D31FE2C6B3443FED434C4F1FF3311F183E46892F5DE8D049958EF3E21B27675C100","originIp":"172.18.0.1"},"payload":{"dataType":"us.dot.its.jpo.ode.plugin.j2735.J2735Tim","data":{"msgCnt":"1","timeStamp":"417415","packetID":"AD5DB73EE53601D49C","dataFrames":[{"notUsed":"0","frameType":"advisory","msgId":{"roadSignID":{"position":{"latitude":38.8311689,"longitude":-104.8408366},"viewAngle":"1111111111111111","mutcdCode":"warning"}},"startYear":"2024","startTime":"428312","durationTime":"30","priority":"5","notUsed1":"0","regions":[{"name":"I_US-24_RSU_10.16.28.6","id":{"region":0,"id":0},"anchor":{"latitude":38.8311689,"longitude":-104.8408366},"laneWidth":5000,"directionality":"both","closedPath":false,"description":{"path":{"scale":0,"offset":{"ll":{"nodes":[{"delta":{"nodeLL1":{"lon":1726,"lat":111}}},{"delta":{"nodeLL5":{"lon":1208360,"lat":77510}}}]}}}}}],"notUsed2":"0","notUsed3":"0","content":{"workZone":{"SEQUENCE":[{"item":{"itis":"1025"}}]}}},{"notUsed":"0","frameType":"advisory","msgId":{"roadSignID":{"position":{"latitude":38.8311689,"longitude":-104.8408366},"viewAngle":"1111111111111111","mutcdCode":"warning"}},"startYear":"2024","startTime":"428312","durationTime":"30","priority":"5","notUsed1":"0","regions":[{"name":"I_US-24_RSU_10.16.28.6","id":{"region":0,"id":0},"anchor":{"latitude":38.8311689,"longitude":-104.8408366},"laneWidth":5000,"directionality":"both","closedPath":false,"description":{"path":{"scale":0,"offset":{"ll":{"nodes":[{"delta":{"nodeLL1":{"lon":1726,"lat":111}}},{"delta":{"nodeLL5":{"lon":1208360,"lat":77510}}}]}}}}}],"notUsed2":"0","notUsed3":"0","content":{"advisory":{"SEQUENCE":[{"item":{"itis":"770"}}]}}}]}}} \ 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":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":[{"notUsed":29,"frameType":"commercialSignage","msgId":{"furtherInfoID":"4F43"},"startYear":425,"startTime":306216,"durationTime":31001,"priority":2,"notUsed1":1,"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"}}}}],"notUsed2":15,"notUsed3":9,"content":{"exitService":[{"item":{"itis":599}}]},"url":"IA5S"},{"notUsed":11,"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,"notUsed1":10,"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"}}}}],"notUsed2":11,"notUsed3":23,"content":{"exitService":[{"item":{"text":"I"}},{"item":{"text":"IA5St"}},{"item":{"text":"IA5"}}]},"url":"IA5St"},{"notUsed":13,"frameType":"unknown","msgId":{"furtherInfoID":"4F43"},"startYear":2776,"startTime":408571,"durationTime":15957,"priority":5,"notUsed1":6,"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"}}}}}],"notUsed2":31,"notUsed3":12,"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-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/TravelerDataFrame.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/TravelerDataFrame.java index 6fe034246..b109ee671 100644 --- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/TravelerDataFrame.java +++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/TravelerDataFrame.java @@ -23,7 +23,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; /* - * EDITED -> notUsed, notUsed1, notUsed2, notUsed3 fields. + * EDITED -> notUsed, notUsed1, notUsed2, notUsed3, durationTime fields. */ /** @@ -71,7 +71,7 @@ public class TravelerDataFrame extends Asn1Sequence { private MinuteOfTheYear startTime; @Asn1Property(tag = 5) @JsonDeserialize(using = MinutesDuration.MinutesDurationDeserializer.class) - private MinutesDuration duratonTime; + private MinutesDuration durationTime; @Asn1Property(tag = 6) @JsonDeserialize(using = SignPrority.SignProrityDeserializer.class) private SignPrority priority; diff --git a/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java b/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java index a9c3118a9..b1a45becb 100644 --- a/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java +++ b/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java @@ -46,21 +46,7 @@ public void shouldTranslateMap() { } J2735MAP actualMap = MAPBuilder.genericMAP(jsonMap.findValue("MapData")); String expected = """ - {\"msgIssueRevision\":4,\"layerType\":\"mixedContent\",\"layerID\":12,\"intersections\": - {\"intersectionGeometry\":[{\"id\":{\"id\":156},\"revision\":1,\"refPoint\": - {\"latitude\":38.9284111,\"longitude\":-77.2410713},\"laneSet\":{\"GenericLane\":[ - {\"laneID\":1,\"laneAttributes\":{\"directionalUse\":{\"ingressPath\":false, - \"egressPath\":false},\"shareWith\":{\"busVehicleTraffic\":false,\"trackedVehicl - eTraffic\":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\":{\"nodeXY2\":{\"x\":43,\"y\":24}}},{\"delta\":{\"nodeXY2\": - {\"x\":43,\"y\":24}}}]}}]}}]}} - """; + {\"msgIssueRevision\":4,\"layerType\":\"mixedContent\",\"layerID\":12,\"intersections\":{\"intersectionGeometry\":[{\"id\":{\"id\":156},\"revision\":1,\"refPoint\":{\"latitude\":38.9284111,\"longitude\":-77.2410713},\"laneSet\":{\"GenericLane\":[{\"laneID\":1,\"laneAttributes\":{\"directionalUse\":{\"ingressPath\":false,\"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}}},\"nodeList\":{\"nodes\":[{\"delta\":{\"nodeXY2\":{\"x\":43,\"y\":24}}},{\"delta\":{\"nodeXY2\":{\"x\":43,\"y\":24}}}]}}]}}]}}"""; assertEquals(expected, actualMap.toJson()); } } diff --git a/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java b/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java index 8da6c48bd..eb4a1a966 100644 --- a/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java +++ b/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java @@ -35,10 +35,5 @@ public void testSerializeJson() throws JsonProcessingException { } private static final String EXPECTED_JSON = """ - {"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}"""; + {"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}"""; } diff --git a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_JSON.json b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_JSON.json index 0f7dd9c1f..3e096b913 100644 --- a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_JSON.json +++ b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_JSON.json @@ -1 +1 @@ -{"metadata":{"logFileName":"","recordType":"timMsg","securityResultCode":"success","receivedMessageDetails":{"rxSource":"NA"},"payloadType":"us.dot.its.jpo.ode.model.OdeTimPayload","serialId":{"streamId":"adb022ef-9a97-4aa3-8bab-1fde55b620a1","bundleSize":1,"bundleId":0,"recordId":0,"serialNumber":0},"odeReceivedAt":"2024-12-05T10:21:33.228Z","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":[{"notUsed":29,"frameType":"commercialSignage","msgId":{"furtherInfoID":"4F43"},"startYear":425,"startTime":306216,"priority":2,"notUsed1":1,"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"}}}}],"notUsed2":15,"notUsed3":9,"content":{"exitService":[{"item":{"itis":599}}]},"url":"IA5S"},{"notUsed":11,"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,"priority":5,"notUsed1":10,"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"}}}}],"notUsed2":11,"notUsed3":23,"content":{"exitService":[{"item":{"text":"I"}},{"item":{"text":"IA5St"}},{"item":{"text":"IA5"}}]},"url":"IA5St"},{"notUsed":13,"frameType":"unknown","msgId":{"furtherInfoID":"4F43"},"startYear":2776,"startTime":408571,"priority":5,"notUsed1":6,"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"}}}}}],"notUsed2":31,"notUsed3":12,"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":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":[{"notUsed":29,"frameType":"commercialSignage","msgId":{"furtherInfoID":"4F43"},"startYear":425,"startTime":306216,"durationTime":31001,"priority":2,"notUsed1":1,"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"}}}}],"notUsed2":15,"notUsed3":9,"content":{"exitService":[{"item":{"itis":599}}]},"url":"IA5S"},{"notUsed":11,"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,"notUsed1":10,"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"}}}}],"notUsed2":11,"notUsed3":23,"content":{"exitService":[{"item":{"text":"I"}},{"item":{"text":"IA5St"}},{"item":{"text":"IA5"}}]},"url":"IA5St"},{"notUsed":13,"frameType":"unknown","msgId":{"furtherInfoID":"4F43"},"startYear":2776,"startTime":408571,"durationTime":15957,"priority":5,"notUsed1":6,"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"}}}}}],"notUsed2":31,"notUsed3":12,"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/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER.xml b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER.xml index 072580466..a7b211480 100644 --- a/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER.xml +++ b/jpo-ode-svcs/src/test/resources/us.dot.its.jpo.ode.coder/OdeTimDataCreatorHelper_TIM_XER.xml @@ -1,3 +1,4 @@ + @@ -13,13 +14,13 @@ us.dot.its.jpo.ode.model.OdeAsn1Payload - adb022ef-9a97-4aa3-8bab-1fde55b620a1 + 8af76b08-89bf-422e-b674-0f0ee065666f 1 0 0 0 - 2024-12-05T10:21:33.228Z + 2024-12-06T10:39:42.806Z 7 0