From 5153424693ca144122363cc330db736d6f83d597 Mon Sep 17 00:00:00 2001 From: jwillmartin Date: Mon, 16 Oct 2023 17:18:02 -0400 Subject: [PATCH] new folder: src/tmx/Asn_J2735/include/asn_j2735_2020 new folder: src/tmx/Asn_J2735/src/2020 --- .../Asn_J2735/include/asn_j2735_2020/ANY.h | 84 + .../AccelSteerYawRateConfidence.h | 44 + .../include/asn_j2735_2020/Acceleration.h | 47 + .../asn_j2735_2020/AccelerationConfidence.h | 60 + .../asn_j2735_2020/AccelerationSet4Way.h | 45 + .../include/asn_j2735_2020/AddGrpB_Angle.h | 46 + .../asn_j2735_2020/AddGrpB_Elevation.h | 47 + .../include/asn_j2735_2020/AddGrpB_MsgCount.h | 46 + .../include/asn_j2735_2020/AddGrpB_TimeMark.h | 56 + .../include/asn_j2735_2020/AdvisorySpeed.h | 63 + .../asn_j2735_2020/AdvisorySpeedList.h | 44 + .../asn_j2735_2020/AdvisorySpeedType.h | 59 + .../include/asn_j2735_2020/AllowedManeuvers.h | 63 + .../include/asn_j2735_2020/Altitude.h | 42 + .../asn_j2735_2020/AltitudeConfidence.h | 68 + .../include/asn_j2735_2020/AltitudeValue.h | 47 + .../asn_j2735_2020/AmbientAirPressure.h | 47 + .../asn_j2735_2020/AmbientAirTemperature.h | 47 + .../asn_j2735_2020/AnimalPropelledType.h | 59 + .../include/asn_j2735_2020/AnimalType.h | 59 + .../include/asn_j2735_2020/AntennaOffsetSet.h | 44 + .../asn_j2735_2020/AntiLockBrakeStatus.h | 56 + .../include/asn_j2735_2020/ApproachID.h | 47 + .../include/asn_j2735_2020/ApproachOrLane.h | 53 + .../include/asn_j2735_2020/Attachment.h | 62 + .../include/asn_j2735_2020/AttachmentRadius.h | 47 + .../asn_j2735_2020/AuxiliaryBrakeStatus.h | 56 + .../include/asn_j2735_2020/AxleLocation.h | 47 + .../include/asn_j2735_2020/AxleWeight.h | 47 + .../include/asn_j2735_2020/AxleWeightList.h | 44 + .../include/asn_j2735_2020/AxleWeightSet.h | 46 + .../include/asn_j2735_2020/BIT_STRING.h | 75 + .../include/asn_j2735_2020/BOOLEAN.h | 70 + .../include/asn_j2735_2020/BSMcoreData.h | 66 + .../asn_j2735_2020/BasicSafetyMessage.h | 62 + .../asn_j2735_2020/BasicVehicleClass.h | 103 + .../include/asn_j2735_2020/BasicVehicleRole.h | 78 + .../asn_j2735_2020/BrakeAppliedPressure.h | 68 + .../asn_j2735_2020/BrakeAppliedStatus.h | 56 + .../asn_j2735_2020/BrakeBoostApplied.h | 55 + .../asn_j2735_2020/BrakeSystemStatus.h | 50 + .../include/asn_j2735_2020/BumperHeight.h | 47 + .../include/asn_j2735_2020/BumperHeights.h | 41 + .../include/asn_j2735_2020/CargoWeight.h | 47 + .../Asn_J2735/include/asn_j2735_2020/Circle.h | 44 + .../include/asn_j2735_2020/CoarseHeading.h | 47 + .../include/asn_j2735_2020/CodeWord.h | 46 + .../asn_j2735_2020/CoefficientOfFriction.h | 47 + .../asn_j2735_2020/CommonSafetyRequest.h | 61 + .../include/asn_j2735_2020/Common_Angle.h | 47 + .../include/asn_j2735_2020/Common_Elevation.h | 47 + .../include/asn_j2735_2020/Common_MsgCount.h | 47 + .../include/asn_j2735_2020/ComputedLane.h | 95 + .../include/asn_j2735_2020/Confidence.h | 47 + .../include/asn_j2735_2020/ConfidenceSet.h | 58 + .../include/asn_j2735_2020/ConnectingLane.h | 42 + .../include/asn_j2735_2020/Connection.h | 50 + .../ConnectionManeuverAssist-addGrpC.h | 44 + .../asn_j2735_2020/ConnectionManeuverAssist.h | 62 + .../include/asn_j2735_2020/ConnectsToList.h | 44 + .../Asn_J2735/include/asn_j2735_2020/Count.h | 46 + .../Asn_J2735/include/asn_j2735_2020/DDate.h | 42 + .../include/asn_j2735_2020/DDateTime.h | 52 + .../Asn_J2735/include/asn_j2735_2020/DDay.h | 47 + .../include/asn_j2735_2020/DFullTime.h | 46 + .../Asn_J2735/include/asn_j2735_2020/DHour.h | 47 + .../include/asn_j2735_2020/DMinute.h | 47 + .../Asn_J2735/include/asn_j2735_2020/DMonth.h | 47 + .../include/asn_j2735_2020/DMonthDay.h | 40 + .../include/asn_j2735_2020/DOffset.h | 47 + .../include/asn_j2735_2020/DSRCmsgID.h | 96 + .../include/asn_j2735_2020/DSecond.h | 47 + .../Asn_J2735/include/asn_j2735_2020/DTime.h | 44 + .../Asn_J2735/include/asn_j2735_2020/DYear.h | 47 + .../include/asn_j2735_2020/DYearMonth.h | 40 + .../include/asn_j2735_2020/DataParameters.h | 47 + .../Asn_J2735/include/asn_j2735_2020/Day.h | 47 + .../include/asn_j2735_2020/DayOfWeek.h | 60 + .../include/asn_j2735_2020/DegreesLat.h | 47 + .../include/asn_j2735_2020/DegreesLong.h | 47 + .../include/asn_j2735_2020/DeltaAngle.h | 47 + .../include/asn_j2735_2020/DeltaTime.h | 47 + .../include/asn_j2735_2020/DescriptiveName.h | 47 + .../include/asn_j2735_2020/DirectionOfUse.h | 56 + .../include/asn_j2735_2020/DisabledVehicle.h | 46 + .../include/asn_j2735_2020/DistanceUnits.h | 60 + .../asn_j2735_2020/DriveAxleLiftAirPressure.h | 47 + .../asn_j2735_2020/DriveAxleLocation.h | 47 + .../asn_j2735_2020/DriveAxleLubePressure.h | 47 + .../asn_j2735_2020/DriveAxleTemperature.h | 47 + .../asn_j2735_2020/DrivenLineOffsetLg.h | 47 + .../asn_j2735_2020/DrivenLineOffsetSm.h | 47 + .../asn_j2735_2020/DrivingWheelAngle.h | 47 + .../include/asn_j2735_2020/Duration.h | 46 + .../include/asn_j2735_2020/EXTERNAL.h | 65 + .../asn_j2735_2020/ElevationConfidence.h | 68 + .../include/asn_j2735_2020/EmergencyDetails.h | 56 + .../asn_j2735_2020/EmergencyVehicleAlert.h | 73 + .../include/asn_j2735_2020/EmissionType.h | 60 + .../include/asn_j2735_2020/EnabledLaneList.h | 42 + .../asn_j2735_2020/EssMobileFriction.h | 47 + .../include/asn_j2735_2020/EssPrecipRate.h | 47 + .../asn_j2735_2020/EssPrecipSituation.h | 67 + .../include/asn_j2735_2020/EssPrecipYesNo.h | 55 + .../asn_j2735_2020/EssSolarRadiation.h | 47 + .../include/asn_j2735_2020/EventDescription.h | 67 + .../include/asn_j2735_2020/ExitService.h | 69 + .../Asn_J2735/include/asn_j2735_2020/Extent.h | 68 + .../include/asn_j2735_2020/ExteriorLights.h | 60 + .../include/asn_j2735_2020/FuelType.h | 57 + .../asn_j2735_2020/FullPositionVector.h | 64 + .../include/asn_j2735_2020/FurtherInfoID.h | 47 + .../include/asn_j2735_2020/GNSSstatus.h | 59 + .../include/asn_j2735_2020/GenericLane.h | 70 + .../include/asn_j2735_2020/GenericLocations.h | 151 + .../include/asn_j2735_2020/GenericSignage.h | 69 + .../include/asn_j2735_2020/GeographicalPath.h | 96 + .../asn_j2735_2020/GeometricProjection.h | 61 + .../include/asn_j2735_2020/GraphicString.h | 56 + .../include/asn_j2735_2020/GrossDistance.h | 47 + .../include/asn_j2735_2020/GrossSpeed.h | 47 + .../Asn_J2735/include/asn_j2735_2020/Header.h | 50 + .../include/asn_j2735_2020/Heading.h | 47 + .../asn_j2735_2020/HeadingConfidence.h | 60 + .../include/asn_j2735_2020/HeadingSlice.h | 67 + .../include/asn_j2735_2020/Holiday.h | 54 + .../Asn_J2735/include/asn_j2735_2020/Hour.h | 47 + .../asn_j2735_2020/HumanPropelledType.h | 61 + .../include/asn_j2735_2020/IA5String.h | 59 + .../include/asn_j2735_2020/INTEGER.h | 139 + .../include/asn_j2735_2020/ITIScodes.h | 47 + .../include/asn_j2735_2020/ITIScodesAndText.h | 69 + .../include/asn_j2735_2020/ITIStext.h | 47 + .../include/asn_j2735_2020/ITIStextPhrase.h | 47 + .../IncidentResponseEquipment.h | 127 + .../asn_j2735_2020/IntersectionAccessPoint.h | 62 + .../asn_j2735_2020/IntersectionCollision.h | 71 + .../asn_j2735_2020/IntersectionGeometry.h | 69 + .../asn_j2735_2020/IntersectionGeometryList.h | 44 + .../include/asn_j2735_2020/IntersectionID.h | 47 + .../asn_j2735_2020/IntersectionReferenceID.h | 42 + .../IntersectionState-addGrpC.h | 46 + .../asn_j2735_2020/IntersectionState.h | 71 + .../asn_j2735_2020/IntersectionStateList.h | 44 + .../asn_j2735_2020/IntersectionStatusObject.h | 65 + .../include/asn_j2735_2020/IsDolly.h | 46 + .../asn_j2735_2020/Iso3833VehicleType.h | 47 + .../include/asn_j2735_2020/J1939data.h | 64 + .../asn_j2735_2020/LaneAttributes-Barrier.h | 61 + .../asn_j2735_2020/LaneAttributes-Bike.h | 58 + .../asn_j2735_2020/LaneAttributes-Crosswalk.h | 60 + .../asn_j2735_2020/LaneAttributes-Parking.h | 58 + .../asn_j2735_2020/LaneAttributes-Sidewalk.h | 55 + .../asn_j2735_2020/LaneAttributes-Striping.h | 57 + .../LaneAttributes-TrackedVehicle.h | 56 + .../asn_j2735_2020/LaneAttributes-Vehicle.h | 59 + .../include/asn_j2735_2020/LaneAttributes.h | 48 + .../include/asn_j2735_2020/LaneConnectionID.h | 47 + .../LaneDataAttribute-addGrpB.h | 41 + .../asn_j2735_2020/LaneDataAttribute.h | 81 + .../asn_j2735_2020/LaneDataAttributeList.h | 44 + .../include/asn_j2735_2020/LaneDirection.h | 53 + .../Asn_J2735/include/asn_j2735_2020/LaneID.h | 47 + .../include/asn_j2735_2020/LaneList.h | 44 + .../include/asn_j2735_2020/LaneSharing.h | 61 + .../asn_j2735_2020/LaneTypeAttributes.h | 77 + .../include/asn_j2735_2020/LaneWidth.h | 47 + .../include/asn_j2735_2020/Latitude.h | 47 + .../include/asn_j2735_2020/LatitudeDMS.h | 47 + .../include/asn_j2735_2020/LatitudeDMS2.h | 44 + .../include/asn_j2735_2020/LayerID.h | 47 + .../include/asn_j2735_2020/LayerType.h | 63 + .../include/asn_j2735_2020/LightbarInUse.h | 60 + .../include/asn_j2735_2020/Location-quality.h | 58 + .../include/asn_j2735_2020/Location-tech.h | 63 + .../include/asn_j2735_2020/Longitude.h | 47 + .../include/asn_j2735_2020/LongitudeDMS.h | 47 + .../include/asn_j2735_2020/LongitudeDMS2.h | 44 + .../include/asn_j2735_2020/MUTCDCode.h | 62 + .../asn_j2735_2020/ManeuverAssistList.h | 44 + .../include/asn_j2735_2020/MapData-addGrpC.h | 46 + .../include/asn_j2735_2020/MapData.h | 69 + .../include/asn_j2735_2020/MaxTimetoChange.h | 47 + .../asn_j2735_2020/MergeDivergeNodeAngle.h | 47 + .../include/asn_j2735_2020/MessageBLOB.h | 46 + .../include/asn_j2735_2020/MessageFrame.h | 152 + .../include/asn_j2735_2020/MinTimetoChange.h | 47 + .../Asn_J2735/include/asn_j2735_2020/Minute.h | 47 + .../include/asn_j2735_2020/MinuteOfTheYear.h | 47 + .../include/asn_j2735_2020/MinutesAngle.h | 47 + .../include/asn_j2735_2020/MinutesDuration.h | 47 + .../Asn_J2735/include/asn_j2735_2020/Month.h | 47 + .../asn_j2735_2020/MotorizedPropelledType.h | 61 + .../asn_j2735_2020/MovementEvent-addGrpB.h | 52 + .../include/asn_j2735_2020/MovementEvent.h | 59 + .../asn_j2735_2020/MovementEventList.h | 44 + .../include/asn_j2735_2020/MovementList.h | 44 + .../asn_j2735_2020/MovementPhaseState.h | 62 + .../include/asn_j2735_2020/MovementState.h | 61 + .../Asn_J2735/include/asn_j2735_2020/MsgCRC.h | 47 + .../asn_j2735_2020/MultiVehicleResponse.h | 56 + .../include/asn_j2735_2020/NMEA-MsgType.h | 47 + .../include/asn_j2735_2020/NMEA-Payload.h | 47 + .../include/asn_j2735_2020/NMEA-Revision.h | 62 + .../include/asn_j2735_2020/NMEAcorrections.h | 63 + .../include/asn_j2735_2020/NativeEnumerated.h | 76 + .../include/asn_j2735_2020/NativeInteger.h | 71 + .../include/asn_j2735_2020/Node-LL-24B.h | 41 + .../include/asn_j2735_2020/Node-LL-28B.h | 41 + .../include/asn_j2735_2020/Node-LL-32B.h | 41 + .../include/asn_j2735_2020/Node-LL-36B.h | 41 + .../include/asn_j2735_2020/Node-LL-44B.h | 41 + .../include/asn_j2735_2020/Node-LL-48B.h | 41 + .../include/asn_j2735_2020/Node-LLdms-48b.h | 42 + .../include/asn_j2735_2020/Node-LLdms-80b.h | 42 + .../include/asn_j2735_2020/Node-LLmD-64b.h | 42 + .../include/asn_j2735_2020/Node-XY-20b.h | 41 + .../include/asn_j2735_2020/Node-XY-22b.h | 41 + .../include/asn_j2735_2020/Node-XY-24b.h | 41 + .../include/asn_j2735_2020/Node-XY-26b.h | 41 + .../include/asn_j2735_2020/Node-XY-28b.h | 41 + .../include/asn_j2735_2020/Node-XY-32b.h | 41 + .../include/asn_j2735_2020/NodeAttributeLL.h | 67 + .../asn_j2735_2020/NodeAttributeLLList.h | 42 + .../asn_j2735_2020/NodeAttributeSetLL.h | 63 + .../asn_j2735_2020/NodeAttributeSetXY.h | 63 + .../include/asn_j2735_2020/NodeAttributeXY.h | 67 + .../asn_j2735_2020/NodeAttributeXYList.h | 42 + .../Asn_J2735/include/asn_j2735_2020/NodeLL.h | 48 + .../include/asn_j2735_2020/NodeListLL.h | 56 + .../include/asn_j2735_2020/NodeListXY.h | 59 + .../asn_j2735_2020/NodeOffsetPointLL.h | 71 + .../NodeOffsetPointXY-addGrpB.h | 59 + .../asn_j2735_2020/NodeOffsetPointXY.h | 71 + .../include/asn_j2735_2020/NodeSetLL.h | 44 + .../include/asn_j2735_2020/NodeSetXY.h | 44 + .../Asn_J2735/include/asn_j2735_2020/NodeXY.h | 48 + .../NumberOfParticipantsInCluster.h | 59 + .../asn_j2735_2020/OBJECT_IDENTIFIER.h | 184 + .../include/asn_j2735_2020/OCTET_STRING.h | 165 + .../include/asn_j2735_2020/OPEN_TYPE.h | 117 + .../include/asn_j2735_2020/ObjectCount.h | 47 + .../include/asn_j2735_2020/ObjectDescriptor.h | 54 + .../asn_j2735_2020/ObstacleDetection.h | 54 + .../asn_j2735_2020/ObstacleDirection.h | 47 + .../include/asn_j2735_2020/ObstacleDistance.h | 47 + .../include/asn_j2735_2020/Offset-B09.h | 47 + .../include/asn_j2735_2020/Offset-B10.h | 47 + .../include/asn_j2735_2020/Offset-B11.h | 47 + .../include/asn_j2735_2020/Offset-B12.h | 47 + .../include/asn_j2735_2020/Offset-B13.h | 47 + .../include/asn_j2735_2020/Offset-B14.h | 47 + .../include/asn_j2735_2020/Offset-B16.h | 47 + .../include/asn_j2735_2020/OffsetLL-B12.h | 47 + .../include/asn_j2735_2020/OffsetLL-B14.h | 47 + .../include/asn_j2735_2020/OffsetLL-B16.h | 47 + .../include/asn_j2735_2020/OffsetLL-B18.h | 47 + .../include/asn_j2735_2020/OffsetLL-B22.h | 47 + .../include/asn_j2735_2020/OffsetLL-B24.h | 47 + .../include/asn_j2735_2020/OffsetSystem.h | 60 + .../include/asn_j2735_2020/OverlayLaneList.h | 42 + .../include/asn_j2735_2020/PartII-Id.h | 50 + .../include/asn_j2735_2020/PartIIcontent.h | 66 + .../include/asn_j2735_2020/PathHistory.h | 50 + .../include/asn_j2735_2020/PathHistoryPoint.h | 57 + .../asn_j2735_2020/PathHistoryPointList.h | 44 + .../include/asn_j2735_2020/PathPrediction.h | 46 + .../include/asn_j2735_2020/PayloadData.h | 46 + .../asn_j2735_2020/PedestrianBicycleDetect.h | 46 + .../asn_j2735_2020/PersonalAssistive.h | 57 + .../asn_j2735_2020/PersonalClusterRadius.h | 47 + .../PersonalCrossingInProgress.h | 46 + .../asn_j2735_2020/PersonalCrossingRequest.h | 46 + .../asn_j2735_2020/PersonalDeviceUsageState.h | 60 + .../asn_j2735_2020/PersonalDeviceUserType.h | 60 + .../asn_j2735_2020/PersonalSafetyMessage.h | 103 + .../asn_j2735_2020/PivotPointDescription.h | 48 + .../include/asn_j2735_2020/PivotingAllowed.h | 46 + .../asn_j2735_2020/Position3D-addGrpB.h | 48 + .../asn_j2735_2020/Position3D-addGrpC.h | 44 + .../include/asn_j2735_2020/Position3D.h | 59 + .../asn_j2735_2020/PositionConfidence.h | 68 + .../asn_j2735_2020/PositionConfidenceSet.h | 42 + .../asn_j2735_2020/PositionalAccuracy.h | 44 + .../asn_j2735_2020/PreemptPriorityList.h | 44 + .../asn_j2735_2020/PrioritizationResponse.h | 48 + .../PrioritizationResponseList.h | 44 + .../PrioritizationResponseStatus.h | 63 + .../include/asn_j2735_2020/Priority.h | 47 + .../asn_j2735_2020/PriorityRequestType.h | 59 + .../asn_j2735_2020/PrivilegedEventFlags.h | 57 + .../include/asn_j2735_2020/PrivilegedEvents.h | 46 + .../asn_j2735_2020/ProbeDataManagement.h | 100 + .../asn_j2735_2020/ProbeSegmentNumber.h | 47 + .../include/asn_j2735_2020/ProbeVehicleData.h | 70 + .../asn_j2735_2020/PropelledInformation.h | 62 + .../PublicSafetyAndRoadWorkerActivity.h | 57 + .../PublicSafetyDirectingTrafficSubType.h | 58 + .../PublicSafetyEventResponderWorkerType.h | 63 + .../include/asn_j2735_2020/RTCM-Revision.h | 59 + .../include/asn_j2735_2020/RTCMPackage.h | 48 + .../include/asn_j2735_2020/RTCMcorrections.h | 65 + .../include/asn_j2735_2020/RTCMheader.h | 42 + .../include/asn_j2735_2020/RTCMmessage.h | 47 + .../include/asn_j2735_2020/RTCMmessageList.h | 42 + .../include/asn_j2735_2020/Radius-B12.h | 47 + .../asn_j2735_2020/RadiusOfCurvature.h | 47 + .../include/asn_j2735_2020/RainSensor.h | 60 + .../include/asn_j2735_2020/RegionId.h | 51 + .../include/asn_j2735_2020/RegionList.h | 44 + .../include/asn_j2735_2020/RegionOffsets.h | 42 + .../include/asn_j2735_2020/RegionPointSet.h | 50 + .../asn_j2735_2020/RegionalExtension.h | 1337 ++ .../asn_j2735_2020/RegulatorySpeedLimit.h | 42 + .../include/asn_j2735_2020/RequestID.h | 47 + .../asn_j2735_2020/RequestImportanceLevel.h | 68 + .../include/asn_j2735_2020/RequestSubRole.h | 68 + .../include/asn_j2735_2020/RequestedItem.h | 72 + .../asn_j2735_2020/RequestedItemList.h | 42 + .../asn_j2735_2020/RequestorDescription.h | 68 + .../asn_j2735_2020/RequestorPositionVector.h | 50 + .../include/asn_j2735_2020/RequestorType.h | 56 + .../asn_j2735_2020/ResponderGroupAffected.h | 69 + .../include/asn_j2735_2020/ResponseType.h | 62 + .../asn_j2735_2020/RestrictionAppliesTo.h | 69 + .../RestrictionClassAssignment.h | 42 + .../asn_j2735_2020/RestrictionClassID.h | 47 + .../asn_j2735_2020/RestrictionClassList.h | 44 + .../RestrictionUserType-addGrpC.h | 44 + .../asn_j2735_2020/RestrictionUserType.h | 68 + .../asn_j2735_2020/RestrictionUserTypeList.h | 44 + .../include/asn_j2735_2020/RoadLaneSetList.h | 44 + .../include/asn_j2735_2020/RoadRegulatorID.h | 47 + .../include/asn_j2735_2020/RoadSegment.h | 67 + .../include/asn_j2735_2020/RoadSegmentID.h | 47 + .../include/asn_j2735_2020/RoadSegmentList.h | 44 + .../asn_j2735_2020/RoadSegmentReferenceID.h | 42 + .../include/asn_j2735_2020/RoadSideAlert.h | 75 + .../include/asn_j2735_2020/RoadSignID.h | 46 + .../asn_j2735_2020/RoadwayCrownAngle.h | 47 + .../Asn_J2735/include/asn_j2735_2020/SPAT.h | 59 + .../include/asn_j2735_2020/SPAT_TimeMark.h | 47 + .../include/asn_j2735_2020/SSPindex.h | 47 + .../Asn_J2735/include/asn_j2735_2020/Sample.h | 41 + .../include/asn_j2735_2020/Scale-B12.h | 47 + .../Asn_J2735/include/asn_j2735_2020/Second.h | 47 + .../include/asn_j2735_2020/SecondOfTime.h | 47 + .../include/asn_j2735_2020/SecondsAngle.h | 47 + .../asn_j2735_2020/SegmentAttributeLL.h | 93 + .../asn_j2735_2020/SegmentAttributeLLList.h | 42 + .../asn_j2735_2020/SegmentAttributeXY.h | 93 + .../asn_j2735_2020/SegmentAttributeXYList.h | 42 + .../asn_j2735_2020/SemiMajorAxisAccuracy.h | 47 + .../asn_j2735_2020/SemiMajorAxisOrientation.h | 47 + .../asn_j2735_2020/SemiMinorAxisAccuracy.h | 47 + .../include/asn_j2735_2020/ShapePointSet.h | 52 + .../include/asn_j2735_2020/SignPrority.h | 47 + .../asn_j2735_2020/SignalControlZone.h | 44 + .../include/asn_j2735_2020/SignalGroupID.h | 47 + .../asn_j2735_2020/SignalHeadLocation.h | 46 + .../asn_j2735_2020/SignalHeadLocationList.h | 44 + .../include/asn_j2735_2020/SignalReqScheme.h | 46 + .../include/asn_j2735_2020/SignalRequest.h | 63 + .../asn_j2735_2020/SignalRequestList.h | 44 + .../asn_j2735_2020/SignalRequestMessage.h | 63 + .../asn_j2735_2020/SignalRequestPackage.h | 60 + .../asn_j2735_2020/SignalRequesterInfo.h | 54 + .../include/asn_j2735_2020/SignalStatus.h | 59 + .../include/asn_j2735_2020/SignalStatusList.h | 44 + .../asn_j2735_2020/SignalStatusMessage.h | 61 + .../asn_j2735_2020/SignalStatusPackage.h | 66 + .../asn_j2735_2020/SignalStatusPackageList.h | 44 + .../include/asn_j2735_2020/SirenInUse.h | 56 + .../include/asn_j2735_2020/Snapshot.h | 50 + .../include/asn_j2735_2020/SnapshotDistance.h | 44 + .../include/asn_j2735_2020/SnapshotTime.h | 44 + .../asn_j2735_2020/SpecialVehicleExtensions.h | 50 + .../Asn_J2735/include/asn_j2735_2020/Speed.h | 47 + .../include/asn_j2735_2020/SpeedAdvice.h | 47 + .../include/asn_j2735_2020/SpeedConfidence.h | 60 + .../include/asn_j2735_2020/SpeedLimit.h | 69 + .../include/asn_j2735_2020/SpeedLimitList.h | 44 + .../include/asn_j2735_2020/SpeedLimitType.h | 68 + .../include/asn_j2735_2020/SpeedProfile.h | 44 + .../asn_j2735_2020/SpeedProfileMeasurement.h | 47 + .../SpeedProfileMeasurementList.h | 42 + .../SpeedandHeadingandThrottleConfidence.h | 44 + .../asn_j2735_2020/StabilityControlStatus.h | 56 + .../include/asn_j2735_2020/StationID.h | 48 + .../asn_j2735_2020/SteeringAxleLubePressure.h | 47 + .../asn_j2735_2020/SteeringAxleTemperature.h | 47 + .../asn_j2735_2020/SteeringWheelAngle.h | 47 + .../SteeringWheelAngleConfidence.h | 56 + .../SteeringWheelAngleRateOfChange.h | 47 + .../include/asn_j2735_2020/SummerTime.h | 54 + .../include/asn_j2735_2020/SunSensor.h | 47 + .../SupplementalVehicleExtensions.h | 71 + .../include/asn_j2735_2020/TemporaryID.h | 47 + .../include/asn_j2735_2020/TenthSecond.h | 47 + .../include/asn_j2735_2020/TermDistance.h | 47 + .../include/asn_j2735_2020/TermTime.h | 47 + .../include/asn_j2735_2020/TestMessage00.h | 48 + .../include/asn_j2735_2020/TestMessage01.h | 48 + .../include/asn_j2735_2020/TestMessage02.h | 48 + .../include/asn_j2735_2020/TestMessage03.h | 48 + .../include/asn_j2735_2020/TestMessage04.h | 48 + .../include/asn_j2735_2020/TestMessage05.h | 48 + .../include/asn_j2735_2020/TestMessage06.h | 48 + .../include/asn_j2735_2020/TestMessage07.h | 48 + .../include/asn_j2735_2020/TestMessage08.h | 48 + .../include/asn_j2735_2020/TestMessage09.h | 48 + .../include/asn_j2735_2020/TestMessage10.h | 48 + .../include/asn_j2735_2020/TestMessage11.h | 48 + .../include/asn_j2735_2020/TestMessage12.h | 48 + .../include/asn_j2735_2020/TestMessage13.h | 48 + .../include/asn_j2735_2020/TestMessage14.h | 48 + .../include/asn_j2735_2020/TestMessage15.h | 48 + .../asn_j2735_2020/ThrottleConfidence.h | 56 + .../include/asn_j2735_2020/ThrottlePosition.h | 47 + .../asn_j2735_2020/TimeChangeDetails.h | 46 + .../include/asn_j2735_2020/TimeConfidence.h | 92 + .../asn_j2735_2020/TimeIntervalConfidence.h | 47 + .../include/asn_j2735_2020/TimeOffset.h | 47 + .../include/asn_j2735_2020/TimeRemaining.h | 47 + .../include/asn_j2735_2020/TireData.h | 56 + .../include/asn_j2735_2020/TireDataList.h | 44 + .../include/asn_j2735_2020/TireLeakageRate.h | 47 + .../include/asn_j2735_2020/TireLocation.h | 47 + .../include/asn_j2735_2020/TirePressure.h | 47 + .../TirePressureThresholdDetection.h | 60 + .../include/asn_j2735_2020/TireTemp.h | 47 + .../asn_j2735_2020/TractionControlStatus.h | 56 + .../include/asn_j2735_2020/TrailerData.h | 48 + .../asn_j2735_2020/TrailerHistoryPoint.h | 52 + .../asn_j2735_2020/TrailerHistoryPointList.h | 44 + .../include/asn_j2735_2020/TrailerMass.h | 47 + .../asn_j2735_2020/TrailerUnitDescription.h | 69 + .../TrailerUnitDescriptionList.h | 44 + .../include/asn_j2735_2020/TrailerWeight.h | 47 + .../include/asn_j2735_2020/TransitStatus.h | 56 + .../asn_j2735_2020/TransitVehicleOccupancy.h | 60 + .../asn_j2735_2020/TransitVehicleStatus.h | 57 + .../asn_j2735_2020/TransmissionAndSpeed.h | 42 + .../asn_j2735_2020/TransmissionState.h | 60 + .../asn_j2735_2020/TravelerDataFrame.h | 116 + .../asn_j2735_2020/TravelerDataFrameList.h | 44 + .../include/asn_j2735_2020/TravelerInfoType.h | 59 + .../asn_j2735_2020/TravelerInformation.h | 63 + .../include/asn_j2735_2020/URL-Base.h | 47 + .../include/asn_j2735_2020/URL-Link.h | 46 + .../include/asn_j2735_2020/URL-Short.h | 47 + .../include/asn_j2735_2020/UniqueMSGID.h | 47 + .../asn_j2735_2020/UserSizeAndBehaviour.h | 56 + .../include/asn_j2735_2020/VINstring.h | 47 + .../include/asn_j2735_2020/ValidRegion.h | 65 + .../asn_j2735_2020/VehicleClassification.h | 69 + .../include/asn_j2735_2020/VehicleData.h | 52 + .../asn_j2735_2020/VehicleEventFlags.h | 64 + .../asn_j2735_2020/VehicleGroupAffected.h | 90 + .../include/asn_j2735_2020/VehicleHeight.h | 47 + .../include/asn_j2735_2020/VehicleID.h | 53 + .../include/asn_j2735_2020/VehicleIdent.h | 77 + .../include/asn_j2735_2020/VehicleLength.h | 47 + .../include/asn_j2735_2020/VehicleMass.h | 47 + .../asn_j2735_2020/VehicleSafetyExtensions.h | 52 + .../include/asn_j2735_2020/VehicleSize.h | 42 + .../include/asn_j2735_2020/VehicleStatus.h | 147 + .../VehicleStatusDeviceTypeTag.h | 84 + .../asn_j2735_2020/VehicleStatusRequest.h | 50 + .../asn_j2735_2020/VehicleStatusRequestList.h | 44 + .../asn_j2735_2020/VehicleToLanePosition.h | 46 + .../VehicleToLanePositionList.h | 44 + .../include/asn_j2735_2020/VehicleType.h | 71 + .../include/asn_j2735_2020/VehicleWidth.h | 47 + .../include/asn_j2735_2020/Velocity.h | 47 + .../include/asn_j2735_2020/VertOffset-B07.h | 47 + .../include/asn_j2735_2020/VertOffset-B08.h | 47 + .../include/asn_j2735_2020/VertOffset-B09.h | 47 + .../include/asn_j2735_2020/VertOffset-B10.h | 47 + .../include/asn_j2735_2020/VertOffset-B11.h | 47 + .../include/asn_j2735_2020/VertOffset-B12.h | 47 + .../asn_j2735_2020/VerticalAcceleration.h | 47 + .../VerticalAccelerationThreshold.h | 56 + .../include/asn_j2735_2020/VerticalOffset.h | 68 + .../include/asn_j2735_2020/WaitOnStopline.h | 46 + .../include/asn_j2735_2020/WeatherProbe.h | 50 + .../include/asn_j2735_2020/WeatherReport.h | 54 + .../asn_j2735_2020/WheelEndElectFault.h | 56 + .../asn_j2735_2020/WheelSensorStatus.h | 56 + .../include/asn_j2735_2020/WiperRate.h | 47 + .../include/asn_j2735_2020/WiperSet.h | 44 + .../include/asn_j2735_2020/WiperStatus.h | 62 + .../include/asn_j2735_2020/WorkZone.h | 69 + .../include/asn_j2735_2020/YawRate.h | 47 + .../asn_j2735_2020/YawRateConfidence.h | 60 + .../Asn_J2735/include/asn_j2735_2020/Year.h | 47 + .../include/asn_j2735_2020/ZoneLength.h | 47 + .../Asn_J2735/include/asn_j2735_2020/Zoom.h | 47 + .../include/asn_j2735_2020/aper_decoder.h | 47 + .../include/asn_j2735_2020/aper_encoder.h | 63 + .../include/asn_j2735_2020/aper_opentype.h | 30 + .../include/asn_j2735_2020/aper_support.h | 63 + .../include/asn_j2735_2020/asn_SEQUENCE_OF.h | 52 + .../include/asn_j2735_2020/asn_SET_OF.h | 72 + .../include/asn_j2735_2020/asn_application.h | 173 + .../include/asn_j2735_2020/asn_bit_data.h | 83 + .../include/asn_j2735_2020/asn_codecs.h | 108 + .../include/asn_j2735_2020/asn_codecs_prim.h | 56 + .../include/asn_j2735_2020/asn_config.h | 2 + .../include/asn_j2735_2020/asn_constant.h | 308 + .../include/asn_j2735_2020/asn_internal.h | 187 + .../include/asn_j2735_2020/asn_ioc.h | 51 + .../include/asn_j2735_2020/asn_random_fill.h | 51 + .../include/asn_j2735_2020/asn_system.h | 169 + .../include/asn_j2735_2020/ber_decoder.h | 66 + .../include/asn_j2735_2020/ber_tlv_length.h | 50 + .../include/asn_j2735_2020/ber_tlv_tag.h | 60 + .../include/asn_j2735_2020/constr_CHOICE.h | 119 + .../include/asn_j2735_2020/constr_SEQUENCE.h | 95 + .../asn_j2735_2020/constr_SEQUENCE_OF.h | 67 + .../include/asn_j2735_2020/constr_SET_OF.h | 102 + .../include/asn_j2735_2020/constr_TYPE.h | 295 + .../include/asn_j2735_2020/constraints.h | 63 + .../include/asn_j2735_2020/der_encoder.h | 68 + .../include/asn_j2735_2020/jer_encoder.h | 86 + .../include/asn_j2735_2020/oer_decoder.h | 72 + .../include/asn_j2735_2020/oer_encoder.h | 70 + .../include/asn_j2735_2020/oer_support.h | 47 + .../include/asn_j2735_2020/per_decoder.h | 30 + .../include/asn_j2735_2020/per_encoder.h | 38 + .../include/asn_j2735_2020/per_opentype.h | 24 + .../include/asn_j2735_2020/per_support.h | 54 + .../include/asn_j2735_2020/uper_decoder.h | 47 + .../include/asn_j2735_2020/uper_encoder.h | 62 + .../include/asn_j2735_2020/uper_opentype.h | 34 + .../include/asn_j2735_2020/uper_support.h | 77 + .../include/asn_j2735_2020/xer_decoder.h | 106 + .../include/asn_j2735_2020/xer_encoder.h | 83 + .../include/asn_j2735_2020/xer_support.h | 55 + src/tmx/Asn_J2735/src/2020/ANY.c | 80 + src/tmx/Asn_J2735/src/2020/ANY_aper.c | 190 + src/tmx/Asn_J2735/src/2020/ANY_ber.c | 116 + src/tmx/Asn_J2735/src/2020/ANY_jer.c | 17 + src/tmx/Asn_J2735/src/2020/ANY_uper.c | 108 + src/tmx/Asn_J2735/src/2020/ANY_xer.c | 22 + .../src/2020/AccelSteerYawRateConfidence.c | 102 + src/tmx/Asn_J2735/src/2020/Acceleration.c | 76 + .../src/2020/AccelerationConfidence.c | 80 + .../Asn_J2735/src/2020/AccelerationSet4Way.c | 120 + src/tmx/Asn_J2735/src/2020/AddGrpB_Angle.c | 76 + .../Asn_J2735/src/2020/AddGrpB_Elevation.c | 76 + src/tmx/Asn_J2735/src/2020/AddGrpB_MsgCount.c | 76 + src/tmx/Asn_J2735/src/2020/AddGrpB_TimeMark.c | 228 + src/tmx/Asn_J2735/src/2020/AdvisorySpeed.c | 262 + .../Asn_J2735/src/2020/AdvisorySpeedList.c | 73 + .../Asn_J2735/src/2020/AdvisorySpeedType.c | 74 + src/tmx/Asn_J2735/src/2020/AllowedManeuvers.c | 82 + src/tmx/Asn_J2735/src/2020/Altitude.c | 84 + .../Asn_J2735/src/2020/AltitudeConfidence.c | 96 + src/tmx/Asn_J2735/src/2020/AltitudeValue.c | 76 + .../Asn_J2735/src/2020/AmbientAirPressure.c | 76 + .../src/2020/AmbientAirTemperature.c | 76 + .../Asn_J2735/src/2020/AnimalPropelledType.c | 74 + src/tmx/Asn_J2735/src/2020/AnimalType.c | 74 + src/tmx/Asn_J2735/src/2020/AntennaOffsetSet.c | 102 + .../Asn_J2735/src/2020/AntiLockBrakeStatus.c | 72 + src/tmx/Asn_J2735/src/2020/ApproachID.c | 76 + src/tmx/Asn_J2735/src/2020/ApproachOrLane.c | 93 + src/tmx/Asn_J2735/src/2020/Attachment.c | 80 + src/tmx/Asn_J2735/src/2020/AttachmentRadius.c | 76 + .../Asn_J2735/src/2020/AuxiliaryBrakeStatus.c | 72 + src/tmx/Asn_J2735/src/2020/AxleLocation.c | 76 + src/tmx/Asn_J2735/src/2020/AxleWeight.c | 76 + src/tmx/Asn_J2735/src/2020/AxleWeightList.c | 73 + src/tmx/Asn_J2735/src/2020/AxleWeightSet.c | 86 + src/tmx/Asn_J2735/src/2020/BIT_STRING.c | 213 + src/tmx/Asn_J2735/src/2020/BIT_STRING_jer.c | 60 + src/tmx/Asn_J2735/src/2020/BIT_STRING_oer.c | 168 + src/tmx/Asn_J2735/src/2020/BIT_STRING_print.c | 69 + src/tmx/Asn_J2735/src/2020/BIT_STRING_rfill.c | 124 + src/tmx/Asn_J2735/src/2020/BIT_STRING_uper.c | 244 + src/tmx/Asn_J2735/src/2020/BIT_STRING_xer.c | 70 + src/tmx/Asn_J2735/src/2020/BOOLEAN.c | 128 + src/tmx/Asn_J2735/src/2020/BOOLEAN_aper.c | 61 + src/tmx/Asn_J2735/src/2020/BOOLEAN_ber.c | 104 + src/tmx/Asn_J2735/src/2020/BOOLEAN_jer.c | 32 + src/tmx/Asn_J2735/src/2020/BOOLEAN_oer.c | 54 + src/tmx/Asn_J2735/src/2020/BOOLEAN_print.c | 33 + src/tmx/Asn_J2735/src/2020/BOOLEAN_rfill.c | 56 + src/tmx/Asn_J2735/src/2020/BOOLEAN_uper.c | 58 + src/tmx/Asn_J2735/src/2020/BOOLEAN_xer.c | 74 + src/tmx/Asn_J2735/src/2020/BSMcoreData.c | 300 + .../Asn_J2735/src/2020/BasicSafetyMessage.c | 312 + .../Asn_J2735/src/2020/BasicVehicleClass.c | 76 + src/tmx/Asn_J2735/src/2020/BasicVehicleRole.c | 112 + .../Asn_J2735/src/2020/BrakeAppliedPressure.c | 96 + .../Asn_J2735/src/2020/BrakeAppliedStatus.c | 82 + .../Asn_J2735/src/2020/BrakeBoostApplied.c | 70 + .../Asn_J2735/src/2020/BrakeSystemStatus.c | 156 + src/tmx/Asn_J2735/src/2020/BumperHeight.c | 76 + src/tmx/Asn_J2735/src/2020/BumperHeights.c | 84 + src/tmx/Asn_J2735/src/2020/CargoWeight.c | 76 + src/tmx/Asn_J2735/src/2020/Circle.c | 102 + src/tmx/Asn_J2735/src/2020/CoarseHeading.c | 76 + src/tmx/Asn_J2735/src/2020/CodeWord.c | 77 + .../src/2020/CoefficientOfFriction.c | 76 + .../Asn_J2735/src/2020/CommonSafetyRequest.c | 244 + src/tmx/Asn_J2735/src/2020/Common_Angle.c | 76 + src/tmx/Asn_J2735/src/2020/Common_Elevation.c | 76 + src/tmx/Asn_J2735/src/2020/Common_MsgCount.c | 76 + src/tmx/Asn_J2735/src/2020/ComputedLane.c | 450 + src/tmx/Asn_J2735/src/2020/Confidence.c | 76 + src/tmx/Asn_J2735/src/2020/ConfidenceSet.c | 179 + src/tmx/Asn_J2735/src/2020/ConnectingLane.c | 86 + src/tmx/Asn_J2735/src/2020/Connection.c | 141 + .../2020/ConnectionManeuverAssist-addGrpC.c | 87 + .../src/2020/ConnectionManeuverAssist.c | 262 + src/tmx/Asn_J2735/src/2020/ConnectsToList.c | 73 + src/tmx/Asn_J2735/src/2020/Count.c | 76 + src/tmx/Asn_J2735/src/2020/DDate.c | 102 + src/tmx/Asn_J2735/src/2020/DDateTime.c | 176 + src/tmx/Asn_J2735/src/2020/DDay.c | 76 + src/tmx/Asn_J2735/src/2020/DFullTime.c | 138 + src/tmx/Asn_J2735/src/2020/DHour.c | 76 + src/tmx/Asn_J2735/src/2020/DMinute.c | 76 + src/tmx/Asn_J2735/src/2020/DMonth.c | 76 + src/tmx/Asn_J2735/src/2020/DMonthDay.c | 84 + src/tmx/Asn_J2735/src/2020/DOffset.c | 76 + src/tmx/Asn_J2735/src/2020/DSRCmsgID.c | 76 + src/tmx/Asn_J2735/src/2020/DSecond.c | 76 + src/tmx/Asn_J2735/src/2020/DTime.c | 122 + src/tmx/Asn_J2735/src/2020/DYear.c | 76 + src/tmx/Asn_J2735/src/2020/DYearMonth.c | 84 + src/tmx/Asn_J2735/src/2020/DataParameters.c | 330 + src/tmx/Asn_J2735/src/2020/Day.c | 76 + src/tmx/Asn_J2735/src/2020/DayOfWeek.c | 80 + src/tmx/Asn_J2735/src/2020/DegreesLat.c | 76 + src/tmx/Asn_J2735/src/2020/DegreesLong.c | 76 + src/tmx/Asn_J2735/src/2020/DeltaAngle.c | 76 + src/tmx/Asn_J2735/src/2020/DeltaTime.c | 76 + src/tmx/Asn_J2735/src/2020/DescriptiveName.c | 91 + src/tmx/Asn_J2735/src/2020/DirectionOfUse.c | 72 + src/tmx/Asn_J2735/src/2020/DisabledVehicle.c | 123 + src/tmx/Asn_J2735/src/2020/DistanceUnits.c | 80 + .../src/2020/DriveAxleLiftAirPressure.c | 76 + .../Asn_J2735/src/2020/DriveAxleLocation.c | 76 + .../src/2020/DriveAxleLubePressure.c | 76 + .../Asn_J2735/src/2020/DriveAxleTemperature.c | 76 + .../Asn_J2735/src/2020/DrivenLineOffsetLg.c | 76 + .../Asn_J2735/src/2020/DrivenLineOffsetSm.c | 76 + .../Asn_J2735/src/2020/DrivingWheelAngle.c | 76 + src/tmx/Asn_J2735/src/2020/Duration.c | 76 + src/tmx/Asn_J2735/src/2020/EXTERNAL.c | 228 + .../Asn_J2735/src/2020/ElevationConfidence.c | 96 + src/tmx/Asn_J2735/src/2020/EmergencyDetails.c | 159 + .../src/2020/EmergencyVehicleAlert.c | 353 + src/tmx/Asn_J2735/src/2020/EmissionType.c | 76 + src/tmx/Asn_J2735/src/2020/EnabledLaneList.c | 72 + .../Asn_J2735/src/2020/EssMobileFriction.c | 76 + src/tmx/Asn_J2735/src/2020/EssPrecipRate.c | 76 + .../Asn_J2735/src/2020/EssPrecipSituation.c | 94 + src/tmx/Asn_J2735/src/2020/EssPrecipYesNo.c | 70 + .../Asn_J2735/src/2020/EssSolarRadiation.c | 76 + src/tmx/Asn_J2735/src/2020/EventDescription.c | 365 + src/tmx/Asn_J2735/src/2020/ExitService.c | 215 + src/tmx/Asn_J2735/src/2020/Extent.c | 96 + src/tmx/Asn_J2735/src/2020/ExteriorLights.c | 82 + src/tmx/Asn_J2735/src/2020/FuelType.c | 76 + .../Asn_J2735/src/2020/FullPositionVector.c | 235 + src/tmx/Asn_J2735/src/2020/FurtherInfoID.c | 77 + src/tmx/Asn_J2735/src/2020/GNSSstatus.c | 82 + src/tmx/Asn_J2735/src/2020/GenericLane.c | 336 + src/tmx/Asn_J2735/src/2020/GenericLocations.c | 258 + src/tmx/Asn_J2735/src/2020/GenericSignage.c | 215 + src/tmx/Asn_J2735/src/2020/GeographicalPath.c | 421 + .../Asn_J2735/src/2020/GeometricProjection.c | 244 + src/tmx/Asn_J2735/src/2020/GraphicString.c | 91 + src/tmx/Asn_J2735/src/2020/GrossDistance.c | 76 + src/tmx/Asn_J2735/src/2020/GrossSpeed.c | 76 + src/tmx/Asn_J2735/src/2020/Header.c | 122 + src/tmx/Asn_J2735/src/2020/Heading.c | 76 + .../Asn_J2735/src/2020/HeadingConfidence.c | 80 + src/tmx/Asn_J2735/src/2020/HeadingSlice.c | 82 + src/tmx/Asn_J2735/src/2020/Holiday.c | 68 + src/tmx/Asn_J2735/src/2020/Hour.c | 76 + .../Asn_J2735/src/2020/HumanPropelledType.c | 78 + src/tmx/Asn_J2735/src/2020/IA5String.c | 133 + src/tmx/Asn_J2735/src/2020/INTEGER.c | 738 + src/tmx/Asn_J2735/src/2020/INTEGER_aper.c | 308 + src/tmx/Asn_J2735/src/2020/INTEGER_ber.c | 72 + src/tmx/Asn_J2735/src/2020/INTEGER_jer.c | 26 + src/tmx/Asn_J2735/src/2020/INTEGER_oer.c | 174 + src/tmx/Asn_J2735/src/2020/INTEGER_print.c | 26 + src/tmx/Asn_J2735/src/2020/INTEGER_rfill.c | 92 + src/tmx/Asn_J2735/src/2020/INTEGER_uper.c | 236 + src/tmx/Asn_J2735/src/2020/INTEGER_xer.c | 351 + src/tmx/Asn_J2735/src/2020/ITIScodes.c | 76 + src/tmx/Asn_J2735/src/2020/ITIScodesAndText.c | 215 + src/tmx/Asn_J2735/src/2020/ITIStext.c | 91 + src/tmx/Asn_J2735/src/2020/ITIStextPhrase.c | 91 + .../src/2020/IncidentResponseEquipment.c | 210 + .../src/2020/IntersectionAccessPoint.c | 111 + .../src/2020/IntersectionCollision.c | 337 + .../Asn_J2735/src/2020/IntersectionGeometry.c | 318 + .../src/2020/IntersectionGeometryList.c | 73 + src/tmx/Asn_J2735/src/2020/IntersectionID.c | 76 + .../src/2020/IntersectionReferenceID.c | 86 + .../src/2020/IntersectionState-addGrpC.c | 69 + .../Asn_J2735/src/2020/IntersectionState.c | 336 + .../src/2020/IntersectionStateList.c | 73 + .../src/2020/IntersectionStatusObject.c | 82 + src/tmx/Asn_J2735/src/2020/IsDolly.c | 39 + .../Asn_J2735/src/2020/Iso3833VehicleType.c | 76 + src/tmx/Asn_J2735/src/2020/J1939data.c | 232 + .../src/2020/LaneAttributes-Barrier.c | 82 + .../Asn_J2735/src/2020/LaneAttributes-Bike.c | 82 + .../src/2020/LaneAttributes-Crosswalk.c | 82 + .../src/2020/LaneAttributes-Parking.c | 82 + .../src/2020/LaneAttributes-Sidewalk.c | 82 + .../src/2020/LaneAttributes-Striping.c | 82 + .../src/2020/LaneAttributes-TrackedVehicle.c | 82 + .../src/2020/LaneAttributes-Vehicle.c | 82 + src/tmx/Asn_J2735/src/2020/LaneAttributes.c | 123 + src/tmx/Asn_J2735/src/2020/LaneConnectionID.c | 76 + .../src/2020/LaneDataAttribute-addGrpB.c | 43 + .../Asn_J2735/src/2020/LaneDataAttribute.c | 287 + .../src/2020/LaneDataAttributeList.c | 73 + src/tmx/Asn_J2735/src/2020/LaneDirection.c | 82 + src/tmx/Asn_J2735/src/2020/LaneID.c | 76 + src/tmx/Asn_J2735/src/2020/LaneList.c | 73 + src/tmx/Asn_J2735/src/2020/LaneSharing.c | 82 + .../Asn_J2735/src/2020/LaneTypeAttributes.c | 201 + src/tmx/Asn_J2735/src/2020/LaneWidth.c | 76 + src/tmx/Asn_J2735/src/2020/Latitude.c | 76 + src/tmx/Asn_J2735/src/2020/LatitudeDMS.c | 76 + src/tmx/Asn_J2735/src/2020/LatitudeDMS2.c | 102 + src/tmx/Asn_J2735/src/2020/LayerID.c | 76 + src/tmx/Asn_J2735/src/2020/LayerType.c | 82 + src/tmx/Asn_J2735/src/2020/LightbarInUse.c | 80 + src/tmx/Asn_J2735/src/2020/Location-quality.c | 80 + src/tmx/Asn_J2735/src/2020/Location-tech.c | 86 + src/tmx/Asn_J2735/src/2020/Longitude.c | 76 + src/tmx/Asn_J2735/src/2020/LongitudeDMS.c | 76 + src/tmx/Asn_J2735/src/2020/LongitudeDMS2.c | 102 + src/tmx/Asn_J2735/src/2020/MUTCDCode.c | 80 + .../Asn_J2735/src/2020/ManeuverAssistList.c | 73 + src/tmx/Asn_J2735/src/2020/MapData-addGrpC.c | 69 + src/tmx/Asn_J2735/src/2020/MapData.c | 320 + src/tmx/Asn_J2735/src/2020/MaxTimetoChange.c | 76 + .../src/2020/MergeDivergeNodeAngle.c | 76 + src/tmx/Asn_J2735/src/2020/MessageBLOB.c | 77 + src/tmx/Asn_J2735/src/2020/MessageFrame.c | 872 ++ src/tmx/Asn_J2735/src/2020/MinTimetoChange.c | 76 + src/tmx/Asn_J2735/src/2020/Minute.c | 76 + src/tmx/Asn_J2735/src/2020/MinuteOfTheYear.c | 76 + src/tmx/Asn_J2735/src/2020/MinutesAngle.c | 76 + src/tmx/Asn_J2735/src/2020/MinutesDuration.c | 76 + src/tmx/Asn_J2735/src/2020/Month.c | 76 + .../src/2020/MotorizedPropelledType.c | 78 + .../src/2020/MovementEvent-addGrpB.c | 158 + src/tmx/Asn_J2735/src/2020/MovementEvent.c | 228 + .../Asn_J2735/src/2020/MovementEventList.c | 73 + src/tmx/Asn_J2735/src/2020/MovementList.c | 73 + .../Asn_J2735/src/2020/MovementPhaseState.c | 84 + src/tmx/Asn_J2735/src/2020/MovementState.c | 245 + src/tmx/Asn_J2735/src/2020/MsgCRC.c | 77 + .../Asn_J2735/src/2020/MultiVehicleResponse.c | 72 + src/tmx/Asn_J2735/src/2020/NMEA-MsgType.c | 76 + src/tmx/Asn_J2735/src/2020/NMEA-Payload.c | 77 + src/tmx/Asn_J2735/src/2020/NMEA-Revision.c | 80 + src/tmx/Asn_J2735/src/2020/NMEAcorrections.c | 262 + src/tmx/Asn_J2735/src/2020/NativeEnumerated.c | 108 + .../src/2020/NativeEnumerated_aper.c | 157 + .../Asn_J2735/src/2020/NativeEnumerated_jer.c | 36 + .../Asn_J2735/src/2020/NativeEnumerated_oer.c | 144 + .../src/2020/NativeEnumerated_uper.c | 135 + .../Asn_J2735/src/2020/NativeEnumerated_xer.c | 36 + src/tmx/Asn_J2735/src/2020/NativeInteger.c | 152 + .../Asn_J2735/src/2020/NativeInteger_aper.c | 69 + .../Asn_J2735/src/2020/NativeInteger_ber.c | 130 + .../Asn_J2735/src/2020/NativeInteger_jer.c | 32 + .../Asn_J2735/src/2020/NativeInteger_oer.c | 94 + .../Asn_J2735/src/2020/NativeInteger_print.c | 43 + .../Asn_J2735/src/2020/NativeInteger_rfill.c | 83 + .../Asn_J2735/src/2020/NativeInteger_uper.c | 70 + .../Asn_J2735/src/2020/NativeInteger_xer.c | 78 + src/tmx/Asn_J2735/src/2020/Node-LL-24B.c | 84 + src/tmx/Asn_J2735/src/2020/Node-LL-28B.c | 84 + src/tmx/Asn_J2735/src/2020/Node-LL-32B.c | 84 + src/tmx/Asn_J2735/src/2020/Node-LL-36B.c | 84 + src/tmx/Asn_J2735/src/2020/Node-LL-44B.c | 84 + src/tmx/Asn_J2735/src/2020/Node-LL-48B.c | 84 + src/tmx/Asn_J2735/src/2020/Node-LLdms-48b.c | 84 + src/tmx/Asn_J2735/src/2020/Node-LLdms-80b.c | 84 + src/tmx/Asn_J2735/src/2020/Node-LLmD-64b.c | 84 + src/tmx/Asn_J2735/src/2020/Node-XY-20b.c | 84 + src/tmx/Asn_J2735/src/2020/Node-XY-22b.c | 84 + src/tmx/Asn_J2735/src/2020/Node-XY-24b.c | 84 + src/tmx/Asn_J2735/src/2020/Node-XY-26b.c | 84 + src/tmx/Asn_J2735/src/2020/Node-XY-28b.c | 84 + src/tmx/Asn_J2735/src/2020/Node-XY-32b.c | 84 + src/tmx/Asn_J2735/src/2020/NodeAttributeLL.c | 90 + .../Asn_J2735/src/2020/NodeAttributeLLList.c | 72 + .../Asn_J2735/src/2020/NodeAttributeSetLL.c | 283 + .../Asn_J2735/src/2020/NodeAttributeSetXY.c | 283 + src/tmx/Asn_J2735/src/2020/NodeAttributeXY.c | 90 + .../Asn_J2735/src/2020/NodeAttributeXYList.c | 72 + src/tmx/Asn_J2735/src/2020/NodeLL.c | 87 + src/tmx/Asn_J2735/src/2020/NodeListLL.c | 75 + src/tmx/Asn_J2735/src/2020/NodeListXY.c | 93 + .../Asn_J2735/src/2020/NodeOffsetPointLL.c | 201 + .../src/2020/NodeOffsetPointXY-addGrpB.c | 93 + .../Asn_J2735/src/2020/NodeOffsetPointXY.c | 201 + src/tmx/Asn_J2735/src/2020/NodeSetLL.c | 73 + src/tmx/Asn_J2735/src/2020/NodeSetXY.c | 73 + src/tmx/Asn_J2735/src/2020/NodeXY.c | 87 + .../src/2020/NumberOfParticipantsInCluster.c | 74 + .../Asn_J2735/src/2020/OBJECT_IDENTIFIER.c | 532 + .../src/2020/OBJECT_IDENTIFIER_jer.c | 28 + .../src/2020/OBJECT_IDENTIFIER_print.c | 30 + .../src/2020/OBJECT_IDENTIFIER_rfill.c | 73 + .../src/2020/OBJECT_IDENTIFIER_xer.c | 80 + src/tmx/Asn_J2735/src/2020/OCTET_STRING.c | 383 + .../Asn_J2735/src/2020/OCTET_STRING_aper.c | 414 + src/tmx/Asn_J2735/src/2020/OCTET_STRING_ber.c | 525 + src/tmx/Asn_J2735/src/2020/OCTET_STRING_jer.c | 148 + src/tmx/Asn_J2735/src/2020/OCTET_STRING_oer.c | 166 + .../Asn_J2735/src/2020/OCTET_STRING_print.c | 65 + .../Asn_J2735/src/2020/OCTET_STRING_rfill.c | 209 + .../Asn_J2735/src/2020/OCTET_STRING_uper.c | 319 + src/tmx/Asn_J2735/src/2020/OCTET_STRING_xer.c | 627 + src/tmx/Asn_J2735/src/2020/OPEN_TYPE.c | 63 + src/tmx/Asn_J2735/src/2020/OPEN_TYPE_aper.c | 173 + src/tmx/Asn_J2735/src/2020/OPEN_TYPE_ber.c | 90 + src/tmx/Asn_J2735/src/2020/OPEN_TYPE_oer.c | 91 + src/tmx/Asn_J2735/src/2020/OPEN_TYPE_uper.c | 119 + src/tmx/Asn_J2735/src/2020/OPEN_TYPE_xer.c | 166 + src/tmx/Asn_J2735/src/2020/ObjectCount.c | 76 + src/tmx/Asn_J2735/src/2020/ObjectDescriptor.c | 91 + .../Asn_J2735/src/2020/ObstacleDetection.c | 195 + .../Asn_J2735/src/2020/ObstacleDirection.c | 76 + src/tmx/Asn_J2735/src/2020/ObstacleDistance.c | 76 + src/tmx/Asn_J2735/src/2020/Offset-B09.c | 76 + src/tmx/Asn_J2735/src/2020/Offset-B10.c | 76 + src/tmx/Asn_J2735/src/2020/Offset-B11.c | 76 + src/tmx/Asn_J2735/src/2020/Offset-B12.c | 76 + src/tmx/Asn_J2735/src/2020/Offset-B13.c | 76 + src/tmx/Asn_J2735/src/2020/Offset-B14.c | 76 + src/tmx/Asn_J2735/src/2020/Offset-B16.c | 76 + src/tmx/Asn_J2735/src/2020/OffsetLL-B12.c | 76 + src/tmx/Asn_J2735/src/2020/OffsetLL-B14.c | 76 + src/tmx/Asn_J2735/src/2020/OffsetLL-B16.c | 76 + src/tmx/Asn_J2735/src/2020/OffsetLL-B18.c | 76 + src/tmx/Asn_J2735/src/2020/OffsetLL-B22.c | 76 + src/tmx/Asn_J2735/src/2020/OffsetLL-B24.c | 76 + src/tmx/Asn_J2735/src/2020/OffsetSystem.c | 171 + src/tmx/Asn_J2735/src/2020/OverlayLaneList.c | 72 + src/tmx/Asn_J2735/src/2020/PartII-Id.c | 76 + src/tmx/Asn_J2735/src/2020/PartIIcontent.c | 284 + src/tmx/Asn_J2735/src/2020/PathHistory.c | 105 + src/tmx/Asn_J2735/src/2020/PathHistoryPoint.c | 177 + .../Asn_J2735/src/2020/PathHistoryPointList.c | 73 + src/tmx/Asn_J2735/src/2020/PathPrediction.c | 84 + src/tmx/Asn_J2735/src/2020/PayloadData.c | 77 + .../src/2020/PedestrianBicycleDetect.c | 39 + .../Asn_J2735/src/2020/PersonalAssistive.c | 82 + .../src/2020/PersonalClusterRadius.c | 76 + .../src/2020/PersonalCrossingInProgress.c | 39 + .../src/2020/PersonalCrossingRequest.c | 39 + .../src/2020/PersonalDeviceUsageState.c | 82 + .../src/2020/PersonalDeviceUserType.c | 76 + .../src/2020/PersonalSafetyMessage.c | 626 + .../src/2020/PivotPointDescription.c | 102 + src/tmx/Asn_J2735/src/2020/PivotingAllowed.c | 39 + .../Asn_J2735/src/2020/Position3D-addGrpB.c | 102 + .../Asn_J2735/src/2020/Position3D-addGrpC.c | 66 + src/tmx/Asn_J2735/src/2020/Position3D.c | 226 + .../Asn_J2735/src/2020/PositionConfidence.c | 96 + .../src/2020/PositionConfidenceSet.c | 84 + .../Asn_J2735/src/2020/PositionalAccuracy.c | 102 + .../Asn_J2735/src/2020/PreemptPriorityList.c | 73 + .../src/2020/PrioritizationResponse.c | 102 + .../src/2020/PrioritizationResponseList.c | 73 + .../src/2020/PrioritizationResponseStatus.c | 82 + src/tmx/Asn_J2735/src/2020/Priority.c | 77 + .../Asn_J2735/src/2020/PriorityRequestType.c | 74 + .../Asn_J2735/src/2020/PrivilegedEventFlags.c | 82 + src/tmx/Asn_J2735/src/2020/PrivilegedEvents.c | 84 + .../Asn_J2735/src/2020/ProbeDataManagement.c | 469 + .../Asn_J2735/src/2020/ProbeSegmentNumber.c | 76 + src/tmx/Asn_J2735/src/2020/ProbeVehicleData.c | 385 + .../Asn_J2735/src/2020/PropelledInformation.c | 111 + .../2020/PublicSafetyAndRoadWorkerActivity.c | 82 + .../PublicSafetyDirectingTrafficSubType.c | 82 + .../PublicSafetyEventResponderWorkerType.c | 82 + src/tmx/Asn_J2735/src/2020/RTCM-Revision.c | 74 + src/tmx/Asn_J2735/src/2020/RTCMPackage.c | 87 + src/tmx/Asn_J2735/src/2020/RTCMcorrections.c | 282 + src/tmx/Asn_J2735/src/2020/RTCMheader.c | 84 + src/tmx/Asn_J2735/src/2020/RTCMmessage.c | 77 + src/tmx/Asn_J2735/src/2020/RTCMmessageList.c | 72 + src/tmx/Asn_J2735/src/2020/Radius-B12.c | 76 + .../Asn_J2735/src/2020/RadiusOfCurvature.c | 76 + src/tmx/Asn_J2735/src/2020/RainSensor.c | 80 + src/tmx/Asn_J2735/src/2020/RegionId.c | 76 + src/tmx/Asn_J2735/src/2020/RegionList.c | 73 + src/tmx/Asn_J2735/src/2020/RegionOffsets.c | 104 + src/tmx/Asn_J2735/src/2020/RegionPointSet.c | 105 + .../Asn_J2735/src/2020/RegionalExtension.c | 11120 ++++++++++++++++ .../Asn_J2735/src/2020/RegulatorySpeedLimit.c | 84 + src/tmx/Asn_J2735/src/2020/RequestID.c | 76 + .../src/2020/RequestImportanceLevel.c | 96 + src/tmx/Asn_J2735/src/2020/RequestSubRole.c | 96 + src/tmx/Asn_J2735/src/2020/RequestedItem.c | 100 + .../Asn_J2735/src/2020/RequestedItemList.c | 72 + .../Asn_J2735/src/2020/RequestorDescription.c | 318 + .../src/2020/RequestorPositionVector.c | 105 + src/tmx/Asn_J2735/src/2020/RequestorType.c | 159 + .../src/2020/ResponderGroupAffected.c | 94 + src/tmx/Asn_J2735/src/2020/ResponseType.c | 80 + .../Asn_J2735/src/2020/RestrictionAppliesTo.c | 94 + .../src/2020/RestrictionClassAssignment.c | 84 + .../Asn_J2735/src/2020/RestrictionClassID.c | 76 + .../Asn_J2735/src/2020/RestrictionClassList.c | 73 + .../src/2020/RestrictionUserType-addGrpC.c | 68 + .../Asn_J2735/src/2020/RestrictionUserType.c | 197 + .../src/2020/RestrictionUserTypeList.c | 73 + src/tmx/Asn_J2735/src/2020/RoadLaneSetList.c | 73 + src/tmx/Asn_J2735/src/2020/RoadRegulatorID.c | 76 + src/tmx/Asn_J2735/src/2020/RoadSegment.c | 299 + src/tmx/Asn_J2735/src/2020/RoadSegmentID.c | 76 + src/tmx/Asn_J2735/src/2020/RoadSegmentList.c | 73 + .../src/2020/RoadSegmentReferenceID.c | 86 + src/tmx/Asn_J2735/src/2020/RoadSideAlert.c | 438 + src/tmx/Asn_J2735/src/2020/RoadSignID.c | 122 + .../Asn_J2735/src/2020/RoadwayCrownAngle.c | 76 + src/tmx/Asn_J2735/src/2020/SPAT.c | 226 + src/tmx/Asn_J2735/src/2020/SPAT_TimeMark.c | 76 + src/tmx/Asn_J2735/src/2020/SSPindex.c | 76 + src/tmx/Asn_J2735/src/2020/Sample.c | 158 + src/tmx/Asn_J2735/src/2020/Scale-B12.c | 76 + src/tmx/Asn_J2735/src/2020/Second.c | 76 + src/tmx/Asn_J2735/src/2020/SecondOfTime.c | 76 + src/tmx/Asn_J2735/src/2020/SecondsAngle.c | 76 + .../Asn_J2735/src/2020/SegmentAttributeLL.c | 142 + .../src/2020/SegmentAttributeLLList.c | 72 + .../Asn_J2735/src/2020/SegmentAttributeXY.c | 142 + .../src/2020/SegmentAttributeXYList.c | 72 + .../src/2020/SemiMajorAxisAccuracy.c | 76 + .../src/2020/SemiMajorAxisOrientation.c | 76 + .../src/2020/SemiMinorAxisAccuracy.c | 76 + src/tmx/Asn_J2735/src/2020/ShapePointSet.c | 123 + src/tmx/Asn_J2735/src/2020/SignPrority.c | 76 + .../Asn_J2735/src/2020/SignalControlZone.c | 66 + src/tmx/Asn_J2735/src/2020/SignalGroupID.c | 76 + .../Asn_J2735/src/2020/SignalHeadLocation.c | 84 + .../src/2020/SignalHeadLocationList.c | 73 + src/tmx/Asn_J2735/src/2020/SignalReqScheme.c | 77 + src/tmx/Asn_J2735/src/2020/SignalRequest.c | 263 + .../Asn_J2735/src/2020/SignalRequestList.c | 73 + .../Asn_J2735/src/2020/SignalRequestMessage.c | 263 + .../Asn_J2735/src/2020/SignalRequestPackage.c | 244 + .../Asn_J2735/src/2020/SignalRequesterInfo.c | 141 + src/tmx/Asn_J2735/src/2020/SignalStatus.c | 226 + src/tmx/Asn_J2735/src/2020/SignalStatusList.c | 73 + .../Asn_J2735/src/2020/SignalStatusMessage.c | 244 + .../Asn_J2735/src/2020/SignalStatusPackage.c | 300 + .../src/2020/SignalStatusPackageList.c | 73 + src/tmx/Asn_J2735/src/2020/SirenInUse.c | 72 + src/tmx/Asn_J2735/src/2020/Snapshot.c | 106 + src/tmx/Asn_J2735/src/2020/SnapshotDistance.c | 120 + src/tmx/Asn_J2735/src/2020/SnapshotTime.c | 120 + .../src/2020/SpecialVehicleExtensions.c | 107 + src/tmx/Asn_J2735/src/2020/Speed.c | 76 + src/tmx/Asn_J2735/src/2020/SpeedAdvice.c | 76 + src/tmx/Asn_J2735/src/2020/SpeedConfidence.c | 80 + src/tmx/Asn_J2735/src/2020/SpeedLimit.c | 215 + src/tmx/Asn_J2735/src/2020/SpeedLimitList.c | 73 + src/tmx/Asn_J2735/src/2020/SpeedLimitType.c | 92 + src/tmx/Asn_J2735/src/2020/SpeedProfile.c | 66 + .../src/2020/SpeedProfileMeasurement.c | 76 + .../src/2020/SpeedProfileMeasurementList.c | 72 + .../SpeedandHeadingandThrottleConfidence.c | 102 + .../src/2020/StabilityControlStatus.c | 72 + src/tmx/Asn_J2735/src/2020/StationID.c | 72 + .../src/2020/SteeringAxleLubePressure.c | 76 + .../src/2020/SteeringAxleTemperature.c | 76 + .../Asn_J2735/src/2020/SteeringWheelAngle.c | 76 + .../src/2020/SteeringWheelAngleConfidence.c | 72 + .../src/2020/SteeringWheelAngleRateOfChange.c | 76 + src/tmx/Asn_J2735/src/2020/SummerTime.c | 68 + src/tmx/Asn_J2735/src/2020/SunSensor.c | 76 + .../src/2020/SupplementalVehicleExtensions.c | 342 + src/tmx/Asn_J2735/src/2020/TemporaryID.c | 77 + src/tmx/Asn_J2735/src/2020/TenthSecond.c | 76 + src/tmx/Asn_J2735/src/2020/TermDistance.c | 76 + src/tmx/Asn_J2735/src/2020/TermTime.c | 76 + src/tmx/Asn_J2735/src/2020/TestMessage00.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage01.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage02.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage03.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage04.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage05.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage06.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage07.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage08.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage09.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage10.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage11.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage12.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage13.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage14.c | 88 + src/tmx/Asn_J2735/src/2020/TestMessage15.c | 88 + .../Asn_J2735/src/2020/ThrottleConfidence.c | 72 + src/tmx/Asn_J2735/src/2020/ThrottlePosition.c | 76 + .../Asn_J2735/src/2020/TimeChangeDetails.c | 158 + src/tmx/Asn_J2735/src/2020/TimeConfidence.c | 144 + .../src/2020/TimeIntervalConfidence.c | 76 + src/tmx/Asn_J2735/src/2020/TimeOffset.c | 76 + src/tmx/Asn_J2735/src/2020/TimeRemaining.c | 76 + src/tmx/Asn_J2735/src/2020/TireData.c | 176 + src/tmx/Asn_J2735/src/2020/TireDataList.c | 73 + src/tmx/Asn_J2735/src/2020/TireLeakageRate.c | 76 + src/tmx/Asn_J2735/src/2020/TireLocation.c | 76 + src/tmx/Asn_J2735/src/2020/TirePressure.c | 76 + .../src/2020/TirePressureThresholdDetection.c | 80 + src/tmx/Asn_J2735/src/2020/TireTemp.c | 76 + .../src/2020/TractionControlStatus.c | 72 + src/tmx/Asn_J2735/src/2020/TrailerData.c | 102 + .../Asn_J2735/src/2020/TrailerHistoryPoint.c | 140 + .../src/2020/TrailerHistoryPointList.c | 73 + src/tmx/Asn_J2735/src/2020/TrailerMass.c | 76 + .../src/2020/TrailerUnitDescription.c | 287 + .../src/2020/TrailerUnitDescriptionList.c | 73 + src/tmx/Asn_J2735/src/2020/TrailerWeight.c | 76 + src/tmx/Asn_J2735/src/2020/TransitStatus.c | 82 + .../src/2020/TransitVehicleOccupancy.c | 80 + .../Asn_J2735/src/2020/TransitVehicleStatus.c | 82 + .../Asn_J2735/src/2020/TransmissionAndSpeed.c | 84 + .../Asn_J2735/src/2020/TransmissionState.c | 80 + .../Asn_J2735/src/2020/TravelerDataFrame.c | 612 + .../src/2020/TravelerDataFrameList.c | 73 + src/tmx/Asn_J2735/src/2020/TravelerInfoType.c | 74 + .../Asn_J2735/src/2020/TravelerInformation.c | 262 + src/tmx/Asn_J2735/src/2020/URL-Base.c | 91 + src/tmx/Asn_J2735/src/2020/URL-Link.c | 91 + src/tmx/Asn_J2735/src/2020/URL-Short.c | 91 + src/tmx/Asn_J2735/src/2020/UniqueMSGID.c | 77 + .../Asn_J2735/src/2020/UserSizeAndBehaviour.c | 82 + src/tmx/Asn_J2735/src/2020/VINstring.c | 77 + src/tmx/Asn_J2735/src/2020/ValidRegion.c | 207 + .../src/2020/VehicleClassification.c | 316 + src/tmx/Asn_J2735/src/2020/VehicleData.c | 123 + .../Asn_J2735/src/2020/VehicleEventFlags.c | 82 + .../Asn_J2735/src/2020/VehicleGroupAffected.c | 136 + src/tmx/Asn_J2735/src/2020/VehicleHeight.c | 76 + src/tmx/Asn_J2735/src/2020/VehicleID.c | 93 + src/tmx/Asn_J2735/src/2020/VehicleIdent.c | 314 + src/tmx/Asn_J2735/src/2020/VehicleLength.c | 76 + src/tmx/Asn_J2735/src/2020/VehicleMass.c | 76 + .../src/2020/VehicleSafetyExtensions.c | 124 + src/tmx/Asn_J2735/src/2020/VehicleSize.c | 84 + src/tmx/Asn_J2735/src/2020/VehicleStatus.c | 1061 ++ .../src/2020/VehicleStatusDeviceTypeTag.c | 124 + .../Asn_J2735/src/2020/VehicleStatusRequest.c | 251 + .../src/2020/VehicleStatusRequestList.c | 73 + .../src/2020/VehicleToLanePosition.c | 84 + .../src/2020/VehicleToLanePositionList.c | 73 + src/tmx/Asn_J2735/src/2020/VehicleType.c | 98 + src/tmx/Asn_J2735/src/2020/VehicleWidth.c | 76 + src/tmx/Asn_J2735/src/2020/Velocity.c | 76 + src/tmx/Asn_J2735/src/2020/VertOffset-B07.c | 76 + src/tmx/Asn_J2735/src/2020/VertOffset-B08.c | 76 + src/tmx/Asn_J2735/src/2020/VertOffset-B09.c | 76 + src/tmx/Asn_J2735/src/2020/VertOffset-B10.c | 76 + src/tmx/Asn_J2735/src/2020/VertOffset-B11.c | 76 + src/tmx/Asn_J2735/src/2020/VertOffset-B12.c | 76 + .../Asn_J2735/src/2020/VerticalAcceleration.c | 76 + .../src/2020/VerticalAccelerationThreshold.c | 82 + src/tmx/Asn_J2735/src/2020/VerticalOffset.c | 201 + src/tmx/Asn_J2735/src/2020/WaitOnStopline.c | 39 + src/tmx/Asn_J2735/src/2020/WeatherProbe.c | 105 + src/tmx/Asn_J2735/src/2020/WeatherReport.c | 158 + .../Asn_J2735/src/2020/WheelEndElectFault.c | 72 + .../Asn_J2735/src/2020/WheelSensorStatus.c | 72 + src/tmx/Asn_J2735/src/2020/WiperRate.c | 76 + src/tmx/Asn_J2735/src/2020/WiperSet.c | 122 + src/tmx/Asn_J2735/src/2020/WiperStatus.c | 80 + src/tmx/Asn_J2735/src/2020/WorkZone.c | 215 + src/tmx/Asn_J2735/src/2020/YawRate.c | 76 + .../Asn_J2735/src/2020/YawRateConfidence.c | 80 + src/tmx/Asn_J2735/src/2020/Year.c | 76 + src/tmx/Asn_J2735/src/2020/ZoneLength.c | 76 + src/tmx/Asn_J2735/src/2020/Zoom.c | 76 + src/tmx/Asn_J2735/src/2020/aper_decoder.c | 91 + src/tmx/Asn_J2735/src/2020/aper_encoder.c | 129 + src/tmx/Asn_J2735/src/2020/aper_opentype.c | 149 + src/tmx/Asn_J2735/src/2020/aper_support.c | 239 + src/tmx/Asn_J2735/src/2020/asn_SEQUENCE_OF.c | 41 + src/tmx/Asn_J2735/src/2020/asn_SET_OF.c | 88 + src/tmx/Asn_J2735/src/2020/asn_application.c | 538 + src/tmx/Asn_J2735/src/2020/asn_bit_data.c | 333 + src/tmx/Asn_J2735/src/2020/asn_codecs_prim.c | 31 + .../Asn_J2735/src/2020/asn_codecs_prim_ber.c | 115 + .../Asn_J2735/src/2020/asn_codecs_prim_xer.c | 184 + src/tmx/Asn_J2735/src/2020/asn_internal.c | 48 + src/tmx/Asn_J2735/src/2020/asn_random_fill.c | 66 + src/tmx/Asn_J2735/src/2020/ber_decoder.c | 283 + src/tmx/Asn_J2735/src/2020/ber_tlv_length.c | 168 + src/tmx/Asn_J2735/src/2020/ber_tlv_tag.c | 144 + src/tmx/Asn_J2735/src/2020/constr_CHOICE.c | 358 + .../Asn_J2735/src/2020/constr_CHOICE_aper.c | 181 + .../Asn_J2735/src/2020/constr_CHOICE_ber.c | 447 + .../Asn_J2735/src/2020/constr_CHOICE_jer.c | 79 + .../Asn_J2735/src/2020/constr_CHOICE_oer.c | 375 + .../Asn_J2735/src/2020/constr_CHOICE_print.c | 48 + .../Asn_J2735/src/2020/constr_CHOICE_rfill.c | 60 + .../Asn_J2735/src/2020/constr_CHOICE_uper.c | 191 + .../Asn_J2735/src/2020/constr_CHOICE_xer.c | 316 + src/tmx/Asn_J2735/src/2020/constr_SEQUENCE.c | 197 + .../Asn_J2735/src/2020/constr_SEQUENCE_OF.c | 92 + .../src/2020/constr_SEQUENCE_OF_aper.c | 88 + .../src/2020/constr_SEQUENCE_OF_ber.c | 88 + .../src/2020/constr_SEQUENCE_OF_jer.c | 65 + .../src/2020/constr_SEQUENCE_OF_uper.c | 92 + .../src/2020/constr_SEQUENCE_OF_xer.c | 60 + .../Asn_J2735/src/2020/constr_SEQUENCE_aper.c | 457 + .../Asn_J2735/src/2020/constr_SEQUENCE_ber.c | 612 + .../Asn_J2735/src/2020/constr_SEQUENCE_jer.c | 84 + .../Asn_J2735/src/2020/constr_SEQUENCE_oer.c | 557 + .../src/2020/constr_SEQUENCE_print.c | 55 + .../src/2020/constr_SEQUENCE_rfill.c | 74 + .../Asn_J2735/src/2020/constr_SEQUENCE_uper.c | 429 + .../Asn_J2735/src/2020/constr_SEQUENCE_xer.c | 348 + src/tmx/Asn_J2735/src/2020/constr_SET_OF.c | 371 + .../Asn_J2735/src/2020/constr_SET_OF_aper.c | 186 + .../Asn_J2735/src/2020/constr_SET_OF_ber.c | 355 + .../Asn_J2735/src/2020/constr_SET_OF_jer.c | 144 + .../Asn_J2735/src/2020/constr_SET_OF_oer.c | 281 + .../Asn_J2735/src/2020/constr_SET_OF_print.c | 39 + .../Asn_J2735/src/2020/constr_SET_OF_rfill.c | 152 + .../Asn_J2735/src/2020/constr_SET_OF_uper.c | 201 + .../Asn_J2735/src/2020/constr_SET_OF_xer.c | 314 + src/tmx/Asn_J2735/src/2020/constr_TYPE.c | 80 + src/tmx/Asn_J2735/src/2020/constraints.c | 94 + src/tmx/Asn_J2735/src/2020/der_encoder.c | 194 + src/tmx/Asn_J2735/src/2020/jer_encoder.c | 69 + src/tmx/Asn_J2735/src/2020/oer_decoder.c | 152 + src/tmx/Asn_J2735/src/2020/oer_encoder.c | 141 + src/tmx/Asn_J2735/src/2020/oer_support.c | 122 + src/tmx/Asn_J2735/src/2020/pdu_collection.c | 58 + src/tmx/Asn_J2735/src/2020/per_decoder.c | 5 + src/tmx/Asn_J2735/src/2020/per_encoder.c | 35 + src/tmx/Asn_J2735/src/2020/per_opentype.c | 28 + src/tmx/Asn_J2735/src/2020/per_support.c | 9 + src/tmx/Asn_J2735/src/2020/uper_decoder.c | 96 + src/tmx/Asn_J2735/src/2020/uper_encoder.c | 127 + src/tmx/Asn_J2735/src/2020/uper_opentype.c | 372 + src/tmx/Asn_J2735/src/2020/uper_support.c | 311 + src/tmx/Asn_J2735/src/2020/xer_decoder.c | 369 + src/tmx/Asn_J2735/src/2020/xer_encoder.c | 237 + src/tmx/Asn_J2735/src/2020/xer_support.c | 227 + 1162 files changed, 121242 insertions(+) create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ANY.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AccelSteerYawRateConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Acceleration.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AccelerationConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AccelerationSet4Way.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_Angle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_Elevation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_MsgCount.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_TimeMark.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeed.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeedList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeedType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AllowedManeuvers.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Altitude.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AltitudeConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AltitudeValue.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AmbientAirPressure.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AmbientAirTemperature.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AnimalPropelledType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AnimalType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AntennaOffsetSet.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AntiLockBrakeStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ApproachID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ApproachOrLane.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Attachment.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AttachmentRadius.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AuxiliaryBrakeStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AxleLocation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeight.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeightList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeightSet.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BIT_STRING.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BOOLEAN.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BSMcoreData.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BasicSafetyMessage.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BasicVehicleClass.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BasicVehicleRole.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeAppliedPressure.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeAppliedStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeBoostApplied.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeSystemStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BumperHeight.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/BumperHeights.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/CargoWeight.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Circle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/CoarseHeading.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/CodeWord.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/CoefficientOfFriction.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/CommonSafetyRequest.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Common_Angle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Common_Elevation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Common_MsgCount.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ComputedLane.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Confidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ConfidenceSet.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectingLane.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Connection.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectionManeuverAssist-addGrpC.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectionManeuverAssist.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectsToList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Count.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DDate.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DDateTime.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DDay.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DFullTime.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DHour.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DMinute.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DMonth.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DMonthDay.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DOffset.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DSRCmsgID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DSecond.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DTime.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DYear.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DYearMonth.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DataParameters.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Day.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DayOfWeek.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DegreesLat.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DegreesLong.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DeltaAngle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DeltaTime.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DescriptiveName.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DirectionOfUse.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DisabledVehicle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DistanceUnits.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLiftAirPressure.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLocation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLubePressure.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleTemperature.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DrivenLineOffsetLg.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DrivenLineOffsetSm.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/DrivingWheelAngle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Duration.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EXTERNAL.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ElevationConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EmergencyDetails.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EmergencyVehicleAlert.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EmissionType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EnabledLaneList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EssMobileFriction.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipRate.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipSituation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipYesNo.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EssSolarRadiation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/EventDescription.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ExitService.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Extent.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ExteriorLights.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/FuelType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/FullPositionVector.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/FurtherInfoID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/GNSSstatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/GenericLane.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/GenericLocations.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/GenericSignage.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/GeographicalPath.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/GeometricProjection.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/GraphicString.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/GrossDistance.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/GrossSpeed.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Header.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Heading.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/HeadingConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/HeadingSlice.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Holiday.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Hour.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/HumanPropelledType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IA5String.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/INTEGER.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ITIScodes.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ITIScodesAndText.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ITIStext.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ITIStextPhrase.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IncidentResponseEquipment.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionAccessPoint.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionCollision.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionGeometry.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionGeometryList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionReferenceID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionState-addGrpC.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionState.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionStateList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionStatusObject.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/IsDolly.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Iso3833VehicleType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/J1939data.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Barrier.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Bike.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Crosswalk.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Parking.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Sidewalk.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Striping.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-TrackedVehicle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Vehicle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneConnectionID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttribute-addGrpB.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttribute.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttributeList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDirection.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneSharing.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneTypeAttributes.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LaneWidth.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Latitude.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LatitudeDMS.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LatitudeDMS2.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LayerID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LayerType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LightbarInUse.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Location-quality.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Location-tech.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Longitude.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LongitudeDMS.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/LongitudeDMS2.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MUTCDCode.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ManeuverAssistList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MapData-addGrpC.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MapData.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MaxTimetoChange.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MergeDivergeNodeAngle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MessageBLOB.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MessageFrame.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MinTimetoChange.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Minute.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MinuteOfTheYear.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MinutesAngle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MinutesDuration.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Month.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MotorizedPropelledType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEvent-addGrpB.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEvent.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEventList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MovementList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MovementPhaseState.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MovementState.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MsgCRC.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/MultiVehicleResponse.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-MsgType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-Payload.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-Revision.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NMEAcorrections.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NativeEnumerated.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NativeInteger.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-24B.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-28B.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-32B.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-36B.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-44B.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-48B.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLdms-48b.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLdms-80b.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLmD-64b.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-20b.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-22b.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-24b.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-26b.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-28b.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-32b.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeLL.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeLLList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeSetLL.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeSetXY.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeXY.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeXYList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeLL.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeListLL.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeListXY.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointLL.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointXY-addGrpB.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointXY.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeSetLL.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeSetXY.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NodeXY.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/NumberOfParticipantsInCluster.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OBJECT_IDENTIFIER.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OCTET_STRING.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OPEN_TYPE.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ObjectCount.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ObjectDescriptor.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDetection.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDirection.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDistance.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B09.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B10.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B11.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B12.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B13.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B14.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B16.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B12.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B14.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B16.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B18.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B22.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B24.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetSystem.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/OverlayLaneList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PartII-Id.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PartIIcontent.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistory.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistoryPoint.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistoryPointList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PathPrediction.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PayloadData.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PedestrianBicycleDetect.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalAssistive.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalClusterRadius.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalCrossingInProgress.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalCrossingRequest.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalDeviceUsageState.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalDeviceUserType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalSafetyMessage.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PivotPointDescription.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PivotingAllowed.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D-addGrpB.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D-addGrpC.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PositionConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PositionConfidenceSet.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PositionalAccuracy.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PreemptPriorityList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponse.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponseList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponseStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Priority.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PriorityRequestType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PrivilegedEventFlags.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PrivilegedEvents.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeDataManagement.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeSegmentNumber.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeVehicleData.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PropelledInformation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyAndRoadWorkerActivity.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyDirectingTrafficSubType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyEventResponderWorkerType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RTCM-Revision.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMPackage.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMcorrections.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMheader.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMmessage.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMmessageList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Radius-B12.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RadiusOfCurvature.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RainSensor.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RegionId.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RegionList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RegionOffsets.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RegionPointSet.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RegionalExtension.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RegulatorySpeedLimit.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RequestID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RequestImportanceLevel.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RequestSubRole.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RequestedItem.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RequestedItemList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorDescription.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorPositionVector.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ResponderGroupAffected.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ResponseType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionAppliesTo.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassAssignment.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserType-addGrpC.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserTypeList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RoadLaneSetList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RoadRegulatorID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegment.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentReferenceID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSideAlert.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSignID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/RoadwayCrownAngle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SPAT.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SPAT_TimeMark.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SSPindex.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Sample.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Scale-B12.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Second.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SecondOfTime.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SecondsAngle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeLL.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeLLList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeXY.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeXYList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMajorAxisAccuracy.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMajorAxisOrientation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMinorAxisAccuracy.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ShapePointSet.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignPrority.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalControlZone.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalGroupID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalHeadLocation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalHeadLocationList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalReqScheme.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequest.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestMessage.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestPackage.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequesterInfo.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusMessage.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusPackage.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusPackageList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SirenInUse.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Snapshot.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SnapshotDistance.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SnapshotTime.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SpecialVehicleExtensions.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Speed.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedAdvice.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimit.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimitList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimitType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfile.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfileMeasurement.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfileMeasurementList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedandHeadingandThrottleConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/StabilityControlStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/StationID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringAxleLubePressure.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringAxleTemperature.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngle.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngleConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngleRateOfChange.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SummerTime.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SunSensor.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/SupplementalVehicleExtensions.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TemporaryID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TenthSecond.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TermDistance.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TermTime.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage00.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage01.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage02.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage03.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage04.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage05.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage06.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage07.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage08.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage09.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage10.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage11.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage12.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage13.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage14.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage15.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ThrottleConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ThrottlePosition.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TimeChangeDetails.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TimeConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TimeIntervalConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TimeOffset.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TimeRemaining.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TireData.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TireDataList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TireLeakageRate.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TireLocation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TirePressure.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TirePressureThresholdDetection.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TireTemp.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TractionControlStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerData.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerHistoryPoint.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerHistoryPointList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerMass.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerUnitDescription.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerUnitDescriptionList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerWeight.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TransitStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TransitVehicleOccupancy.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TransitVehicleStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TransmissionAndSpeed.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TransmissionState.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerDataFrame.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerDataFrameList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerInfoType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerInformation.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Base.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Link.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Short.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/UniqueMSGID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/UserSizeAndBehaviour.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VINstring.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ValidRegion.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleClassification.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleData.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleEventFlags.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleGroupAffected.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleHeight.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleID.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleIdent.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleLength.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleMass.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleSafetyExtensions.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleSize.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusDeviceTypeTag.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusRequest.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusRequestList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleToLanePosition.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleToLanePositionList.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleType.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleWidth.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Velocity.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B07.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B08.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B09.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B10.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B11.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B12.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalAcceleration.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalAccelerationThreshold.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalOffset.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/WaitOnStopline.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/WeatherProbe.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/WeatherReport.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/WheelEndElectFault.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/WheelSensorStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/WiperRate.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/WiperSet.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/WiperStatus.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/WorkZone.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/YawRate.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/YawRateConfidence.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Year.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ZoneLength.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/Zoom.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/aper_decoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/aper_encoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/aper_opentype.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/aper_support.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_SEQUENCE_OF.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_SET_OF.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_application.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_bit_data.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_codecs.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_codecs_prim.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_config.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_constant.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_internal.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_ioc.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_random_fill.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/asn_system.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ber_decoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ber_tlv_length.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/ber_tlv_tag.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/constr_CHOICE.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SEQUENCE.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SEQUENCE_OF.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SET_OF.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/constr_TYPE.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/constraints.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/der_encoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/jer_encoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/oer_decoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/oer_encoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/oer_support.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/per_decoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/per_encoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/per_opentype.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/per_support.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/uper_decoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/uper_encoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/uper_opentype.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/uper_support.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/xer_decoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/xer_encoder.h create mode 100644 src/tmx/Asn_J2735/include/asn_j2735_2020/xer_support.h create mode 100644 src/tmx/Asn_J2735/src/2020/ANY.c create mode 100644 src/tmx/Asn_J2735/src/2020/ANY_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/ANY_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/ANY_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/ANY_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/ANY_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/AccelSteerYawRateConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/Acceleration.c create mode 100644 src/tmx/Asn_J2735/src/2020/AccelerationConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/AccelerationSet4Way.c create mode 100644 src/tmx/Asn_J2735/src/2020/AddGrpB_Angle.c create mode 100644 src/tmx/Asn_J2735/src/2020/AddGrpB_Elevation.c create mode 100644 src/tmx/Asn_J2735/src/2020/AddGrpB_MsgCount.c create mode 100644 src/tmx/Asn_J2735/src/2020/AddGrpB_TimeMark.c create mode 100644 src/tmx/Asn_J2735/src/2020/AdvisorySpeed.c create mode 100644 src/tmx/Asn_J2735/src/2020/AdvisorySpeedList.c create mode 100644 src/tmx/Asn_J2735/src/2020/AdvisorySpeedType.c create mode 100644 src/tmx/Asn_J2735/src/2020/AllowedManeuvers.c create mode 100644 src/tmx/Asn_J2735/src/2020/Altitude.c create mode 100644 src/tmx/Asn_J2735/src/2020/AltitudeConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/AltitudeValue.c create mode 100644 src/tmx/Asn_J2735/src/2020/AmbientAirPressure.c create mode 100644 src/tmx/Asn_J2735/src/2020/AmbientAirTemperature.c create mode 100644 src/tmx/Asn_J2735/src/2020/AnimalPropelledType.c create mode 100644 src/tmx/Asn_J2735/src/2020/AnimalType.c create mode 100644 src/tmx/Asn_J2735/src/2020/AntennaOffsetSet.c create mode 100644 src/tmx/Asn_J2735/src/2020/AntiLockBrakeStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/ApproachID.c create mode 100644 src/tmx/Asn_J2735/src/2020/ApproachOrLane.c create mode 100644 src/tmx/Asn_J2735/src/2020/Attachment.c create mode 100644 src/tmx/Asn_J2735/src/2020/AttachmentRadius.c create mode 100644 src/tmx/Asn_J2735/src/2020/AuxiliaryBrakeStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/AxleLocation.c create mode 100644 src/tmx/Asn_J2735/src/2020/AxleWeight.c create mode 100644 src/tmx/Asn_J2735/src/2020/AxleWeightList.c create mode 100644 src/tmx/Asn_J2735/src/2020/AxleWeightSet.c create mode 100644 src/tmx/Asn_J2735/src/2020/BIT_STRING.c create mode 100644 src/tmx/Asn_J2735/src/2020/BIT_STRING_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/BIT_STRING_oer.c create mode 100644 src/tmx/Asn_J2735/src/2020/BIT_STRING_print.c create mode 100644 src/tmx/Asn_J2735/src/2020/BIT_STRING_rfill.c create mode 100644 src/tmx/Asn_J2735/src/2020/BIT_STRING_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/BIT_STRING_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/BOOLEAN.c create mode 100644 src/tmx/Asn_J2735/src/2020/BOOLEAN_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/BOOLEAN_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/BOOLEAN_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/BOOLEAN_oer.c create mode 100644 src/tmx/Asn_J2735/src/2020/BOOLEAN_print.c create mode 100644 src/tmx/Asn_J2735/src/2020/BOOLEAN_rfill.c create mode 100644 src/tmx/Asn_J2735/src/2020/BOOLEAN_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/BOOLEAN_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/BSMcoreData.c create mode 100644 src/tmx/Asn_J2735/src/2020/BasicSafetyMessage.c create mode 100644 src/tmx/Asn_J2735/src/2020/BasicVehicleClass.c create mode 100644 src/tmx/Asn_J2735/src/2020/BasicVehicleRole.c create mode 100644 src/tmx/Asn_J2735/src/2020/BrakeAppliedPressure.c create mode 100644 src/tmx/Asn_J2735/src/2020/BrakeAppliedStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/BrakeBoostApplied.c create mode 100644 src/tmx/Asn_J2735/src/2020/BrakeSystemStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/BumperHeight.c create mode 100644 src/tmx/Asn_J2735/src/2020/BumperHeights.c create mode 100644 src/tmx/Asn_J2735/src/2020/CargoWeight.c create mode 100644 src/tmx/Asn_J2735/src/2020/Circle.c create mode 100644 src/tmx/Asn_J2735/src/2020/CoarseHeading.c create mode 100644 src/tmx/Asn_J2735/src/2020/CodeWord.c create mode 100644 src/tmx/Asn_J2735/src/2020/CoefficientOfFriction.c create mode 100644 src/tmx/Asn_J2735/src/2020/CommonSafetyRequest.c create mode 100644 src/tmx/Asn_J2735/src/2020/Common_Angle.c create mode 100644 src/tmx/Asn_J2735/src/2020/Common_Elevation.c create mode 100644 src/tmx/Asn_J2735/src/2020/Common_MsgCount.c create mode 100644 src/tmx/Asn_J2735/src/2020/ComputedLane.c create mode 100644 src/tmx/Asn_J2735/src/2020/Confidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/ConfidenceSet.c create mode 100644 src/tmx/Asn_J2735/src/2020/ConnectingLane.c create mode 100644 src/tmx/Asn_J2735/src/2020/Connection.c create mode 100644 src/tmx/Asn_J2735/src/2020/ConnectionManeuverAssist-addGrpC.c create mode 100644 src/tmx/Asn_J2735/src/2020/ConnectionManeuverAssist.c create mode 100644 src/tmx/Asn_J2735/src/2020/ConnectsToList.c create mode 100644 src/tmx/Asn_J2735/src/2020/Count.c create mode 100644 src/tmx/Asn_J2735/src/2020/DDate.c create mode 100644 src/tmx/Asn_J2735/src/2020/DDateTime.c create mode 100644 src/tmx/Asn_J2735/src/2020/DDay.c create mode 100644 src/tmx/Asn_J2735/src/2020/DFullTime.c create mode 100644 src/tmx/Asn_J2735/src/2020/DHour.c create mode 100644 src/tmx/Asn_J2735/src/2020/DMinute.c create mode 100644 src/tmx/Asn_J2735/src/2020/DMonth.c create mode 100644 src/tmx/Asn_J2735/src/2020/DMonthDay.c create mode 100644 src/tmx/Asn_J2735/src/2020/DOffset.c create mode 100644 src/tmx/Asn_J2735/src/2020/DSRCmsgID.c create mode 100644 src/tmx/Asn_J2735/src/2020/DSecond.c create mode 100644 src/tmx/Asn_J2735/src/2020/DTime.c create mode 100644 src/tmx/Asn_J2735/src/2020/DYear.c create mode 100644 src/tmx/Asn_J2735/src/2020/DYearMonth.c create mode 100644 src/tmx/Asn_J2735/src/2020/DataParameters.c create mode 100644 src/tmx/Asn_J2735/src/2020/Day.c create mode 100644 src/tmx/Asn_J2735/src/2020/DayOfWeek.c create mode 100644 src/tmx/Asn_J2735/src/2020/DegreesLat.c create mode 100644 src/tmx/Asn_J2735/src/2020/DegreesLong.c create mode 100644 src/tmx/Asn_J2735/src/2020/DeltaAngle.c create mode 100644 src/tmx/Asn_J2735/src/2020/DeltaTime.c create mode 100644 src/tmx/Asn_J2735/src/2020/DescriptiveName.c create mode 100644 src/tmx/Asn_J2735/src/2020/DirectionOfUse.c create mode 100644 src/tmx/Asn_J2735/src/2020/DisabledVehicle.c create mode 100644 src/tmx/Asn_J2735/src/2020/DistanceUnits.c create mode 100644 src/tmx/Asn_J2735/src/2020/DriveAxleLiftAirPressure.c create mode 100644 src/tmx/Asn_J2735/src/2020/DriveAxleLocation.c create mode 100644 src/tmx/Asn_J2735/src/2020/DriveAxleLubePressure.c create mode 100644 src/tmx/Asn_J2735/src/2020/DriveAxleTemperature.c create mode 100644 src/tmx/Asn_J2735/src/2020/DrivenLineOffsetLg.c create mode 100644 src/tmx/Asn_J2735/src/2020/DrivenLineOffsetSm.c create mode 100644 src/tmx/Asn_J2735/src/2020/DrivingWheelAngle.c create mode 100644 src/tmx/Asn_J2735/src/2020/Duration.c create mode 100644 src/tmx/Asn_J2735/src/2020/EXTERNAL.c create mode 100644 src/tmx/Asn_J2735/src/2020/ElevationConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/EmergencyDetails.c create mode 100644 src/tmx/Asn_J2735/src/2020/EmergencyVehicleAlert.c create mode 100644 src/tmx/Asn_J2735/src/2020/EmissionType.c create mode 100644 src/tmx/Asn_J2735/src/2020/EnabledLaneList.c create mode 100644 src/tmx/Asn_J2735/src/2020/EssMobileFriction.c create mode 100644 src/tmx/Asn_J2735/src/2020/EssPrecipRate.c create mode 100644 src/tmx/Asn_J2735/src/2020/EssPrecipSituation.c create mode 100644 src/tmx/Asn_J2735/src/2020/EssPrecipYesNo.c create mode 100644 src/tmx/Asn_J2735/src/2020/EssSolarRadiation.c create mode 100644 src/tmx/Asn_J2735/src/2020/EventDescription.c create mode 100644 src/tmx/Asn_J2735/src/2020/ExitService.c create mode 100644 src/tmx/Asn_J2735/src/2020/Extent.c create mode 100644 src/tmx/Asn_J2735/src/2020/ExteriorLights.c create mode 100644 src/tmx/Asn_J2735/src/2020/FuelType.c create mode 100644 src/tmx/Asn_J2735/src/2020/FullPositionVector.c create mode 100644 src/tmx/Asn_J2735/src/2020/FurtherInfoID.c create mode 100644 src/tmx/Asn_J2735/src/2020/GNSSstatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/GenericLane.c create mode 100644 src/tmx/Asn_J2735/src/2020/GenericLocations.c create mode 100644 src/tmx/Asn_J2735/src/2020/GenericSignage.c create mode 100644 src/tmx/Asn_J2735/src/2020/GeographicalPath.c create mode 100644 src/tmx/Asn_J2735/src/2020/GeometricProjection.c create mode 100644 src/tmx/Asn_J2735/src/2020/GraphicString.c create mode 100644 src/tmx/Asn_J2735/src/2020/GrossDistance.c create mode 100644 src/tmx/Asn_J2735/src/2020/GrossSpeed.c create mode 100644 src/tmx/Asn_J2735/src/2020/Header.c create mode 100644 src/tmx/Asn_J2735/src/2020/Heading.c create mode 100644 src/tmx/Asn_J2735/src/2020/HeadingConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/HeadingSlice.c create mode 100644 src/tmx/Asn_J2735/src/2020/Holiday.c create mode 100644 src/tmx/Asn_J2735/src/2020/Hour.c create mode 100644 src/tmx/Asn_J2735/src/2020/HumanPropelledType.c create mode 100644 src/tmx/Asn_J2735/src/2020/IA5String.c create mode 100644 src/tmx/Asn_J2735/src/2020/INTEGER.c create mode 100644 src/tmx/Asn_J2735/src/2020/INTEGER_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/INTEGER_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/INTEGER_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/INTEGER_oer.c create mode 100644 src/tmx/Asn_J2735/src/2020/INTEGER_print.c create mode 100644 src/tmx/Asn_J2735/src/2020/INTEGER_rfill.c create mode 100644 src/tmx/Asn_J2735/src/2020/INTEGER_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/INTEGER_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/ITIScodes.c create mode 100644 src/tmx/Asn_J2735/src/2020/ITIScodesAndText.c create mode 100644 src/tmx/Asn_J2735/src/2020/ITIStext.c create mode 100644 src/tmx/Asn_J2735/src/2020/ITIStextPhrase.c create mode 100644 src/tmx/Asn_J2735/src/2020/IncidentResponseEquipment.c create mode 100644 src/tmx/Asn_J2735/src/2020/IntersectionAccessPoint.c create mode 100644 src/tmx/Asn_J2735/src/2020/IntersectionCollision.c create mode 100644 src/tmx/Asn_J2735/src/2020/IntersectionGeometry.c create mode 100644 src/tmx/Asn_J2735/src/2020/IntersectionGeometryList.c create mode 100644 src/tmx/Asn_J2735/src/2020/IntersectionID.c create mode 100644 src/tmx/Asn_J2735/src/2020/IntersectionReferenceID.c create mode 100644 src/tmx/Asn_J2735/src/2020/IntersectionState-addGrpC.c create mode 100644 src/tmx/Asn_J2735/src/2020/IntersectionState.c create mode 100644 src/tmx/Asn_J2735/src/2020/IntersectionStateList.c create mode 100644 src/tmx/Asn_J2735/src/2020/IntersectionStatusObject.c create mode 100644 src/tmx/Asn_J2735/src/2020/IsDolly.c create mode 100644 src/tmx/Asn_J2735/src/2020/Iso3833VehicleType.c create mode 100644 src/tmx/Asn_J2735/src/2020/J1939data.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneAttributes-Barrier.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneAttributes-Bike.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneAttributes-Crosswalk.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneAttributes-Parking.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneAttributes-Sidewalk.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneAttributes-Striping.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneAttributes-TrackedVehicle.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneAttributes-Vehicle.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneAttributes.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneConnectionID.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneDataAttribute-addGrpB.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneDataAttribute.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneDataAttributeList.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneDirection.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneID.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneList.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneSharing.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneTypeAttributes.c create mode 100644 src/tmx/Asn_J2735/src/2020/LaneWidth.c create mode 100644 src/tmx/Asn_J2735/src/2020/Latitude.c create mode 100644 src/tmx/Asn_J2735/src/2020/LatitudeDMS.c create mode 100644 src/tmx/Asn_J2735/src/2020/LatitudeDMS2.c create mode 100644 src/tmx/Asn_J2735/src/2020/LayerID.c create mode 100644 src/tmx/Asn_J2735/src/2020/LayerType.c create mode 100644 src/tmx/Asn_J2735/src/2020/LightbarInUse.c create mode 100644 src/tmx/Asn_J2735/src/2020/Location-quality.c create mode 100644 src/tmx/Asn_J2735/src/2020/Location-tech.c create mode 100644 src/tmx/Asn_J2735/src/2020/Longitude.c create mode 100644 src/tmx/Asn_J2735/src/2020/LongitudeDMS.c create mode 100644 src/tmx/Asn_J2735/src/2020/LongitudeDMS2.c create mode 100644 src/tmx/Asn_J2735/src/2020/MUTCDCode.c create mode 100644 src/tmx/Asn_J2735/src/2020/ManeuverAssistList.c create mode 100644 src/tmx/Asn_J2735/src/2020/MapData-addGrpC.c create mode 100644 src/tmx/Asn_J2735/src/2020/MapData.c create mode 100644 src/tmx/Asn_J2735/src/2020/MaxTimetoChange.c create mode 100644 src/tmx/Asn_J2735/src/2020/MergeDivergeNodeAngle.c create mode 100644 src/tmx/Asn_J2735/src/2020/MessageBLOB.c create mode 100644 src/tmx/Asn_J2735/src/2020/MessageFrame.c create mode 100644 src/tmx/Asn_J2735/src/2020/MinTimetoChange.c create mode 100644 src/tmx/Asn_J2735/src/2020/Minute.c create mode 100644 src/tmx/Asn_J2735/src/2020/MinuteOfTheYear.c create mode 100644 src/tmx/Asn_J2735/src/2020/MinutesAngle.c create mode 100644 src/tmx/Asn_J2735/src/2020/MinutesDuration.c create mode 100644 src/tmx/Asn_J2735/src/2020/Month.c create mode 100644 src/tmx/Asn_J2735/src/2020/MotorizedPropelledType.c create mode 100644 src/tmx/Asn_J2735/src/2020/MovementEvent-addGrpB.c create mode 100644 src/tmx/Asn_J2735/src/2020/MovementEvent.c create mode 100644 src/tmx/Asn_J2735/src/2020/MovementEventList.c create mode 100644 src/tmx/Asn_J2735/src/2020/MovementList.c create mode 100644 src/tmx/Asn_J2735/src/2020/MovementPhaseState.c create mode 100644 src/tmx/Asn_J2735/src/2020/MovementState.c create mode 100644 src/tmx/Asn_J2735/src/2020/MsgCRC.c create mode 100644 src/tmx/Asn_J2735/src/2020/MultiVehicleResponse.c create mode 100644 src/tmx/Asn_J2735/src/2020/NMEA-MsgType.c create mode 100644 src/tmx/Asn_J2735/src/2020/NMEA-Payload.c create mode 100644 src/tmx/Asn_J2735/src/2020/NMEA-Revision.c create mode 100644 src/tmx/Asn_J2735/src/2020/NMEAcorrections.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeEnumerated.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeEnumerated_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeEnumerated_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeEnumerated_oer.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeEnumerated_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeEnumerated_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeInteger.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeInteger_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeInteger_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeInteger_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeInteger_oer.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeInteger_print.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeInteger_rfill.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeInteger_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/NativeInteger_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-LL-24B.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-LL-28B.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-LL-32B.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-LL-36B.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-LL-44B.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-LL-48B.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-LLdms-48b.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-LLdms-80b.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-LLmD-64b.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-XY-20b.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-XY-22b.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-XY-24b.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-XY-26b.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-XY-28b.c create mode 100644 src/tmx/Asn_J2735/src/2020/Node-XY-32b.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeAttributeLL.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeAttributeLLList.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeAttributeSetLL.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeAttributeSetXY.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeAttributeXY.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeAttributeXYList.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeLL.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeListLL.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeListXY.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeOffsetPointLL.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeOffsetPointXY-addGrpB.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeOffsetPointXY.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeSetLL.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeSetXY.c create mode 100644 src/tmx/Asn_J2735/src/2020/NodeXY.c create mode 100644 src/tmx/Asn_J2735/src/2020/NumberOfParticipantsInCluster.c create mode 100644 src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER.c create mode 100644 src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_print.c create mode 100644 src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_rfill.c create mode 100644 src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/OCTET_STRING.c create mode 100644 src/tmx/Asn_J2735/src/2020/OCTET_STRING_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/OCTET_STRING_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/OCTET_STRING_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/OCTET_STRING_oer.c create mode 100644 src/tmx/Asn_J2735/src/2020/OCTET_STRING_print.c create mode 100644 src/tmx/Asn_J2735/src/2020/OCTET_STRING_rfill.c create mode 100644 src/tmx/Asn_J2735/src/2020/OCTET_STRING_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/OCTET_STRING_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/OPEN_TYPE.c create mode 100644 src/tmx/Asn_J2735/src/2020/OPEN_TYPE_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/OPEN_TYPE_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/OPEN_TYPE_oer.c create mode 100644 src/tmx/Asn_J2735/src/2020/OPEN_TYPE_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/OPEN_TYPE_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/ObjectCount.c create mode 100644 src/tmx/Asn_J2735/src/2020/ObjectDescriptor.c create mode 100644 src/tmx/Asn_J2735/src/2020/ObstacleDetection.c create mode 100644 src/tmx/Asn_J2735/src/2020/ObstacleDirection.c create mode 100644 src/tmx/Asn_J2735/src/2020/ObstacleDistance.c create mode 100644 src/tmx/Asn_J2735/src/2020/Offset-B09.c create mode 100644 src/tmx/Asn_J2735/src/2020/Offset-B10.c create mode 100644 src/tmx/Asn_J2735/src/2020/Offset-B11.c create mode 100644 src/tmx/Asn_J2735/src/2020/Offset-B12.c create mode 100644 src/tmx/Asn_J2735/src/2020/Offset-B13.c create mode 100644 src/tmx/Asn_J2735/src/2020/Offset-B14.c create mode 100644 src/tmx/Asn_J2735/src/2020/Offset-B16.c create mode 100644 src/tmx/Asn_J2735/src/2020/OffsetLL-B12.c create mode 100644 src/tmx/Asn_J2735/src/2020/OffsetLL-B14.c create mode 100644 src/tmx/Asn_J2735/src/2020/OffsetLL-B16.c create mode 100644 src/tmx/Asn_J2735/src/2020/OffsetLL-B18.c create mode 100644 src/tmx/Asn_J2735/src/2020/OffsetLL-B22.c create mode 100644 src/tmx/Asn_J2735/src/2020/OffsetLL-B24.c create mode 100644 src/tmx/Asn_J2735/src/2020/OffsetSystem.c create mode 100644 src/tmx/Asn_J2735/src/2020/OverlayLaneList.c create mode 100644 src/tmx/Asn_J2735/src/2020/PartII-Id.c create mode 100644 src/tmx/Asn_J2735/src/2020/PartIIcontent.c create mode 100644 src/tmx/Asn_J2735/src/2020/PathHistory.c create mode 100644 src/tmx/Asn_J2735/src/2020/PathHistoryPoint.c create mode 100644 src/tmx/Asn_J2735/src/2020/PathHistoryPointList.c create mode 100644 src/tmx/Asn_J2735/src/2020/PathPrediction.c create mode 100644 src/tmx/Asn_J2735/src/2020/PayloadData.c create mode 100644 src/tmx/Asn_J2735/src/2020/PedestrianBicycleDetect.c create mode 100644 src/tmx/Asn_J2735/src/2020/PersonalAssistive.c create mode 100644 src/tmx/Asn_J2735/src/2020/PersonalClusterRadius.c create mode 100644 src/tmx/Asn_J2735/src/2020/PersonalCrossingInProgress.c create mode 100644 src/tmx/Asn_J2735/src/2020/PersonalCrossingRequest.c create mode 100644 src/tmx/Asn_J2735/src/2020/PersonalDeviceUsageState.c create mode 100644 src/tmx/Asn_J2735/src/2020/PersonalDeviceUserType.c create mode 100644 src/tmx/Asn_J2735/src/2020/PersonalSafetyMessage.c create mode 100644 src/tmx/Asn_J2735/src/2020/PivotPointDescription.c create mode 100644 src/tmx/Asn_J2735/src/2020/PivotingAllowed.c create mode 100644 src/tmx/Asn_J2735/src/2020/Position3D-addGrpB.c create mode 100644 src/tmx/Asn_J2735/src/2020/Position3D-addGrpC.c create mode 100644 src/tmx/Asn_J2735/src/2020/Position3D.c create mode 100644 src/tmx/Asn_J2735/src/2020/PositionConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/PositionConfidenceSet.c create mode 100644 src/tmx/Asn_J2735/src/2020/PositionalAccuracy.c create mode 100644 src/tmx/Asn_J2735/src/2020/PreemptPriorityList.c create mode 100644 src/tmx/Asn_J2735/src/2020/PrioritizationResponse.c create mode 100644 src/tmx/Asn_J2735/src/2020/PrioritizationResponseList.c create mode 100644 src/tmx/Asn_J2735/src/2020/PrioritizationResponseStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/Priority.c create mode 100644 src/tmx/Asn_J2735/src/2020/PriorityRequestType.c create mode 100644 src/tmx/Asn_J2735/src/2020/PrivilegedEventFlags.c create mode 100644 src/tmx/Asn_J2735/src/2020/PrivilegedEvents.c create mode 100644 src/tmx/Asn_J2735/src/2020/ProbeDataManagement.c create mode 100644 src/tmx/Asn_J2735/src/2020/ProbeSegmentNumber.c create mode 100644 src/tmx/Asn_J2735/src/2020/ProbeVehicleData.c create mode 100644 src/tmx/Asn_J2735/src/2020/PropelledInformation.c create mode 100644 src/tmx/Asn_J2735/src/2020/PublicSafetyAndRoadWorkerActivity.c create mode 100644 src/tmx/Asn_J2735/src/2020/PublicSafetyDirectingTrafficSubType.c create mode 100644 src/tmx/Asn_J2735/src/2020/PublicSafetyEventResponderWorkerType.c create mode 100644 src/tmx/Asn_J2735/src/2020/RTCM-Revision.c create mode 100644 src/tmx/Asn_J2735/src/2020/RTCMPackage.c create mode 100644 src/tmx/Asn_J2735/src/2020/RTCMcorrections.c create mode 100644 src/tmx/Asn_J2735/src/2020/RTCMheader.c create mode 100644 src/tmx/Asn_J2735/src/2020/RTCMmessage.c create mode 100644 src/tmx/Asn_J2735/src/2020/RTCMmessageList.c create mode 100644 src/tmx/Asn_J2735/src/2020/Radius-B12.c create mode 100644 src/tmx/Asn_J2735/src/2020/RadiusOfCurvature.c create mode 100644 src/tmx/Asn_J2735/src/2020/RainSensor.c create mode 100644 src/tmx/Asn_J2735/src/2020/RegionId.c create mode 100644 src/tmx/Asn_J2735/src/2020/RegionList.c create mode 100644 src/tmx/Asn_J2735/src/2020/RegionOffsets.c create mode 100644 src/tmx/Asn_J2735/src/2020/RegionPointSet.c create mode 100644 src/tmx/Asn_J2735/src/2020/RegionalExtension.c create mode 100644 src/tmx/Asn_J2735/src/2020/RegulatorySpeedLimit.c create mode 100644 src/tmx/Asn_J2735/src/2020/RequestID.c create mode 100644 src/tmx/Asn_J2735/src/2020/RequestImportanceLevel.c create mode 100644 src/tmx/Asn_J2735/src/2020/RequestSubRole.c create mode 100644 src/tmx/Asn_J2735/src/2020/RequestedItem.c create mode 100644 src/tmx/Asn_J2735/src/2020/RequestedItemList.c create mode 100644 src/tmx/Asn_J2735/src/2020/RequestorDescription.c create mode 100644 src/tmx/Asn_J2735/src/2020/RequestorPositionVector.c create mode 100644 src/tmx/Asn_J2735/src/2020/RequestorType.c create mode 100644 src/tmx/Asn_J2735/src/2020/ResponderGroupAffected.c create mode 100644 src/tmx/Asn_J2735/src/2020/ResponseType.c create mode 100644 src/tmx/Asn_J2735/src/2020/RestrictionAppliesTo.c create mode 100644 src/tmx/Asn_J2735/src/2020/RestrictionClassAssignment.c create mode 100644 src/tmx/Asn_J2735/src/2020/RestrictionClassID.c create mode 100644 src/tmx/Asn_J2735/src/2020/RestrictionClassList.c create mode 100644 src/tmx/Asn_J2735/src/2020/RestrictionUserType-addGrpC.c create mode 100644 src/tmx/Asn_J2735/src/2020/RestrictionUserType.c create mode 100644 src/tmx/Asn_J2735/src/2020/RestrictionUserTypeList.c create mode 100644 src/tmx/Asn_J2735/src/2020/RoadLaneSetList.c create mode 100644 src/tmx/Asn_J2735/src/2020/RoadRegulatorID.c create mode 100644 src/tmx/Asn_J2735/src/2020/RoadSegment.c create mode 100644 src/tmx/Asn_J2735/src/2020/RoadSegmentID.c create mode 100644 src/tmx/Asn_J2735/src/2020/RoadSegmentList.c create mode 100644 src/tmx/Asn_J2735/src/2020/RoadSegmentReferenceID.c create mode 100644 src/tmx/Asn_J2735/src/2020/RoadSideAlert.c create mode 100644 src/tmx/Asn_J2735/src/2020/RoadSignID.c create mode 100644 src/tmx/Asn_J2735/src/2020/RoadwayCrownAngle.c create mode 100644 src/tmx/Asn_J2735/src/2020/SPAT.c create mode 100644 src/tmx/Asn_J2735/src/2020/SPAT_TimeMark.c create mode 100644 src/tmx/Asn_J2735/src/2020/SSPindex.c create mode 100644 src/tmx/Asn_J2735/src/2020/Sample.c create mode 100644 src/tmx/Asn_J2735/src/2020/Scale-B12.c create mode 100644 src/tmx/Asn_J2735/src/2020/Second.c create mode 100644 src/tmx/Asn_J2735/src/2020/SecondOfTime.c create mode 100644 src/tmx/Asn_J2735/src/2020/SecondsAngle.c create mode 100644 src/tmx/Asn_J2735/src/2020/SegmentAttributeLL.c create mode 100644 src/tmx/Asn_J2735/src/2020/SegmentAttributeLLList.c create mode 100644 src/tmx/Asn_J2735/src/2020/SegmentAttributeXY.c create mode 100644 src/tmx/Asn_J2735/src/2020/SegmentAttributeXYList.c create mode 100644 src/tmx/Asn_J2735/src/2020/SemiMajorAxisAccuracy.c create mode 100644 src/tmx/Asn_J2735/src/2020/SemiMajorAxisOrientation.c create mode 100644 src/tmx/Asn_J2735/src/2020/SemiMinorAxisAccuracy.c create mode 100644 src/tmx/Asn_J2735/src/2020/ShapePointSet.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignPrority.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalControlZone.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalGroupID.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalHeadLocation.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalHeadLocationList.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalReqScheme.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalRequest.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalRequestList.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalRequestMessage.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalRequestPackage.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalRequesterInfo.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalStatusList.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalStatusMessage.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalStatusPackage.c create mode 100644 src/tmx/Asn_J2735/src/2020/SignalStatusPackageList.c create mode 100644 src/tmx/Asn_J2735/src/2020/SirenInUse.c create mode 100644 src/tmx/Asn_J2735/src/2020/Snapshot.c create mode 100644 src/tmx/Asn_J2735/src/2020/SnapshotDistance.c create mode 100644 src/tmx/Asn_J2735/src/2020/SnapshotTime.c create mode 100644 src/tmx/Asn_J2735/src/2020/SpecialVehicleExtensions.c create mode 100644 src/tmx/Asn_J2735/src/2020/Speed.c create mode 100644 src/tmx/Asn_J2735/src/2020/SpeedAdvice.c create mode 100644 src/tmx/Asn_J2735/src/2020/SpeedConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/SpeedLimit.c create mode 100644 src/tmx/Asn_J2735/src/2020/SpeedLimitList.c create mode 100644 src/tmx/Asn_J2735/src/2020/SpeedLimitType.c create mode 100644 src/tmx/Asn_J2735/src/2020/SpeedProfile.c create mode 100644 src/tmx/Asn_J2735/src/2020/SpeedProfileMeasurement.c create mode 100644 src/tmx/Asn_J2735/src/2020/SpeedProfileMeasurementList.c create mode 100644 src/tmx/Asn_J2735/src/2020/SpeedandHeadingandThrottleConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/StabilityControlStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/StationID.c create mode 100644 src/tmx/Asn_J2735/src/2020/SteeringAxleLubePressure.c create mode 100644 src/tmx/Asn_J2735/src/2020/SteeringAxleTemperature.c create mode 100644 src/tmx/Asn_J2735/src/2020/SteeringWheelAngle.c create mode 100644 src/tmx/Asn_J2735/src/2020/SteeringWheelAngleConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/SteeringWheelAngleRateOfChange.c create mode 100644 src/tmx/Asn_J2735/src/2020/SummerTime.c create mode 100644 src/tmx/Asn_J2735/src/2020/SunSensor.c create mode 100644 src/tmx/Asn_J2735/src/2020/SupplementalVehicleExtensions.c create mode 100644 src/tmx/Asn_J2735/src/2020/TemporaryID.c create mode 100644 src/tmx/Asn_J2735/src/2020/TenthSecond.c create mode 100644 src/tmx/Asn_J2735/src/2020/TermDistance.c create mode 100644 src/tmx/Asn_J2735/src/2020/TermTime.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage00.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage01.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage02.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage03.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage04.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage05.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage06.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage07.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage08.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage09.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage10.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage11.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage12.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage13.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage14.c create mode 100644 src/tmx/Asn_J2735/src/2020/TestMessage15.c create mode 100644 src/tmx/Asn_J2735/src/2020/ThrottleConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/ThrottlePosition.c create mode 100644 src/tmx/Asn_J2735/src/2020/TimeChangeDetails.c create mode 100644 src/tmx/Asn_J2735/src/2020/TimeConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/TimeIntervalConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/TimeOffset.c create mode 100644 src/tmx/Asn_J2735/src/2020/TimeRemaining.c create mode 100644 src/tmx/Asn_J2735/src/2020/TireData.c create mode 100644 src/tmx/Asn_J2735/src/2020/TireDataList.c create mode 100644 src/tmx/Asn_J2735/src/2020/TireLeakageRate.c create mode 100644 src/tmx/Asn_J2735/src/2020/TireLocation.c create mode 100644 src/tmx/Asn_J2735/src/2020/TirePressure.c create mode 100644 src/tmx/Asn_J2735/src/2020/TirePressureThresholdDetection.c create mode 100644 src/tmx/Asn_J2735/src/2020/TireTemp.c create mode 100644 src/tmx/Asn_J2735/src/2020/TractionControlStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/TrailerData.c create mode 100644 src/tmx/Asn_J2735/src/2020/TrailerHistoryPoint.c create mode 100644 src/tmx/Asn_J2735/src/2020/TrailerHistoryPointList.c create mode 100644 src/tmx/Asn_J2735/src/2020/TrailerMass.c create mode 100644 src/tmx/Asn_J2735/src/2020/TrailerUnitDescription.c create mode 100644 src/tmx/Asn_J2735/src/2020/TrailerUnitDescriptionList.c create mode 100644 src/tmx/Asn_J2735/src/2020/TrailerWeight.c create mode 100644 src/tmx/Asn_J2735/src/2020/TransitStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/TransitVehicleOccupancy.c create mode 100644 src/tmx/Asn_J2735/src/2020/TransitVehicleStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/TransmissionAndSpeed.c create mode 100644 src/tmx/Asn_J2735/src/2020/TransmissionState.c create mode 100644 src/tmx/Asn_J2735/src/2020/TravelerDataFrame.c create mode 100644 src/tmx/Asn_J2735/src/2020/TravelerDataFrameList.c create mode 100644 src/tmx/Asn_J2735/src/2020/TravelerInfoType.c create mode 100644 src/tmx/Asn_J2735/src/2020/TravelerInformation.c create mode 100644 src/tmx/Asn_J2735/src/2020/URL-Base.c create mode 100644 src/tmx/Asn_J2735/src/2020/URL-Link.c create mode 100644 src/tmx/Asn_J2735/src/2020/URL-Short.c create mode 100644 src/tmx/Asn_J2735/src/2020/UniqueMSGID.c create mode 100644 src/tmx/Asn_J2735/src/2020/UserSizeAndBehaviour.c create mode 100644 src/tmx/Asn_J2735/src/2020/VINstring.c create mode 100644 src/tmx/Asn_J2735/src/2020/ValidRegion.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleClassification.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleData.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleEventFlags.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleGroupAffected.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleHeight.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleID.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleIdent.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleLength.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleMass.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleSafetyExtensions.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleSize.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleStatusDeviceTypeTag.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleStatusRequest.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleStatusRequestList.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleToLanePosition.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleToLanePositionList.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleType.c create mode 100644 src/tmx/Asn_J2735/src/2020/VehicleWidth.c create mode 100644 src/tmx/Asn_J2735/src/2020/Velocity.c create mode 100644 src/tmx/Asn_J2735/src/2020/VertOffset-B07.c create mode 100644 src/tmx/Asn_J2735/src/2020/VertOffset-B08.c create mode 100644 src/tmx/Asn_J2735/src/2020/VertOffset-B09.c create mode 100644 src/tmx/Asn_J2735/src/2020/VertOffset-B10.c create mode 100644 src/tmx/Asn_J2735/src/2020/VertOffset-B11.c create mode 100644 src/tmx/Asn_J2735/src/2020/VertOffset-B12.c create mode 100644 src/tmx/Asn_J2735/src/2020/VerticalAcceleration.c create mode 100644 src/tmx/Asn_J2735/src/2020/VerticalAccelerationThreshold.c create mode 100644 src/tmx/Asn_J2735/src/2020/VerticalOffset.c create mode 100644 src/tmx/Asn_J2735/src/2020/WaitOnStopline.c create mode 100644 src/tmx/Asn_J2735/src/2020/WeatherProbe.c create mode 100644 src/tmx/Asn_J2735/src/2020/WeatherReport.c create mode 100644 src/tmx/Asn_J2735/src/2020/WheelEndElectFault.c create mode 100644 src/tmx/Asn_J2735/src/2020/WheelSensorStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/WiperRate.c create mode 100644 src/tmx/Asn_J2735/src/2020/WiperSet.c create mode 100644 src/tmx/Asn_J2735/src/2020/WiperStatus.c create mode 100644 src/tmx/Asn_J2735/src/2020/WorkZone.c create mode 100644 src/tmx/Asn_J2735/src/2020/YawRate.c create mode 100644 src/tmx/Asn_J2735/src/2020/YawRateConfidence.c create mode 100644 src/tmx/Asn_J2735/src/2020/Year.c create mode 100644 src/tmx/Asn_J2735/src/2020/ZoneLength.c create mode 100644 src/tmx/Asn_J2735/src/2020/Zoom.c create mode 100644 src/tmx/Asn_J2735/src/2020/aper_decoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/aper_encoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/aper_opentype.c create mode 100644 src/tmx/Asn_J2735/src/2020/aper_support.c create mode 100644 src/tmx/Asn_J2735/src/2020/asn_SEQUENCE_OF.c create mode 100644 src/tmx/Asn_J2735/src/2020/asn_SET_OF.c create mode 100644 src/tmx/Asn_J2735/src/2020/asn_application.c create mode 100644 src/tmx/Asn_J2735/src/2020/asn_bit_data.c create mode 100644 src/tmx/Asn_J2735/src/2020/asn_codecs_prim.c create mode 100644 src/tmx/Asn_J2735/src/2020/asn_codecs_prim_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/asn_codecs_prim_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/asn_internal.c create mode 100644 src/tmx/Asn_J2735/src/2020/asn_random_fill.c create mode 100644 src/tmx/Asn_J2735/src/2020/ber_decoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/ber_tlv_length.c create mode 100644 src/tmx/Asn_J2735/src/2020/ber_tlv_tag.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_CHOICE.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_CHOICE_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_CHOICE_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_CHOICE_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_CHOICE_oer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_CHOICE_print.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_CHOICE_rfill.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_CHOICE_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_CHOICE_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_oer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_print.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_rfill.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SET_OF.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SET_OF_aper.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SET_OF_ber.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SET_OF_jer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SET_OF_oer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SET_OF_print.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SET_OF_rfill.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SET_OF_uper.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_SET_OF_xer.c create mode 100644 src/tmx/Asn_J2735/src/2020/constr_TYPE.c create mode 100644 src/tmx/Asn_J2735/src/2020/constraints.c create mode 100644 src/tmx/Asn_J2735/src/2020/der_encoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/jer_encoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/oer_decoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/oer_encoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/oer_support.c create mode 100644 src/tmx/Asn_J2735/src/2020/pdu_collection.c create mode 100644 src/tmx/Asn_J2735/src/2020/per_decoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/per_encoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/per_opentype.c create mode 100644 src/tmx/Asn_J2735/src/2020/per_support.c create mode 100644 src/tmx/Asn_J2735/src/2020/uper_decoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/uper_encoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/uper_opentype.c create mode 100644 src/tmx/Asn_J2735/src/2020/uper_support.c create mode 100644 src/tmx/Asn_J2735/src/2020/xer_decoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/xer_encoder.c create mode 100644 src/tmx/Asn_J2735/src/2020/xer_support.c diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ANY.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ANY.h new file mode 100644 index 000000000..871ed5ed3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ANY.h @@ -0,0 +1,84 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_ANY_H +#define ASN_TYPE_ANY_H + +#include /* Implemented via OCTET STRING type */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ANY { + uint8_t *buf; /* BER-encoded ANY contents */ + int size; /* Size of the above buffer */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} ANY_t; + +extern asn_TYPE_descriptor_t asn_DEF_ANY; +extern asn_TYPE_operation_t asn_OP_ANY; +extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; + +#define ANY_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define ANY_print OCTET_STRING_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define ANY_compare OCTET_STRING_compare + +#define ANY_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define ANY_decode_ber OCTET_STRING_decode_ber +#define ANY_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define ANY_decode_xer OCTET_STRING_decode_xer_hex +xer_type_encoder_f ANY_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f ANY_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f ANY_decode_uper; +per_type_encoder_f ANY_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f ANY_decode_aper; +per_type_encoder_f ANY_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +/****************************** + * Handy conversion routines. * + ******************************/ + +/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ +int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); +ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); +#if !defined(ASN_DISABLE_APER_SUPPORT) +int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); +ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +/* Convert the contents of the ANY type into the specified type. */ +int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); +#if !defined(ASN_DISABLE_APER_SUPPORT) +int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) +#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ + &asn_DEF_ANY, (buf), (size)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_TYPE_ANY_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AccelSteerYawRateConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AccelSteerYawRateConfidence.h new file mode 100644 index 000000000..8fec9059e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AccelSteerYawRateConfidence.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AccelSteerYawRateConfidence_H_ +#define _AccelSteerYawRateConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "YawRateConfidence.h" +#include "AccelerationConfidence.h" +#include "SteeringWheelAngleConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AccelSteerYawRateConfidence */ +typedef struct AccelSteerYawRateConfidence { + YawRateConfidence_t yawRate; + AccelerationConfidence_t acceleration; + SteeringWheelAngleConfidence_t steeringWheelAngle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AccelSteerYawRateConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccelSteerYawRateConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_AccelSteerYawRateConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_AccelSteerYawRateConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelSteerYawRateConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Acceleration.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Acceleration.h new file mode 100644 index 000000000..4abddc42b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Acceleration.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Acceleration_H_ +#define _Acceleration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Acceleration */ +typedef long Acceleration_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Acceleration_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Acceleration; +asn_struct_free_f Acceleration_free; +asn_struct_print_f Acceleration_print; +asn_constr_check_f Acceleration_constraint; +ber_type_decoder_f Acceleration_decode_ber; +der_type_encoder_f Acceleration_encode_der; +xer_type_decoder_f Acceleration_decode_xer; +xer_type_encoder_f Acceleration_encode_xer; +jer_type_encoder_f Acceleration_encode_jer; +oer_type_decoder_f Acceleration_decode_oer; +oer_type_encoder_f Acceleration_encode_oer; +per_type_decoder_f Acceleration_decode_uper; +per_type_encoder_f Acceleration_encode_uper; +per_type_decoder_f Acceleration_decode_aper; +per_type_encoder_f Acceleration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Acceleration_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AccelerationConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AccelerationConfidence.h new file mode 100644 index 000000000..50e9e6db4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AccelerationConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AccelerationConfidence_H_ +#define _AccelerationConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccelerationConfidence { + AccelerationConfidence_unavailable = 0, + AccelerationConfidence_accl_100_00 = 1, + AccelerationConfidence_accl_010_00 = 2, + AccelerationConfidence_accl_005_00 = 3, + AccelerationConfidence_accl_001_00 = 4, + AccelerationConfidence_accl_000_10 = 5, + AccelerationConfidence_accl_000_05 = 6, + AccelerationConfidence_accl_000_01 = 7 +} e_AccelerationConfidence; + +/* AccelerationConfidence */ +typedef long AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AccelerationConfidence_specs_1; +asn_struct_free_f AccelerationConfidence_free; +asn_struct_print_f AccelerationConfidence_print; +asn_constr_check_f AccelerationConfidence_constraint; +ber_type_decoder_f AccelerationConfidence_decode_ber; +der_type_encoder_f AccelerationConfidence_encode_der; +xer_type_decoder_f AccelerationConfidence_decode_xer; +xer_type_encoder_f AccelerationConfidence_encode_xer; +jer_type_encoder_f AccelerationConfidence_encode_jer; +oer_type_decoder_f AccelerationConfidence_decode_oer; +oer_type_encoder_f AccelerationConfidence_encode_oer; +per_type_decoder_f AccelerationConfidence_decode_uper; +per_type_encoder_f AccelerationConfidence_encode_uper; +per_type_decoder_f AccelerationConfidence_decode_aper; +per_type_encoder_f AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AccelerationSet4Way.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AccelerationSet4Way.h new file mode 100644 index 000000000..5f41c4e51 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AccelerationSet4Way.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AccelerationSet4Way_H_ +#define _AccelerationSet4Way_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Acceleration.h" +#include "VerticalAcceleration.h" +#include "YawRate.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AccelerationSet4Way */ +typedef struct AccelerationSet4Way { + Acceleration_t Long; + Acceleration_t lat; + VerticalAcceleration_t vert; + YawRate_t yaw; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AccelerationSet4Way_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AccelerationSet4Way; +extern asn_SEQUENCE_specifics_t asn_SPC_AccelerationSet4Way_specs_1; +extern asn_TYPE_member_t asn_MBR_AccelerationSet4Way_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccelerationSet4Way_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_Angle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_Angle.h new file mode 100644 index 000000000..f057e4788 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_Angle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AddGrpB_Angle_H_ +#define _AddGrpB_Angle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AddGrpB_Angle */ +typedef long AddGrpB_Angle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AddGrpB_Angle; +asn_struct_free_f AddGrpB_Angle_free; +asn_struct_print_f AddGrpB_Angle_print; +asn_constr_check_f AddGrpB_Angle_constraint; +ber_type_decoder_f AddGrpB_Angle_decode_ber; +der_type_encoder_f AddGrpB_Angle_encode_der; +xer_type_decoder_f AddGrpB_Angle_decode_xer; +xer_type_encoder_f AddGrpB_Angle_encode_xer; +jer_type_encoder_f AddGrpB_Angle_encode_jer; +oer_type_decoder_f AddGrpB_Angle_decode_oer; +oer_type_encoder_f AddGrpB_Angle_encode_oer; +per_type_decoder_f AddGrpB_Angle_decode_uper; +per_type_encoder_f AddGrpB_Angle_encode_uper; +per_type_decoder_f AddGrpB_Angle_decode_aper; +per_type_encoder_f AddGrpB_Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AddGrpB_Angle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_Elevation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_Elevation.h new file mode 100644 index 000000000..cd8e4fa81 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_Elevation.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AddGrpB_Elevation_H_ +#define _AddGrpB_Elevation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AddGrpB_Elevation */ +typedef long AddGrpB_Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AddGrpB_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AddGrpB_Elevation; +asn_struct_free_f AddGrpB_Elevation_free; +asn_struct_print_f AddGrpB_Elevation_print; +asn_constr_check_f AddGrpB_Elevation_constraint; +ber_type_decoder_f AddGrpB_Elevation_decode_ber; +der_type_encoder_f AddGrpB_Elevation_encode_der; +xer_type_decoder_f AddGrpB_Elevation_decode_xer; +xer_type_encoder_f AddGrpB_Elevation_encode_xer; +jer_type_encoder_f AddGrpB_Elevation_encode_jer; +oer_type_decoder_f AddGrpB_Elevation_decode_oer; +oer_type_encoder_f AddGrpB_Elevation_encode_oer; +per_type_decoder_f AddGrpB_Elevation_decode_uper; +per_type_encoder_f AddGrpB_Elevation_encode_uper; +per_type_decoder_f AddGrpB_Elevation_decode_aper; +per_type_encoder_f AddGrpB_Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AddGrpB_Elevation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_MsgCount.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_MsgCount.h new file mode 100644 index 000000000..891ef20a1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_MsgCount.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AddGrpB_MsgCount_H_ +#define _AddGrpB_MsgCount_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AddGrpB_MsgCount */ +typedef long AddGrpB_MsgCount_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AddGrpB_MsgCount; +asn_struct_free_f AddGrpB_MsgCount_free; +asn_struct_print_f AddGrpB_MsgCount_print; +asn_constr_check_f AddGrpB_MsgCount_constraint; +ber_type_decoder_f AddGrpB_MsgCount_decode_ber; +der_type_encoder_f AddGrpB_MsgCount_encode_der; +xer_type_decoder_f AddGrpB_MsgCount_decode_xer; +xer_type_encoder_f AddGrpB_MsgCount_encode_xer; +jer_type_encoder_f AddGrpB_MsgCount_encode_jer; +oer_type_decoder_f AddGrpB_MsgCount_decode_oer; +oer_type_encoder_f AddGrpB_MsgCount_encode_oer; +per_type_decoder_f AddGrpB_MsgCount_decode_uper; +per_type_encoder_f AddGrpB_MsgCount_encode_uper; +per_type_decoder_f AddGrpB_MsgCount_decode_aper; +per_type_encoder_f AddGrpB_MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AddGrpB_MsgCount_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_TimeMark.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_TimeMark.h new file mode 100644 index 000000000..c18bf6929 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AddGrpB_TimeMark.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AddGrpB_TimeMark_H_ +#define _AddGrpB_TimeMark_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Year.h" +#include "Month.h" +#include "Day.h" +#include "SummerTime.h" +#include "Holiday.h" +#include "DayOfWeek.h" +#include "Hour.h" +#include "Minute.h" +#include "Second.h" +#include "TenthSecond.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AddGrpB_TimeMark */ +typedef struct AddGrpB_TimeMark { + Year_t year; + Month_t month; + Day_t day; + SummerTime_t summerTime; + Holiday_t holiday; + DayOfWeek_t dayofWeek; + Hour_t hour; + Minute_t minute; + Second_t second; + TenthSecond_t tenthSecond; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AddGrpB_TimeMark_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AddGrpB_TimeMark; + +#ifdef __cplusplus +} +#endif + +#endif /* _AddGrpB_TimeMark_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeed.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeed.h new file mode 100644 index 000000000..deb8031f4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeed.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AdvisorySpeed_H_ +#define _AdvisorySpeed_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AdvisorySpeedType.h" +#include "SpeedAdvice.h" +#include "SpeedConfidence.h" +#include "ZoneLength.h" +#include "RestrictionClassID.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_AdvisorySpeed; + +/* AdvisorySpeed */ +typedef struct AdvisorySpeed { + AdvisorySpeedType_t type; + SpeedAdvice_t *speed; /* OPTIONAL */ + SpeedConfidence_t *confidence; /* OPTIONAL */ + ZoneLength_t *distance; /* OPTIONAL */ + RestrictionClassID_t *Class; /* OPTIONAL */ + struct AdvisorySpeed__regional { + A_SEQUENCE_OF(struct Reg_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeed_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeedList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeedList.h new file mode 100644 index 000000000..5a6f807cf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AdvisorySpeedList_H_ +#define _AdvisorySpeedList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AdvisorySpeed; + +/* AdvisorySpeedList */ +typedef struct AdvisorySpeedList { + A_SEQUENCE_OF(struct AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeedType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeedType.h new file mode 100644 index 000000000..2e65eafeb --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AdvisorySpeedType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AdvisorySpeedType_H_ +#define _AdvisorySpeedType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AdvisorySpeedType { + AdvisorySpeedType_none = 0, + AdvisorySpeedType_greenwave = 1, + AdvisorySpeedType_ecoDrive = 2, + AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_AdvisorySpeedType; + +/* AdvisorySpeedType */ +typedef long AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1; +asn_struct_free_f AdvisorySpeedType_free; +asn_struct_print_f AdvisorySpeedType_print; +asn_constr_check_f AdvisorySpeedType_constraint; +ber_type_decoder_f AdvisorySpeedType_decode_ber; +der_type_encoder_f AdvisorySpeedType_encode_der; +xer_type_decoder_f AdvisorySpeedType_decode_xer; +xer_type_encoder_f AdvisorySpeedType_encode_xer; +jer_type_encoder_f AdvisorySpeedType_encode_jer; +oer_type_decoder_f AdvisorySpeedType_decode_oer; +oer_type_encoder_f AdvisorySpeedType_encode_oer; +per_type_decoder_f AdvisorySpeedType_decode_uper; +per_type_encoder_f AdvisorySpeedType_encode_uper; +per_type_decoder_f AdvisorySpeedType_decode_aper; +per_type_encoder_f AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdvisorySpeedType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AllowedManeuvers.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AllowedManeuvers.h new file mode 100644 index 000000000..a28b8ef42 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AllowedManeuvers.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AllowedManeuvers_H_ +#define _AllowedManeuvers_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AllowedManeuvers { + AllowedManeuvers_maneuverStraightAllowed = 0, + AllowedManeuvers_maneuverLeftAllowed = 1, + AllowedManeuvers_maneuverRightAllowed = 2, + AllowedManeuvers_maneuverUTurnAllowed = 3, + AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + AllowedManeuvers_maneuverLaneChangeAllowed = 6, + AllowedManeuvers_maneuverNoStoppingAllowed = 7, + AllowedManeuvers_yieldAllwaysRequired = 8, + AllowedManeuvers_goWithHalt = 9, + AllowedManeuvers_caution = 10, + AllowedManeuvers_reserved1 = 11 +} e_AllowedManeuvers; + +/* AllowedManeuvers */ +typedef BIT_STRING_t AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers; +asn_struct_free_f AllowedManeuvers_free; +asn_struct_print_f AllowedManeuvers_print; +asn_constr_check_f AllowedManeuvers_constraint; +ber_type_decoder_f AllowedManeuvers_decode_ber; +der_type_encoder_f AllowedManeuvers_encode_der; +xer_type_decoder_f AllowedManeuvers_decode_xer; +xer_type_encoder_f AllowedManeuvers_encode_xer; +jer_type_encoder_f AllowedManeuvers_encode_jer; +oer_type_decoder_f AllowedManeuvers_decode_oer; +oer_type_encoder_f AllowedManeuvers_encode_oer; +per_type_decoder_f AllowedManeuvers_decode_uper; +per_type_encoder_f AllowedManeuvers_encode_uper; +per_type_decoder_f AllowedManeuvers_decode_aper; +per_type_encoder_f AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AllowedManeuvers_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Altitude.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Altitude.h new file mode 100644 index 000000000..53f9f9c72 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Altitude_H_ +#define _Altitude_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Altitude */ +typedef struct Altitude { + AltitudeValue_t value; + AltitudeConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Altitude_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AltitudeConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AltitudeConfidence.h new file mode 100644 index 000000000..f50f6166c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AltitudeConfidence.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AltitudeConfidence_H_ +#define _AltitudeConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AltitudeConfidence { + AltitudeConfidence_alt_000_01 = 0, + AltitudeConfidence_alt_000_02 = 1, + AltitudeConfidence_alt_000_05 = 2, + AltitudeConfidence_alt_000_10 = 3, + AltitudeConfidence_alt_000_20 = 4, + AltitudeConfidence_alt_000_50 = 5, + AltitudeConfidence_alt_001_00 = 6, + AltitudeConfidence_alt_002_00 = 7, + AltitudeConfidence_alt_005_00 = 8, + AltitudeConfidence_alt_010_00 = 9, + AltitudeConfidence_alt_020_00 = 10, + AltitudeConfidence_alt_050_00 = 11, + AltitudeConfidence_alt_100_00 = 12, + AltitudeConfidence_alt_200_00 = 13, + AltitudeConfidence_outOfRange = 14, + AltitudeConfidence_unavailable = 15 +} e_AltitudeConfidence; + +/* AltitudeConfidence */ +typedef long AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1; +asn_struct_free_f AltitudeConfidence_free; +asn_struct_print_f AltitudeConfidence_print; +asn_constr_check_f AltitudeConfidence_constraint; +ber_type_decoder_f AltitudeConfidence_decode_ber; +der_type_encoder_f AltitudeConfidence_encode_der; +xer_type_decoder_f AltitudeConfidence_decode_xer; +xer_type_encoder_f AltitudeConfidence_encode_xer; +jer_type_encoder_f AltitudeConfidence_encode_jer; +oer_type_decoder_f AltitudeConfidence_decode_oer; +oer_type_encoder_f AltitudeConfidence_encode_oer; +per_type_decoder_f AltitudeConfidence_decode_uper; +per_type_encoder_f AltitudeConfidence_encode_uper; +per_type_decoder_f AltitudeConfidence_decode_aper; +per_type_encoder_f AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AltitudeValue.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AltitudeValue.h new file mode 100644 index 000000000..ac43c1d27 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AltitudeValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AltitudeValue_H_ +#define _AltitudeValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AltitudeValue */ +typedef long AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue; +asn_struct_free_f AltitudeValue_free; +asn_struct_print_f AltitudeValue_print; +asn_constr_check_f AltitudeValue_constraint; +ber_type_decoder_f AltitudeValue_decode_ber; +der_type_encoder_f AltitudeValue_encode_der; +xer_type_decoder_f AltitudeValue_decode_xer; +xer_type_encoder_f AltitudeValue_encode_xer; +jer_type_encoder_f AltitudeValue_encode_jer; +oer_type_decoder_f AltitudeValue_decode_oer; +oer_type_encoder_f AltitudeValue_encode_oer; +per_type_decoder_f AltitudeValue_decode_uper; +per_type_encoder_f AltitudeValue_encode_uper; +per_type_decoder_f AltitudeValue_decode_aper; +per_type_encoder_f AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AltitudeValue_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AmbientAirPressure.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AmbientAirPressure.h new file mode 100644 index 000000000..007db7042 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AmbientAirPressure.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AmbientAirPressure_H_ +#define _AmbientAirPressure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AmbientAirPressure */ +typedef long AmbientAirPressure_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AmbientAirPressure_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AmbientAirPressure; +asn_struct_free_f AmbientAirPressure_free; +asn_struct_print_f AmbientAirPressure_print; +asn_constr_check_f AmbientAirPressure_constraint; +ber_type_decoder_f AmbientAirPressure_decode_ber; +der_type_encoder_f AmbientAirPressure_encode_der; +xer_type_decoder_f AmbientAirPressure_decode_xer; +xer_type_encoder_f AmbientAirPressure_encode_xer; +jer_type_encoder_f AmbientAirPressure_encode_jer; +oer_type_decoder_f AmbientAirPressure_decode_oer; +oer_type_encoder_f AmbientAirPressure_encode_oer; +per_type_decoder_f AmbientAirPressure_decode_uper; +per_type_encoder_f AmbientAirPressure_encode_uper; +per_type_decoder_f AmbientAirPressure_decode_aper; +per_type_encoder_f AmbientAirPressure_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AmbientAirPressure_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AmbientAirTemperature.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AmbientAirTemperature.h new file mode 100644 index 000000000..11935cf9f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AmbientAirTemperature.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AmbientAirTemperature_H_ +#define _AmbientAirTemperature_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AmbientAirTemperature */ +typedef long AmbientAirTemperature_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AmbientAirTemperature_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AmbientAirTemperature; +asn_struct_free_f AmbientAirTemperature_free; +asn_struct_print_f AmbientAirTemperature_print; +asn_constr_check_f AmbientAirTemperature_constraint; +ber_type_decoder_f AmbientAirTemperature_decode_ber; +der_type_encoder_f AmbientAirTemperature_encode_der; +xer_type_decoder_f AmbientAirTemperature_decode_xer; +xer_type_encoder_f AmbientAirTemperature_encode_xer; +jer_type_encoder_f AmbientAirTemperature_encode_jer; +oer_type_decoder_f AmbientAirTemperature_decode_oer; +oer_type_encoder_f AmbientAirTemperature_encode_oer; +per_type_decoder_f AmbientAirTemperature_decode_uper; +per_type_encoder_f AmbientAirTemperature_encode_uper; +per_type_decoder_f AmbientAirTemperature_decode_aper; +per_type_encoder_f AmbientAirTemperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AmbientAirTemperature_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AnimalPropelledType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AnimalPropelledType.h new file mode 100644 index 000000000..b75c1bdcd --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AnimalPropelledType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AnimalPropelledType_H_ +#define _AnimalPropelledType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AnimalPropelledType { + AnimalPropelledType_unavailable = 0, + AnimalPropelledType_otherTypes = 1, + AnimalPropelledType_animalMounted = 2, + AnimalPropelledType_animalDrawnCarriage = 3 + /* + * Enumeration is extensible + */ +} e_AnimalPropelledType; + +/* AnimalPropelledType */ +typedef long AnimalPropelledType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AnimalPropelledType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AnimalPropelledType; +extern const asn_INTEGER_specifics_t asn_SPC_AnimalPropelledType_specs_1; +asn_struct_free_f AnimalPropelledType_free; +asn_struct_print_f AnimalPropelledType_print; +asn_constr_check_f AnimalPropelledType_constraint; +ber_type_decoder_f AnimalPropelledType_decode_ber; +der_type_encoder_f AnimalPropelledType_encode_der; +xer_type_decoder_f AnimalPropelledType_decode_xer; +xer_type_encoder_f AnimalPropelledType_encode_xer; +jer_type_encoder_f AnimalPropelledType_encode_jer; +oer_type_decoder_f AnimalPropelledType_decode_oer; +oer_type_encoder_f AnimalPropelledType_encode_oer; +per_type_decoder_f AnimalPropelledType_decode_uper; +per_type_encoder_f AnimalPropelledType_encode_uper; +per_type_decoder_f AnimalPropelledType_decode_aper; +per_type_encoder_f AnimalPropelledType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AnimalPropelledType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AnimalType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AnimalType.h new file mode 100644 index 000000000..986848a32 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AnimalType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AnimalType_H_ +#define _AnimalType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AnimalType { + AnimalType_unavailable = 0, + AnimalType_serviceUse = 1, + AnimalType_pet = 2, + AnimalType_farm = 3 + /* + * Enumeration is extensible + */ +} e_AnimalType; + +/* AnimalType */ +typedef long AnimalType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AnimalType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AnimalType; +extern const asn_INTEGER_specifics_t asn_SPC_AnimalType_specs_1; +asn_struct_free_f AnimalType_free; +asn_struct_print_f AnimalType_print; +asn_constr_check_f AnimalType_constraint; +ber_type_decoder_f AnimalType_decode_ber; +der_type_encoder_f AnimalType_encode_der; +xer_type_decoder_f AnimalType_decode_xer; +xer_type_encoder_f AnimalType_encode_xer; +jer_type_encoder_f AnimalType_encode_jer; +oer_type_decoder_f AnimalType_decode_oer; +oer_type_encoder_f AnimalType_encode_oer; +per_type_decoder_f AnimalType_decode_uper; +per_type_encoder_f AnimalType_encode_uper; +per_type_decoder_f AnimalType_decode_aper; +per_type_encoder_f AnimalType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AnimalType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AntennaOffsetSet.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AntennaOffsetSet.h new file mode 100644 index 000000000..49a4a130d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AntennaOffsetSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AntennaOffsetSet_H_ +#define _AntennaOffsetSet_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Offset-B12.h" +#include "Offset-B09.h" +#include "Offset-B10.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AntennaOffsetSet */ +typedef struct AntennaOffsetSet { + Offset_B12_t antOffsetX; + Offset_B09_t antOffsetY; + Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AntennaOffsetSet_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AntiLockBrakeStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AntiLockBrakeStatus.h new file mode 100644 index 000000000..a7b997226 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AntiLockBrakeStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AntiLockBrakeStatus_H_ +#define _AntiLockBrakeStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AntiLockBrakeStatus { + AntiLockBrakeStatus_unavailable = 0, + AntiLockBrakeStatus_off = 1, + AntiLockBrakeStatus_on = 2, + AntiLockBrakeStatus_engaged = 3 +} e_AntiLockBrakeStatus; + +/* AntiLockBrakeStatus */ +typedef long AntiLockBrakeStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AntiLockBrakeStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AntiLockBrakeStatus; +extern const asn_INTEGER_specifics_t asn_SPC_AntiLockBrakeStatus_specs_1; +asn_struct_free_f AntiLockBrakeStatus_free; +asn_struct_print_f AntiLockBrakeStatus_print; +asn_constr_check_f AntiLockBrakeStatus_constraint; +ber_type_decoder_f AntiLockBrakeStatus_decode_ber; +der_type_encoder_f AntiLockBrakeStatus_encode_der; +xer_type_decoder_f AntiLockBrakeStatus_decode_xer; +xer_type_encoder_f AntiLockBrakeStatus_encode_xer; +jer_type_encoder_f AntiLockBrakeStatus_encode_jer; +oer_type_decoder_f AntiLockBrakeStatus_decode_oer; +oer_type_encoder_f AntiLockBrakeStatus_encode_oer; +per_type_decoder_f AntiLockBrakeStatus_decode_uper; +per_type_encoder_f AntiLockBrakeStatus_encode_uper; +per_type_decoder_f AntiLockBrakeStatus_decode_aper; +per_type_encoder_f AntiLockBrakeStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AntiLockBrakeStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ApproachID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ApproachID.h new file mode 100644 index 000000000..b3bdd88f8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ApproachID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ApproachID_H_ +#define _ApproachID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ApproachID */ +typedef long ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ApproachID; +asn_struct_free_f ApproachID_free; +asn_struct_print_f ApproachID_print; +asn_constr_check_f ApproachID_constraint; +ber_type_decoder_f ApproachID_decode_ber; +der_type_encoder_f ApproachID_encode_der; +xer_type_decoder_f ApproachID_decode_xer; +xer_type_encoder_f ApproachID_encode_xer; +jer_type_encoder_f ApproachID_encode_jer; +oer_type_decoder_f ApproachID_decode_oer; +oer_type_encoder_f ApproachID_encode_oer; +per_type_decoder_f ApproachID_decode_uper; +per_type_encoder_f ApproachID_encode_uper; +per_type_decoder_f ApproachID_decode_aper; +per_type_encoder_f ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ApproachID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ApproachOrLane.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ApproachOrLane.h new file mode 100644 index 000000000..e3684972d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ApproachOrLane.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IntersectionCollision" + * found in "J2735-IntersectionCollision.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ApproachOrLane_H_ +#define _ApproachOrLane_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ApproachID.h" +#include "LaneID.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ApproachOrLane_PR { + ApproachOrLane_PR_NOTHING, /* No components present */ + ApproachOrLane_PR_approach, + ApproachOrLane_PR_lane +} ApproachOrLane_PR; + +/* ApproachOrLane */ +typedef struct ApproachOrLane { + ApproachOrLane_PR present; + union ApproachOrLane_u { + ApproachID_t approach; + LaneID_t lane; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ApproachOrLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ApproachOrLane; +extern asn_CHOICE_specifics_t asn_SPC_ApproachOrLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ApproachOrLane_1[2]; +extern asn_per_constraints_t asn_PER_type_ApproachOrLane_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ApproachOrLane_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Attachment.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Attachment.h new file mode 100644 index 000000000..300cb2804 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Attachment.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Attachment_H_ +#define _Attachment_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Attachment { + Attachment_unavailable = 0, + Attachment_stroller = 1, + Attachment_bicycleTrailer = 2, + Attachment_cart = 3, + Attachment_wheelchair = 4, + Attachment_otherWalkAssistAttachments = 5, + Attachment_pet = 6 + /* + * Enumeration is extensible + */ +} e_Attachment; + +/* Attachment */ +typedef long Attachment_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Attachment_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Attachment; +extern const asn_INTEGER_specifics_t asn_SPC_Attachment_specs_1; +asn_struct_free_f Attachment_free; +asn_struct_print_f Attachment_print; +asn_constr_check_f Attachment_constraint; +ber_type_decoder_f Attachment_decode_ber; +der_type_encoder_f Attachment_encode_der; +xer_type_decoder_f Attachment_decode_xer; +xer_type_encoder_f Attachment_encode_xer; +jer_type_encoder_f Attachment_encode_jer; +oer_type_decoder_f Attachment_decode_oer; +oer_type_encoder_f Attachment_encode_oer; +per_type_decoder_f Attachment_decode_uper; +per_type_encoder_f Attachment_encode_uper; +per_type_decoder_f Attachment_decode_aper; +per_type_encoder_f Attachment_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Attachment_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AttachmentRadius.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AttachmentRadius.h new file mode 100644 index 000000000..df9053a2d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AttachmentRadius.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AttachmentRadius_H_ +#define _AttachmentRadius_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AttachmentRadius */ +typedef long AttachmentRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AttachmentRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AttachmentRadius; +asn_struct_free_f AttachmentRadius_free; +asn_struct_print_f AttachmentRadius_print; +asn_constr_check_f AttachmentRadius_constraint; +ber_type_decoder_f AttachmentRadius_decode_ber; +der_type_encoder_f AttachmentRadius_encode_der; +xer_type_decoder_f AttachmentRadius_decode_xer; +xer_type_encoder_f AttachmentRadius_encode_xer; +jer_type_encoder_f AttachmentRadius_encode_jer; +oer_type_decoder_f AttachmentRadius_decode_oer; +oer_type_encoder_f AttachmentRadius_encode_oer; +per_type_decoder_f AttachmentRadius_decode_uper; +per_type_encoder_f AttachmentRadius_encode_uper; +per_type_decoder_f AttachmentRadius_decode_aper; +per_type_encoder_f AttachmentRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AttachmentRadius_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AuxiliaryBrakeStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AuxiliaryBrakeStatus.h new file mode 100644 index 000000000..01f47d009 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AuxiliaryBrakeStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AuxiliaryBrakeStatus_H_ +#define _AuxiliaryBrakeStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AuxiliaryBrakeStatus { + AuxiliaryBrakeStatus_unavailable = 0, + AuxiliaryBrakeStatus_off = 1, + AuxiliaryBrakeStatus_on = 2, + AuxiliaryBrakeStatus_reserved = 3 +} e_AuxiliaryBrakeStatus; + +/* AuxiliaryBrakeStatus */ +typedef long AuxiliaryBrakeStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AuxiliaryBrakeStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AuxiliaryBrakeStatus; +extern const asn_INTEGER_specifics_t asn_SPC_AuxiliaryBrakeStatus_specs_1; +asn_struct_free_f AuxiliaryBrakeStatus_free; +asn_struct_print_f AuxiliaryBrakeStatus_print; +asn_constr_check_f AuxiliaryBrakeStatus_constraint; +ber_type_decoder_f AuxiliaryBrakeStatus_decode_ber; +der_type_encoder_f AuxiliaryBrakeStatus_encode_der; +xer_type_decoder_f AuxiliaryBrakeStatus_decode_xer; +xer_type_encoder_f AuxiliaryBrakeStatus_encode_xer; +jer_type_encoder_f AuxiliaryBrakeStatus_encode_jer; +oer_type_decoder_f AuxiliaryBrakeStatus_decode_oer; +oer_type_encoder_f AuxiliaryBrakeStatus_encode_oer; +per_type_decoder_f AuxiliaryBrakeStatus_decode_uper; +per_type_encoder_f AuxiliaryBrakeStatus_encode_uper; +per_type_decoder_f AuxiliaryBrakeStatus_decode_aper; +per_type_encoder_f AuxiliaryBrakeStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AuxiliaryBrakeStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleLocation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleLocation.h new file mode 100644 index 000000000..bec5fc3be --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleLocation.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AxleLocation_H_ +#define _AxleLocation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AxleLocation */ +typedef long AxleLocation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AxleLocation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AxleLocation; +asn_struct_free_f AxleLocation_free; +asn_struct_print_f AxleLocation_print; +asn_constr_check_f AxleLocation_constraint; +ber_type_decoder_f AxleLocation_decode_ber; +der_type_encoder_f AxleLocation_encode_der; +xer_type_decoder_f AxleLocation_decode_xer; +xer_type_encoder_f AxleLocation_encode_xer; +jer_type_encoder_f AxleLocation_encode_jer; +oer_type_decoder_f AxleLocation_decode_oer; +oer_type_encoder_f AxleLocation_encode_oer; +per_type_decoder_f AxleLocation_decode_uper; +per_type_encoder_f AxleLocation_encode_uper; +per_type_decoder_f AxleLocation_decode_aper; +per_type_encoder_f AxleLocation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AxleLocation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeight.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeight.h new file mode 100644 index 000000000..9e5c2ffbf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeight.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AxleWeight_H_ +#define _AxleWeight_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AxleWeight */ +typedef long AxleWeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AxleWeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AxleWeight; +asn_struct_free_f AxleWeight_free; +asn_struct_print_f AxleWeight_print; +asn_constr_check_f AxleWeight_constraint; +ber_type_decoder_f AxleWeight_decode_ber; +der_type_encoder_f AxleWeight_encode_der; +xer_type_decoder_f AxleWeight_decode_xer; +xer_type_encoder_f AxleWeight_encode_xer; +jer_type_encoder_f AxleWeight_encode_jer; +oer_type_decoder_f AxleWeight_decode_oer; +oer_type_encoder_f AxleWeight_encode_oer; +per_type_decoder_f AxleWeight_decode_uper; +per_type_encoder_f AxleWeight_encode_uper; +per_type_decoder_f AxleWeight_decode_aper; +per_type_encoder_f AxleWeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AxleWeight_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeightList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeightList.h new file mode 100644 index 000000000..aaf56192c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeightList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AxleWeightList_H_ +#define _AxleWeightList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AxleWeightSet; + +/* AxleWeightList */ +typedef struct AxleWeightList { + A_SEQUENCE_OF(struct AxleWeightSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AxleWeightList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AxleWeightList; +extern asn_SET_OF_specifics_t asn_SPC_AxleWeightList_specs_1; +extern asn_TYPE_member_t asn_MBR_AxleWeightList_1[1]; +extern asn_per_constraints_t asn_PER_type_AxleWeightList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AxleWeightList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeightSet.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeightSet.h new file mode 100644 index 000000000..1e2e6343d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/AxleWeightSet.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _AxleWeightSet_H_ +#define _AxleWeightSet_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AxleLocation.h" +#include "AxleWeight.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AxleWeightSet */ +typedef struct AxleWeightSet { + AxleLocation_t *location; /* OPTIONAL */ + AxleWeight_t *weight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AxleWeightSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AxleWeightSet; +extern asn_SEQUENCE_specifics_t asn_SPC_AxleWeightSet_specs_1; +extern asn_TYPE_member_t asn_MBR_AxleWeightSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AxleWeightSet_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BIT_STRING.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BIT_STRING.h new file mode 100644 index 000000000..e755fe9f5 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BIT_STRING.h @@ -0,0 +1,75 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BIT_STRING_H_ +#define _BIT_STRING_H_ + +#include /* Some help from OCTET STRING */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct BIT_STRING_s { + uint8_t *buf; /* BIT STRING body */ + size_t size; /* Size of the above buffer */ + + int bits_unused;/* Unused trailing bits in the last octet (0..7) */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} BIT_STRING_t; + +extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; +extern asn_TYPE_operation_t asn_OP_BIT_STRING; +extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; + +#define BIT_STRING_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f BIT_STRING_print; /* Human-readable output */ +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f BIT_STRING_compare; + +asn_constr_check_f BIT_STRING_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define BIT_STRING_decode_ber OCTET_STRING_decode_ber +#define BIT_STRING_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary +xer_type_encoder_f BIT_STRING_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f BIT_STRING_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f BIT_STRING_decode_oer; +oer_type_encoder_f BIT_STRING_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f BIT_STRING_decode_uper; +per_type_encoder_f BIT_STRING_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define BIT_STRING_decode_aper OCTET_STRING_decode_aper +#define BIT_STRING_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f BIT_STRING_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +const BIT_STRING_t *BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp); + +#ifdef __cplusplus +} +#endif + +#endif /* _BIT_STRING_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BOOLEAN.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BOOLEAN.h new file mode 100644 index 000000000..2cbbe7101 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BOOLEAN.h @@ -0,0 +1,70 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BOOLEAN_H_ +#define _BOOLEAN_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The underlying integer may contain various values, but everything + * non-zero is capped to 0xff by the DER encoder. The BER decoder may + * yield non-zero values different from 1, beware. + */ +typedef unsigned BOOLEAN_t; + +extern asn_TYPE_descriptor_t asn_DEF_BOOLEAN; +extern asn_TYPE_operation_t asn_OP_BOOLEAN; + +asn_struct_free_f BOOLEAN_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f BOOLEAN_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f BOOLEAN_compare; + +#define BOOLEAN_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f BOOLEAN_decode_ber; +der_type_encoder_f BOOLEAN_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f BOOLEAN_decode_xer; +xer_type_encoder_f BOOLEAN_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f BOOLEAN_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f BOOLEAN_decode_oer; +oer_type_encoder_f BOOLEAN_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f BOOLEAN_decode_uper; +per_type_encoder_f BOOLEAN_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f BOOLEAN_decode_aper; +per_type_encoder_f BOOLEAN_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f BOOLEAN_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _BOOLEAN_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BSMcoreData.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BSMcoreData.h new file mode 100644 index 000000000..3f64b61e7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BSMcoreData.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _BSMcoreData_H_ +#define _BSMcoreData_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Common_MsgCount.h" +#include "TemporaryID.h" +#include "DSecond.h" +#include "Latitude.h" +#include "Longitude.h" +#include "Common_Elevation.h" +#include "PositionalAccuracy.h" +#include "TransmissionState.h" +#include "Speed.h" +#include "Heading.h" +#include "SteeringWheelAngle.h" +#include "AccelerationSet4Way.h" +#include "BrakeSystemStatus.h" +#include "VehicleSize.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* BSMcoreData */ +typedef struct BSMcoreData { + Common_MsgCount_t msgCnt; + TemporaryID_t id; + DSecond_t secMark; + Latitude_t lat; + Longitude_t Long; + Common_Elevation_t elev; + PositionalAccuracy_t accuracy; + TransmissionState_t transmission; + Speed_t speed; + Heading_t heading; + SteeringWheelAngle_t angle; + AccelerationSet4Way_t accelSet; + BrakeSystemStatus_t brakes; + VehicleSize_t size; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BSMcoreData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BSMcoreData; +extern asn_SEQUENCE_specifics_t asn_SPC_BSMcoreData_specs_1; +extern asn_TYPE_member_t asn_MBR_BSMcoreData_1[14]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BSMcoreData_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BasicSafetyMessage.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BasicSafetyMessage.h new file mode 100644 index 000000000..025a9841a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BasicSafetyMessage.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _BasicSafetyMessage_H_ +#define _BasicSafetyMessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BSMcoreData.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BSMpartIIExtension; +struct Reg_BasicSafetyMessage; + +/* BasicSafetyMessage */ +typedef struct BasicSafetyMessage { + BSMcoreData_t coreData; + struct BasicSafetyMessage__partII { + A_SEQUENCE_OF(struct BSMpartIIExtension) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *partII; + struct BasicSafetyMessage__regional { + A_SEQUENCE_OF(struct Reg_BasicSafetyMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BasicSafetyMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BasicSafetyMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_BasicSafetyMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_BasicSafetyMessage_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicSafetyMessage_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BasicVehicleClass.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BasicVehicleClass.h new file mode 100644 index 000000000..c24dc93e7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BasicVehicleClass.h @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _BasicVehicleClass_H_ +#define _BasicVehicleClass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* BasicVehicleClass */ +typedef long BasicVehicleClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BasicVehicleClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleClass; +asn_struct_free_f BasicVehicleClass_free; +asn_struct_print_f BasicVehicleClass_print; +asn_constr_check_f BasicVehicleClass_constraint; +ber_type_decoder_f BasicVehicleClass_decode_ber; +der_type_encoder_f BasicVehicleClass_encode_der; +xer_type_decoder_f BasicVehicleClass_decode_xer; +xer_type_encoder_f BasicVehicleClass_encode_xer; +jer_type_encoder_f BasicVehicleClass_encode_jer; +oer_type_decoder_f BasicVehicleClass_decode_oer; +oer_type_encoder_f BasicVehicleClass_encode_oer; +per_type_decoder_f BasicVehicleClass_decode_uper; +per_type_encoder_f BasicVehicleClass_encode_uper; +per_type_decoder_f BasicVehicleClass_decode_aper; +per_type_encoder_f BasicVehicleClass_encode_aper; +#define BasicVehicleClass_unknownVehicleClass ((BasicVehicleClass_t)0) +#define BasicVehicleClass_specialVehicleClass ((BasicVehicleClass_t)1) +#define BasicVehicleClass_passenger_Vehicle_TypeUnknown ((BasicVehicleClass_t)10) +#define BasicVehicleClass_passenger_Vehicle_TypeOther ((BasicVehicleClass_t)11) +#define BasicVehicleClass_lightTruck_Vehicle_TypeUnknown ((BasicVehicleClass_t)20) +#define BasicVehicleClass_lightTruck_Vehicle_TypeOther ((BasicVehicleClass_t)21) +#define BasicVehicleClass_truck_Vehicle_TypeUnknown ((BasicVehicleClass_t)25) +#define BasicVehicleClass_truck_Vehicle_TypeOther ((BasicVehicleClass_t)26) +#define BasicVehicleClass_truck_axleCnt2 ((BasicVehicleClass_t)27) +#define BasicVehicleClass_truck_axleCnt3 ((BasicVehicleClass_t)28) +#define BasicVehicleClass_truck_axleCnt4 ((BasicVehicleClass_t)29) +#define BasicVehicleClass_truck_axleCnt4Trailer ((BasicVehicleClass_t)30) +#define BasicVehicleClass_truck_axleCnt5Trailer ((BasicVehicleClass_t)31) +#define BasicVehicleClass_truck_axleCnt6Trailer ((BasicVehicleClass_t)32) +#define BasicVehicleClass_truck_axleCnt5MultiTrailer ((BasicVehicleClass_t)33) +#define BasicVehicleClass_truck_axleCnt6MultiTrailer ((BasicVehicleClass_t)34) +#define BasicVehicleClass_truck_axleCnt7MultiTrailer ((BasicVehicleClass_t)35) +#define BasicVehicleClass_motorcycle_TypeUnknown ((BasicVehicleClass_t)40) +#define BasicVehicleClass_motorcycle_TypeOther ((BasicVehicleClass_t)41) +#define BasicVehicleClass_motorcycle_Cruiser_Standard ((BasicVehicleClass_t)42) +#define BasicVehicleClass_motorcycle_SportUnclad ((BasicVehicleClass_t)43) +#define BasicVehicleClass_motorcycle_SportTouring ((BasicVehicleClass_t)44) +#define BasicVehicleClass_motorcycle_SuperSport ((BasicVehicleClass_t)45) +#define BasicVehicleClass_motorcycle_Touring ((BasicVehicleClass_t)46) +#define BasicVehicleClass_motorcycle_Trike ((BasicVehicleClass_t)47) +#define BasicVehicleClass_motorcycle_wPassengers ((BasicVehicleClass_t)48) +#define BasicVehicleClass_transit_TypeUnknown ((BasicVehicleClass_t)50) +#define BasicVehicleClass_transit_TypeOther ((BasicVehicleClass_t)51) +#define BasicVehicleClass_transit_BRT ((BasicVehicleClass_t)52) +#define BasicVehicleClass_transit_ExpressBus ((BasicVehicleClass_t)53) +#define BasicVehicleClass_transit_LocalBus ((BasicVehicleClass_t)54) +#define BasicVehicleClass_transit_SchoolBus ((BasicVehicleClass_t)55) +#define BasicVehicleClass_transit_FixedGuideway ((BasicVehicleClass_t)56) +#define BasicVehicleClass_transit_Paratransit ((BasicVehicleClass_t)57) +#define BasicVehicleClass_transit_Paratransit_Ambulance ((BasicVehicleClass_t)58) +#define BasicVehicleClass_emergency_TypeUnknown ((BasicVehicleClass_t)60) +#define BasicVehicleClass_emergency_TypeOther ((BasicVehicleClass_t)61) +#define BasicVehicleClass_emergency_Fire_Light_Vehicle ((BasicVehicleClass_t)62) +#define BasicVehicleClass_emergency_Fire_Heavy_Vehicle ((BasicVehicleClass_t)63) +#define BasicVehicleClass_emergency_Fire_Paramedic_Vehicle ((BasicVehicleClass_t)64) +#define BasicVehicleClass_emergency_Fire_Ambulance_Vehicle ((BasicVehicleClass_t)65) +#define BasicVehicleClass_emergency_Police_Light_Vehicle ((BasicVehicleClass_t)66) +#define BasicVehicleClass_emergency_Police_Heavy_Vehicle ((BasicVehicleClass_t)67) +#define BasicVehicleClass_emergency_Other_Responder ((BasicVehicleClass_t)68) +#define BasicVehicleClass_emergency_Other_Ambulance ((BasicVehicleClass_t)69) +#define BasicVehicleClass_otherTraveler_TypeUnknown ((BasicVehicleClass_t)80) +#define BasicVehicleClass_otherTraveler_TypeOther ((BasicVehicleClass_t)81) +#define BasicVehicleClass_otherTraveler_Pedestrian ((BasicVehicleClass_t)82) +#define BasicVehicleClass_otherTraveler_Visually_Disabled ((BasicVehicleClass_t)83) +#define BasicVehicleClass_otherTraveler_Physically_Disabled ((BasicVehicleClass_t)84) +#define BasicVehicleClass_otherTraveler_Bicycle ((BasicVehicleClass_t)85) +#define BasicVehicleClass_otherTraveler_Vulnerable_Roadworker ((BasicVehicleClass_t)86) +#define BasicVehicleClass_infrastructure_TypeUnknown ((BasicVehicleClass_t)90) +#define BasicVehicleClass_infrastructure_Fixed ((BasicVehicleClass_t)91) +#define BasicVehicleClass_infrastructure_Movable ((BasicVehicleClass_t)92) +#define BasicVehicleClass_equipped_CargoTrailer ((BasicVehicleClass_t)93) + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleClass_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BasicVehicleRole.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BasicVehicleRole.h new file mode 100644 index 000000000..a29f6322e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BasicVehicleRole.h @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _BasicVehicleRole_H_ +#define _BasicVehicleRole_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BasicVehicleRole { + BasicVehicleRole_basicVehicle = 0, + BasicVehicleRole_publicTransport = 1, + BasicVehicleRole_specialTransport = 2, + BasicVehicleRole_dangerousGoods = 3, + BasicVehicleRole_roadWork = 4, + BasicVehicleRole_roadRescue = 5, + BasicVehicleRole_emergency = 6, + BasicVehicleRole_safetyCar = 7, + BasicVehicleRole_none_unknown = 8, + BasicVehicleRole_truck = 9, + BasicVehicleRole_motorcycle = 10, + BasicVehicleRole_roadSideSource = 11, + BasicVehicleRole_police = 12, + BasicVehicleRole_fire = 13, + BasicVehicleRole_ambulance = 14, + BasicVehicleRole_dot = 15, + BasicVehicleRole_transit = 16, + BasicVehicleRole_slowMoving = 17, + BasicVehicleRole_stopNgo = 18, + BasicVehicleRole_cyclist = 19, + BasicVehicleRole_pedestrian = 20, + BasicVehicleRole_nonMotorized = 21, + BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_BasicVehicleRole; + +/* BasicVehicleRole */ +typedef long BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1; +asn_struct_free_f BasicVehicleRole_free; +asn_struct_print_f BasicVehicleRole_print; +asn_constr_check_f BasicVehicleRole_constraint; +ber_type_decoder_f BasicVehicleRole_decode_ber; +der_type_encoder_f BasicVehicleRole_encode_der; +xer_type_decoder_f BasicVehicleRole_decode_xer; +xer_type_encoder_f BasicVehicleRole_encode_xer; +jer_type_encoder_f BasicVehicleRole_encode_jer; +oer_type_decoder_f BasicVehicleRole_decode_oer; +oer_type_encoder_f BasicVehicleRole_encode_oer; +per_type_decoder_f BasicVehicleRole_decode_uper; +per_type_encoder_f BasicVehicleRole_encode_uper; +per_type_decoder_f BasicVehicleRole_decode_aper; +per_type_encoder_f BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BasicVehicleRole_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeAppliedPressure.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeAppliedPressure.h new file mode 100644 index 000000000..b40b95442 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeAppliedPressure.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _BrakeAppliedPressure_H_ +#define _BrakeAppliedPressure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BrakeAppliedPressure { + BrakeAppliedPressure_unavailable = 0, + BrakeAppliedPressure_minPressure = 1, + BrakeAppliedPressure_bkLvl_2 = 2, + BrakeAppliedPressure_bkLvl_3 = 3, + BrakeAppliedPressure_bkLvl_4 = 4, + BrakeAppliedPressure_bkLvl_5 = 5, + BrakeAppliedPressure_bkLvl_6 = 6, + BrakeAppliedPressure_bkLvl_7 = 7, + BrakeAppliedPressure_bkLvl_8 = 8, + BrakeAppliedPressure_bkLvl_9 = 9, + BrakeAppliedPressure_bkLvl_10 = 10, + BrakeAppliedPressure_bkLvl_11 = 11, + BrakeAppliedPressure_bkLvl_12 = 12, + BrakeAppliedPressure_bkLvl_13 = 13, + BrakeAppliedPressure_bkLvl_14 = 14, + BrakeAppliedPressure_maxPressure = 15 +} e_BrakeAppliedPressure; + +/* BrakeAppliedPressure */ +typedef long BrakeAppliedPressure_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BrakeAppliedPressure_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BrakeAppliedPressure; +extern const asn_INTEGER_specifics_t asn_SPC_BrakeAppliedPressure_specs_1; +asn_struct_free_f BrakeAppliedPressure_free; +asn_struct_print_f BrakeAppliedPressure_print; +asn_constr_check_f BrakeAppliedPressure_constraint; +ber_type_decoder_f BrakeAppliedPressure_decode_ber; +der_type_encoder_f BrakeAppliedPressure_encode_der; +xer_type_decoder_f BrakeAppliedPressure_decode_xer; +xer_type_encoder_f BrakeAppliedPressure_encode_xer; +jer_type_encoder_f BrakeAppliedPressure_encode_jer; +oer_type_decoder_f BrakeAppliedPressure_decode_oer; +oer_type_encoder_f BrakeAppliedPressure_encode_oer; +per_type_decoder_f BrakeAppliedPressure_decode_uper; +per_type_encoder_f BrakeAppliedPressure_encode_uper; +per_type_decoder_f BrakeAppliedPressure_decode_aper; +per_type_encoder_f BrakeAppliedPressure_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BrakeAppliedPressure_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeAppliedStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeAppliedStatus.h new file mode 100644 index 000000000..8cefc4b84 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeAppliedStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _BrakeAppliedStatus_H_ +#define _BrakeAppliedStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BrakeAppliedStatus { + BrakeAppliedStatus_unavailable = 0, + BrakeAppliedStatus_leftFront = 1, + BrakeAppliedStatus_leftRear = 2, + BrakeAppliedStatus_rightFront = 3, + BrakeAppliedStatus_rightRear = 4 +} e_BrakeAppliedStatus; + +/* BrakeAppliedStatus */ +typedef BIT_STRING_t BrakeAppliedStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BrakeAppliedStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BrakeAppliedStatus; +asn_struct_free_f BrakeAppliedStatus_free; +asn_struct_print_f BrakeAppliedStatus_print; +asn_constr_check_f BrakeAppliedStatus_constraint; +ber_type_decoder_f BrakeAppliedStatus_decode_ber; +der_type_encoder_f BrakeAppliedStatus_encode_der; +xer_type_decoder_f BrakeAppliedStatus_decode_xer; +xer_type_encoder_f BrakeAppliedStatus_encode_xer; +jer_type_encoder_f BrakeAppliedStatus_encode_jer; +oer_type_decoder_f BrakeAppliedStatus_decode_oer; +oer_type_encoder_f BrakeAppliedStatus_encode_oer; +per_type_decoder_f BrakeAppliedStatus_decode_uper; +per_type_encoder_f BrakeAppliedStatus_encode_uper; +per_type_decoder_f BrakeAppliedStatus_decode_aper; +per_type_encoder_f BrakeAppliedStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BrakeAppliedStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeBoostApplied.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeBoostApplied.h new file mode 100644 index 000000000..1fa8f9eac --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeBoostApplied.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _BrakeBoostApplied_H_ +#define _BrakeBoostApplied_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BrakeBoostApplied { + BrakeBoostApplied_unavailable = 0, + BrakeBoostApplied_off = 1, + BrakeBoostApplied_on = 2 +} e_BrakeBoostApplied; + +/* BrakeBoostApplied */ +typedef long BrakeBoostApplied_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BrakeBoostApplied_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BrakeBoostApplied; +extern const asn_INTEGER_specifics_t asn_SPC_BrakeBoostApplied_specs_1; +asn_struct_free_f BrakeBoostApplied_free; +asn_struct_print_f BrakeBoostApplied_print; +asn_constr_check_f BrakeBoostApplied_constraint; +ber_type_decoder_f BrakeBoostApplied_decode_ber; +der_type_encoder_f BrakeBoostApplied_encode_der; +xer_type_decoder_f BrakeBoostApplied_decode_xer; +xer_type_encoder_f BrakeBoostApplied_encode_xer; +jer_type_encoder_f BrakeBoostApplied_encode_jer; +oer_type_decoder_f BrakeBoostApplied_decode_oer; +oer_type_encoder_f BrakeBoostApplied_encode_oer; +per_type_decoder_f BrakeBoostApplied_decode_uper; +per_type_encoder_f BrakeBoostApplied_encode_uper; +per_type_decoder_f BrakeBoostApplied_decode_aper; +per_type_encoder_f BrakeBoostApplied_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BrakeBoostApplied_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeSystemStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeSystemStatus.h new file mode 100644 index 000000000..9702ff381 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BrakeSystemStatus.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _BrakeSystemStatus_H_ +#define _BrakeSystemStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BrakeAppliedStatus.h" +#include "TractionControlStatus.h" +#include "AntiLockBrakeStatus.h" +#include "StabilityControlStatus.h" +#include "BrakeBoostApplied.h" +#include "AuxiliaryBrakeStatus.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* BrakeSystemStatus */ +typedef struct BrakeSystemStatus { + BrakeAppliedStatus_t wheelBrakes; + TractionControlStatus_t traction; + AntiLockBrakeStatus_t abs; + StabilityControlStatus_t scs; + BrakeBoostApplied_t brakeBoost; + AuxiliaryBrakeStatus_t auxBrakes; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BrakeSystemStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BrakeSystemStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_BrakeSystemStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_BrakeSystemStatus_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BrakeSystemStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BumperHeight.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BumperHeight.h new file mode 100644 index 000000000..824df774c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BumperHeight.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _BumperHeight_H_ +#define _BumperHeight_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* BumperHeight */ +typedef long BumperHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BumperHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BumperHeight; +asn_struct_free_f BumperHeight_free; +asn_struct_print_f BumperHeight_print; +asn_constr_check_f BumperHeight_constraint; +ber_type_decoder_f BumperHeight_decode_ber; +der_type_encoder_f BumperHeight_encode_der; +xer_type_decoder_f BumperHeight_decode_xer; +xer_type_encoder_f BumperHeight_encode_xer; +jer_type_encoder_f BumperHeight_encode_jer; +oer_type_decoder_f BumperHeight_decode_oer; +oer_type_encoder_f BumperHeight_encode_oer; +per_type_decoder_f BumperHeight_decode_uper; +per_type_encoder_f BumperHeight_encode_uper; +per_type_decoder_f BumperHeight_decode_aper; +per_type_encoder_f BumperHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BumperHeight_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/BumperHeights.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/BumperHeights.h new file mode 100644 index 000000000..b4b95b653 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/BumperHeights.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _BumperHeights_H_ +#define _BumperHeights_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BumperHeight.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* BumperHeights */ +typedef struct BumperHeights { + BumperHeight_t front; + BumperHeight_t rear; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BumperHeights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BumperHeights; +extern asn_SEQUENCE_specifics_t asn_SPC_BumperHeights_specs_1; +extern asn_TYPE_member_t asn_MBR_BumperHeights_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BumperHeights_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/CargoWeight.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/CargoWeight.h new file mode 100644 index 000000000..71b20e206 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/CargoWeight.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _CargoWeight_H_ +#define _CargoWeight_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CargoWeight */ +typedef long CargoWeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CargoWeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CargoWeight; +asn_struct_free_f CargoWeight_free; +asn_struct_print_f CargoWeight_print; +asn_constr_check_f CargoWeight_constraint; +ber_type_decoder_f CargoWeight_decode_ber; +der_type_encoder_f CargoWeight_encode_der; +xer_type_decoder_f CargoWeight_decode_xer; +xer_type_encoder_f CargoWeight_encode_xer; +jer_type_encoder_f CargoWeight_encode_jer; +oer_type_decoder_f CargoWeight_decode_oer; +oer_type_encoder_f CargoWeight_encode_oer; +per_type_decoder_f CargoWeight_decode_uper; +per_type_encoder_f CargoWeight_encode_uper; +per_type_decoder_f CargoWeight_decode_aper; +per_type_encoder_f CargoWeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CargoWeight_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Circle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Circle.h new file mode 100644 index 000000000..5a8858540 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Circle.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Circle_H_ +#define _Circle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Position3D.h" +#include "Radius-B12.h" +#include "DistanceUnits.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Circle */ +typedef struct Circle { + Position3D_t center; + Radius_B12_t radius; + DistanceUnits_t units; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Circle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Circle; +extern asn_SEQUENCE_specifics_t asn_SPC_Circle_specs_1; +extern asn_TYPE_member_t asn_MBR_Circle_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Circle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/CoarseHeading.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/CoarseHeading.h new file mode 100644 index 000000000..a1a741ee7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/CoarseHeading.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _CoarseHeading_H_ +#define _CoarseHeading_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CoarseHeading */ +typedef long CoarseHeading_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CoarseHeading_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CoarseHeading; +asn_struct_free_f CoarseHeading_free; +asn_struct_print_f CoarseHeading_print; +asn_constr_check_f CoarseHeading_constraint; +ber_type_decoder_f CoarseHeading_decode_ber; +der_type_encoder_f CoarseHeading_encode_der; +xer_type_decoder_f CoarseHeading_decode_xer; +xer_type_encoder_f CoarseHeading_encode_xer; +jer_type_encoder_f CoarseHeading_encode_jer; +oer_type_decoder_f CoarseHeading_decode_oer; +oer_type_encoder_f CoarseHeading_encode_oer; +per_type_decoder_f CoarseHeading_decode_uper; +per_type_encoder_f CoarseHeading_encode_uper; +per_type_decoder_f CoarseHeading_decode_aper; +per_type_encoder_f CoarseHeading_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CoarseHeading_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/CodeWord.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/CodeWord.h new file mode 100644 index 000000000..1732b87f3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/CodeWord.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _CodeWord_H_ +#define _CodeWord_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CodeWord */ +typedef OCTET_STRING_t CodeWord_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CodeWord; +asn_struct_free_f CodeWord_free; +asn_struct_print_f CodeWord_print; +asn_constr_check_f CodeWord_constraint; +ber_type_decoder_f CodeWord_decode_ber; +der_type_encoder_f CodeWord_encode_der; +xer_type_decoder_f CodeWord_decode_xer; +xer_type_encoder_f CodeWord_encode_xer; +jer_type_encoder_f CodeWord_encode_jer; +oer_type_decoder_f CodeWord_decode_oer; +oer_type_encoder_f CodeWord_encode_oer; +per_type_decoder_f CodeWord_decode_uper; +per_type_encoder_f CodeWord_encode_uper; +per_type_decoder_f CodeWord_decode_aper; +per_type_encoder_f CodeWord_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CodeWord_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/CoefficientOfFriction.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/CoefficientOfFriction.h new file mode 100644 index 000000000..2e43875ec --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/CoefficientOfFriction.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _CoefficientOfFriction_H_ +#define _CoefficientOfFriction_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* CoefficientOfFriction */ +typedef long CoefficientOfFriction_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CoefficientOfFriction_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CoefficientOfFriction; +asn_struct_free_f CoefficientOfFriction_free; +asn_struct_print_f CoefficientOfFriction_print; +asn_constr_check_f CoefficientOfFriction_constraint; +ber_type_decoder_f CoefficientOfFriction_decode_ber; +der_type_encoder_f CoefficientOfFriction_encode_der; +xer_type_decoder_f CoefficientOfFriction_decode_xer; +xer_type_encoder_f CoefficientOfFriction_encode_xer; +jer_type_encoder_f CoefficientOfFriction_encode_jer; +oer_type_decoder_f CoefficientOfFriction_decode_oer; +oer_type_encoder_f CoefficientOfFriction_encode_oer; +per_type_decoder_f CoefficientOfFriction_decode_uper; +per_type_encoder_f CoefficientOfFriction_encode_uper; +per_type_decoder_f CoefficientOfFriction_decode_aper; +per_type_encoder_f CoefficientOfFriction_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CoefficientOfFriction_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/CommonSafetyRequest.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/CommonSafetyRequest.h new file mode 100644 index 000000000..9a5948b53 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/CommonSafetyRequest.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CommonSafetyRequest" + * found in "J2735-CommonSafetyRequest.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _CommonSafetyRequest_H_ +#define _CommonSafetyRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "Common_MsgCount.h" +#include "TemporaryID.h" +#include "RequestedItemList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_CommonSafetyRequest; + +/* CommonSafetyRequest */ +typedef struct CommonSafetyRequest { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + Common_MsgCount_t *msgCnt; /* OPTIONAL */ + TemporaryID_t *id; /* OPTIONAL */ + RequestedItemList_t requests; + struct CommonSafetyRequest__regional { + A_SEQUENCE_OF(struct Reg_CommonSafetyRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CommonSafetyRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CommonSafetyRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_CommonSafetyRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_CommonSafetyRequest_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CommonSafetyRequest_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Common_Angle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Common_Angle.h new file mode 100644 index 000000000..b8803c38f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Common_Angle.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Common_Angle_H_ +#define _Common_Angle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Common_Angle */ +typedef long Common_Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Common_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Common_Angle; +asn_struct_free_f Common_Angle_free; +asn_struct_print_f Common_Angle_print; +asn_constr_check_f Common_Angle_constraint; +ber_type_decoder_f Common_Angle_decode_ber; +der_type_encoder_f Common_Angle_encode_der; +xer_type_decoder_f Common_Angle_decode_xer; +xer_type_encoder_f Common_Angle_encode_xer; +jer_type_encoder_f Common_Angle_encode_jer; +oer_type_decoder_f Common_Angle_decode_oer; +oer_type_encoder_f Common_Angle_encode_oer; +per_type_decoder_f Common_Angle_decode_uper; +per_type_encoder_f Common_Angle_encode_uper; +per_type_decoder_f Common_Angle_decode_aper; +per_type_encoder_f Common_Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Common_Angle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Common_Elevation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Common_Elevation.h new file mode 100644 index 000000000..99b55a74a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Common_Elevation.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Common_Elevation_H_ +#define _Common_Elevation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Common_Elevation */ +typedef long Common_Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Common_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Common_Elevation; +asn_struct_free_f Common_Elevation_free; +asn_struct_print_f Common_Elevation_print; +asn_constr_check_f Common_Elevation_constraint; +ber_type_decoder_f Common_Elevation_decode_ber; +der_type_encoder_f Common_Elevation_encode_der; +xer_type_decoder_f Common_Elevation_decode_xer; +xer_type_encoder_f Common_Elevation_encode_xer; +jer_type_encoder_f Common_Elevation_encode_jer; +oer_type_decoder_f Common_Elevation_decode_oer; +oer_type_encoder_f Common_Elevation_encode_oer; +per_type_decoder_f Common_Elevation_decode_uper; +per_type_encoder_f Common_Elevation_encode_uper; +per_type_decoder_f Common_Elevation_decode_aper; +per_type_encoder_f Common_Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Common_Elevation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Common_MsgCount.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Common_MsgCount.h new file mode 100644 index 000000000..28557855e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Common_MsgCount.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Common_MsgCount_H_ +#define _Common_MsgCount_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Common_MsgCount */ +typedef long Common_MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Common_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Common_MsgCount; +asn_struct_free_f Common_MsgCount_free; +asn_struct_print_f Common_MsgCount_print; +asn_constr_check_f Common_MsgCount_constraint; +ber_type_decoder_f Common_MsgCount_decode_ber; +der_type_encoder_f Common_MsgCount_encode_der; +xer_type_decoder_f Common_MsgCount_decode_xer; +xer_type_encoder_f Common_MsgCount_encode_xer; +jer_type_encoder_f Common_MsgCount_encode_jer; +oer_type_decoder_f Common_MsgCount_decode_oer; +oer_type_encoder_f Common_MsgCount_encode_oer; +per_type_decoder_f Common_MsgCount_decode_uper; +per_type_encoder_f Common_MsgCount_encode_uper; +per_type_decoder_f Common_MsgCount_decode_aper; +per_type_encoder_f Common_MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Common_MsgCount_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ComputedLane.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ComputedLane.h new file mode 100644 index 000000000..c45278d3c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ComputedLane.h @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ComputedLane_H_ +#define _ComputedLane_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LaneID.h" +#include "Common_Angle.h" +#include "Scale-B12.h" +#include "DrivenLineOffsetSm.h" +#include "DrivenLineOffsetLg.h" +#include "constr_CHOICE.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ComputedLane__offsetXaxis_PR { + ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetXaxis_PR_small, + ComputedLane__offsetXaxis_PR_large +} ComputedLane__offsetXaxis_PR; +typedef enum ComputedLane__offsetYaxis_PR { + ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + ComputedLane__offsetYaxis_PR_small, + ComputedLane__offsetYaxis_PR_large +} ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct Reg_ComputedLane; + +/* ComputedLane */ +typedef struct ComputedLane { + LaneID_t referenceLaneId; + struct ComputedLane__offsetXaxis { + ComputedLane__offsetXaxis_PR present; + union ComputedLane__offsetXaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct ComputedLane__offsetYaxis { + ComputedLane__offsetYaxis_PR present; + union ComputedLane__offsetYaxis_u { + DrivenLineOffsetSm_t small; + DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + Common_Angle_t *rotateXY; /* OPTIONAL */ + Scale_B12_t *scaleXaxis; /* OPTIONAL */ + Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct ComputedLane__regional { + A_SEQUENCE_OF(struct Reg_ComputedLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ComputedLane_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Confidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Confidence.h new file mode 100644 index 000000000..2dcc6bef1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Confidence.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Confidence_H_ +#define _Confidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Confidence */ +typedef long Confidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Confidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Confidence; +asn_struct_free_f Confidence_free; +asn_struct_print_f Confidence_print; +asn_constr_check_f Confidence_constraint; +ber_type_decoder_f Confidence_decode_ber; +der_type_encoder_f Confidence_encode_der; +xer_type_decoder_f Confidence_decode_xer; +xer_type_encoder_f Confidence_encode_xer; +jer_type_encoder_f Confidence_encode_jer; +oer_type_decoder_f Confidence_decode_oer; +oer_type_encoder_f Confidence_encode_oer; +per_type_decoder_f Confidence_decode_uper; +per_type_encoder_f Confidence_encode_uper; +per_type_decoder_f Confidence_decode_aper; +per_type_encoder_f Confidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Confidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ConfidenceSet.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ConfidenceSet.h new file mode 100644 index 000000000..d75c01021 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ConfidenceSet.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ConfidenceSet_H_ +#define _ConfidenceSet_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TimeConfidence.h" +#include "SteeringWheelAngleConfidence.h" +#include "HeadingConfidence.h" +#include "ThrottleConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AccelSteerYawRateConfidence; +struct SpeedandHeadingandThrottleConfidence; +struct PositionConfidenceSet; + +/* ConfidenceSet */ +typedef struct ConfidenceSet { + struct AccelSteerYawRateConfidence *accelConfidence; /* OPTIONAL */ + struct SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct PositionConfidenceSet *posConfidence; /* OPTIONAL */ + SteeringWheelAngleConfidence_t *steerConfidence; /* OPTIONAL */ + HeadingConfidence_t *headingConfidence; /* OPTIONAL */ + ThrottleConfidence_t *throttleConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ConfidenceSet_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConfidenceSet_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectingLane.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectingLane.h new file mode 100644 index 000000000..d4f1aa84d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectingLane.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ConnectingLane_H_ +#define _ConnectingLane_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LaneID.h" +#include "AllowedManeuvers.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ConnectingLane */ +typedef struct ConnectingLane { + LaneID_t lane; + AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectingLane_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Connection.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Connection.h new file mode 100644 index 000000000..83a23ec31 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Connection.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Connection_H_ +#define _Connection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ConnectingLane.h" +#include "SignalGroupID.h" +#include "RestrictionClassID.h" +#include "LaneConnectionID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionReferenceID; + +/* Connection */ +typedef struct Connection { + ConnectingLane_t connectingLane; + struct IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + SignalGroupID_t *signalGroup; /* OPTIONAL */ + RestrictionClassID_t *userClass; /* OPTIONAL */ + LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Connection_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectionManeuverAssist-addGrpC.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 000000000..78ec41712 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectionManeuverAssist-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ConnectionManeuverAssist_addGrpC_H_ +#define _ConnectionManeuverAssist_addGrpC_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VehicleToLanePositionList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeOffsetPointXY; + +/* ConnectionManeuverAssist-addGrpC */ +typedef struct ConnectionManeuverAssist_addGrpC { + VehicleToLanePositionList_t vehicleToLanePositions; + struct NodeOffsetPointXY *rsuDistanceFromAnchor; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_addGrpC_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectionManeuverAssist.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectionManeuverAssist.h new file mode 100644 index 000000000..736974ef9 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectionManeuverAssist.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ConnectionManeuverAssist_H_ +#define _ConnectionManeuverAssist_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LaneConnectionID.h" +#include "ZoneLength.h" +#include "WaitOnStopline.h" +#include "PedestrianBicycleDetect.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_ConnectionManeuverAssist; + +/* ConnectionManeuverAssist */ +typedef struct ConnectionManeuverAssist { + LaneConnectionID_t connectionID; + ZoneLength_t *queueLength; /* OPTIONAL */ + ZoneLength_t *availableStorageLength; /* OPTIONAL */ + WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct Reg_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectionManeuverAssist_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectsToList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectsToList.h new file mode 100644 index 000000000..3ca72f148 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ConnectsToList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ConnectsToList_H_ +#define _ConnectsToList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Connection; + +/* ConnectsToList */ +typedef struct ConnectsToList { + A_SEQUENCE_OF(struct Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnectsToList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Count.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Count.h new file mode 100644 index 000000000..8380e9d6f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Count.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Count_H_ +#define _Count_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Count */ +typedef long Count_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Count; +asn_struct_free_f Count_free; +asn_struct_print_f Count_print; +asn_constr_check_f Count_constraint; +ber_type_decoder_f Count_decode_ber; +der_type_encoder_f Count_encode_der; +xer_type_decoder_f Count_decode_xer; +xer_type_encoder_f Count_encode_xer; +jer_type_encoder_f Count_encode_jer; +oer_type_decoder_f Count_decode_oer; +oer_type_encoder_f Count_encode_oer; +per_type_decoder_f Count_decode_uper; +per_type_encoder_f Count_encode_uper; +per_type_decoder_f Count_decode_aper; +per_type_encoder_f Count_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Count_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DDate.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DDate.h new file mode 100644 index 000000000..7b53f777d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DDate.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DDate_H_ +#define _DDate_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "DDay.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDate */ +typedef struct DDate { + DYear_t year; + DMonth_t month; + DDay_t day; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDate; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDate_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DDateTime.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DDateTime.h new file mode 100644 index 000000000..419943d86 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DDateTime.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DDateTime_H_ +#define _DDateTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "DDay.h" +#include "DHour.h" +#include "DMinute.h" +#include "DSecond.h" +#include "DOffset.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDateTime */ +typedef struct DDateTime { + DYear_t *year; /* OPTIONAL */ + DMonth_t *month; /* OPTIONAL */ + DDay_t *day; /* OPTIONAL */ + DHour_t *hour; /* OPTIONAL */ + DMinute_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDateTime_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DDay.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DDay.h new file mode 100644 index 000000000..4a42c80b7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DDay.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DDay_H_ +#define _DDay_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DDay */ +typedef long DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DDay; +asn_struct_free_f DDay_free; +asn_struct_print_f DDay_print; +asn_constr_check_f DDay_constraint; +ber_type_decoder_f DDay_decode_ber; +der_type_encoder_f DDay_encode_der; +xer_type_decoder_f DDay_decode_xer; +xer_type_encoder_f DDay_encode_xer; +jer_type_encoder_f DDay_encode_jer; +oer_type_decoder_f DDay_decode_oer; +oer_type_encoder_f DDay_encode_oer; +per_type_decoder_f DDay_decode_uper; +per_type_encoder_f DDay_encode_uper; +per_type_decoder_f DDay_decode_aper; +per_type_encoder_f DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DDay_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DFullTime.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DFullTime.h new file mode 100644 index 000000000..91065ab89 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DFullTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DFullTime_H_ +#define _DFullTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "DDay.h" +#include "DHour.h" +#include "DMinute.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DFullTime */ +typedef struct DFullTime { + DYear_t year; + DMonth_t month; + DDay_t day; + DHour_t hour; + DMinute_t minute; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DFullTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DFullTime; + +#ifdef __cplusplus +} +#endif + +#endif /* _DFullTime_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DHour.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DHour.h new file mode 100644 index 000000000..6b974c3c8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DHour.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DHour_H_ +#define _DHour_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DHour */ +typedef long DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DHour; +asn_struct_free_f DHour_free; +asn_struct_print_f DHour_print; +asn_constr_check_f DHour_constraint; +ber_type_decoder_f DHour_decode_ber; +der_type_encoder_f DHour_encode_der; +xer_type_decoder_f DHour_decode_xer; +xer_type_encoder_f DHour_encode_xer; +jer_type_encoder_f DHour_encode_jer; +oer_type_decoder_f DHour_decode_oer; +oer_type_encoder_f DHour_encode_oer; +per_type_decoder_f DHour_decode_uper; +per_type_encoder_f DHour_encode_uper; +per_type_decoder_f DHour_decode_aper; +per_type_encoder_f DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DHour_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DMinute.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DMinute.h new file mode 100644 index 000000000..714d33492 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DMinute.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DMinute_H_ +#define _DMinute_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMinute */ +typedef long DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMinute; +asn_struct_free_f DMinute_free; +asn_struct_print_f DMinute_print; +asn_constr_check_f DMinute_constraint; +ber_type_decoder_f DMinute_decode_ber; +der_type_encoder_f DMinute_encode_der; +xer_type_decoder_f DMinute_decode_xer; +xer_type_encoder_f DMinute_encode_xer; +jer_type_encoder_f DMinute_encode_jer; +oer_type_decoder_f DMinute_decode_oer; +oer_type_encoder_f DMinute_encode_oer; +per_type_decoder_f DMinute_decode_uper; +per_type_encoder_f DMinute_encode_uper; +per_type_decoder_f DMinute_decode_aper; +per_type_encoder_f DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMinute_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DMonth.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DMonth.h new file mode 100644 index 000000000..fb603619a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DMonth.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DMonth_H_ +#define _DMonth_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMonth */ +typedef long DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DMonth; +asn_struct_free_f DMonth_free; +asn_struct_print_f DMonth_print; +asn_constr_check_f DMonth_constraint; +ber_type_decoder_f DMonth_decode_ber; +der_type_encoder_f DMonth_encode_der; +xer_type_decoder_f DMonth_decode_xer; +xer_type_encoder_f DMonth_encode_xer; +jer_type_encoder_f DMonth_encode_jer; +oer_type_decoder_f DMonth_decode_oer; +oer_type_encoder_f DMonth_encode_oer; +per_type_decoder_f DMonth_decode_uper; +per_type_encoder_f DMonth_encode_uper; +per_type_decoder_f DMonth_decode_aper; +per_type_encoder_f DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMonth_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DMonthDay.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DMonthDay.h new file mode 100644 index 000000000..33656c770 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DMonthDay.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DMonthDay_H_ +#define _DMonthDay_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DMonth.h" +#include "DDay.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DMonthDay */ +typedef struct DMonthDay { + DMonth_t month; + DDay_t day; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DMonthDay_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DMonthDay; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMonthDay_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DOffset.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DOffset.h new file mode 100644 index 000000000..38a00aaf8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DOffset.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DOffset_H_ +#define _DOffset_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DOffset */ +typedef long DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DOffset; +asn_struct_free_f DOffset_free; +asn_struct_print_f DOffset_print; +asn_constr_check_f DOffset_constraint; +ber_type_decoder_f DOffset_decode_ber; +der_type_encoder_f DOffset_encode_der; +xer_type_decoder_f DOffset_decode_xer; +xer_type_encoder_f DOffset_encode_xer; +jer_type_encoder_f DOffset_encode_jer; +oer_type_decoder_f DOffset_decode_oer; +oer_type_encoder_f DOffset_encode_oer; +per_type_decoder_f DOffset_decode_uper; +per_type_encoder_f DOffset_encode_uper; +per_type_decoder_f DOffset_decode_aper; +per_type_encoder_f DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DOffset_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DSRCmsgID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DSRCmsgID.h new file mode 100644 index 000000000..6bbe29873 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DSRCmsgID.h @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MessageFrame" + * found in "J2735-MessageFrame.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DSRCmsgID_H_ +#define _DSRCmsgID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSRCmsgID */ +typedef long DSRCmsgID_t; + +/* Implementation */ +#define DSRCmsgID_reservedMessageId_D ((DSRCmsgID_t)0) +#define DSRCmsgID_alaCarteMessage_D ((DSRCmsgID_t)1) +#define DSRCmsgID_basicSafetyMessage_D ((DSRCmsgID_t)2) +#define DSRCmsgID_basicSafetyMessageVerbose_D ((DSRCmsgID_t)3) +#define DSRCmsgID_commonSafetyRequest_D ((DSRCmsgID_t)4) +#define DSRCmsgID_emergencyVehicleAlert_D ((DSRCmsgID_t)5) +#define DSRCmsgID_intersectionCollision_D ((DSRCmsgID_t)6) +#define DSRCmsgID_mapData_D ((DSRCmsgID_t)7) +#define DSRCmsgID_nmeaCorrections_D ((DSRCmsgID_t)8) +#define DSRCmsgID_probeDataManagement_D ((DSRCmsgID_t)9) +#define DSRCmsgID_probeVehicleData_D ((DSRCmsgID_t)10) +#define DSRCmsgID_roadSideAlert_D ((DSRCmsgID_t)11) +#define DSRCmsgID_rtcmCorrections_D ((DSRCmsgID_t)12) +#define DSRCmsgID_signalPhaseAndTimingMessage_D ((DSRCmsgID_t)13) +#define DSRCmsgID_signalRequestMessage_D ((DSRCmsgID_t)14) +#define DSRCmsgID_signalStatusMessage_D ((DSRCmsgID_t)15) +#define DSRCmsgID_travelerInformation_D ((DSRCmsgID_t)16) +#define DSRCmsgID_uperFrame_D ((DSRCmsgID_t)17) +extern asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSRCmsgID; +asn_struct_free_f DSRCmsgID_free; +asn_struct_print_f DSRCmsgID_print; +asn_constr_check_f DSRCmsgID_constraint; +ber_type_decoder_f DSRCmsgID_decode_ber; +der_type_encoder_f DSRCmsgID_encode_der; +xer_type_decoder_f DSRCmsgID_decode_xer; +xer_type_encoder_f DSRCmsgID_encode_xer; +jer_type_encoder_f DSRCmsgID_encode_jer; +oer_type_decoder_f DSRCmsgID_decode_oer; +oer_type_encoder_f DSRCmsgID_encode_oer; +per_type_decoder_f DSRCmsgID_decode_uper; +per_type_encoder_f DSRCmsgID_encode_uper; +per_type_decoder_f DSRCmsgID_decode_aper; +per_type_encoder_f DSRCmsgID_encode_aper; +#define DSRCmsgID_mapData ((DSRCmsgID_t)18) +#define DSRCmsgID_signalPhaseAndTimingMessage ((DSRCmsgID_t)19) +#define DSRCmsgID_basicSafetyMessage ((DSRCmsgID_t)20) +#define DSRCmsgID_commonSafetyRequest ((DSRCmsgID_t)21) +#define DSRCmsgID_emergencyVehicleAlert ((DSRCmsgID_t)22) +#define DSRCmsgID_intersectionCollision ((DSRCmsgID_t)23) +#define DSRCmsgID_nmeaCorrections ((DSRCmsgID_t)24) +#define DSRCmsgID_probeDataManagement ((DSRCmsgID_t)25) +#define DSRCmsgID_probeVehicleData ((DSRCmsgID_t)26) +#define DSRCmsgID_roadSideAlert ((DSRCmsgID_t)27) +#define DSRCmsgID_rtcmCorrections ((DSRCmsgID_t)28) +#define DSRCmsgID_signalRequestMessage ((DSRCmsgID_t)29) +#define DSRCmsgID_signalStatusMessage ((DSRCmsgID_t)30) +#define DSRCmsgID_travelerInformation ((DSRCmsgID_t)31) +#define DSRCmsgID_personalSafetyMessage ((DSRCmsgID_t)32) +#define DSRCmsgID_testMessage00 ((DSRCmsgID_t)240) +#define DSRCmsgID_testMessage01 ((DSRCmsgID_t)241) +#define DSRCmsgID_testMessage02 ((DSRCmsgID_t)242) +#define DSRCmsgID_testMessage03 ((DSRCmsgID_t)243) +#define DSRCmsgID_testMessage04 ((DSRCmsgID_t)244) +#define DSRCmsgID_testMessage05 ((DSRCmsgID_t)245) +#define DSRCmsgID_testMessage06 ((DSRCmsgID_t)246) +#define DSRCmsgID_testMessage07 ((DSRCmsgID_t)247) +#define DSRCmsgID_testMessage08 ((DSRCmsgID_t)248) +#define DSRCmsgID_testMessage09 ((DSRCmsgID_t)249) +#define DSRCmsgID_testMessage10 ((DSRCmsgID_t)250) +#define DSRCmsgID_testMessage11 ((DSRCmsgID_t)251) +#define DSRCmsgID_testMessage12 ((DSRCmsgID_t)252) +#define DSRCmsgID_testMessage13 ((DSRCmsgID_t)253) +#define DSRCmsgID_testMessage14 ((DSRCmsgID_t)254) +#define DSRCmsgID_testMessage15 ((DSRCmsgID_t)255) + +#ifdef __cplusplus +} +#endif + +#endif /* _DSRCmsgID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DSecond.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DSecond.h new file mode 100644 index 000000000..aaeeb20d8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DSecond.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DSecond_H_ +#define _DSecond_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DSecond */ +typedef long DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DSecond; +asn_struct_free_f DSecond_free; +asn_struct_print_f DSecond_print; +asn_constr_check_f DSecond_constraint; +ber_type_decoder_f DSecond_decode_ber; +der_type_encoder_f DSecond_encode_der; +xer_type_decoder_f DSecond_decode_xer; +xer_type_encoder_f DSecond_encode_xer; +jer_type_encoder_f DSecond_encode_jer; +oer_type_decoder_f DSecond_decode_oer; +oer_type_encoder_f DSecond_encode_oer; +per_type_decoder_f DSecond_decode_uper; +per_type_encoder_f DSecond_encode_uper; +per_type_decoder_f DSecond_decode_aper; +per_type_encoder_f DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DSecond_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DTime.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DTime.h new file mode 100644 index 000000000..8bb1b77df --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DTime.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DTime_H_ +#define _DTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DHour.h" +#include "DMinute.h" +#include "DSecond.h" +#include "DOffset.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DTime */ +typedef struct DTime { + DHour_t hour; + DMinute_t minute; + DSecond_t second; + DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DTime; + +#ifdef __cplusplus +} +#endif + +#endif /* _DTime_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DYear.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DYear.h new file mode 100644 index 000000000..16149f0c6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DYear.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DYear_H_ +#define _DYear_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DYear */ +typedef long DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DYear; +asn_struct_free_f DYear_free; +asn_struct_print_f DYear_print; +asn_constr_check_f DYear_constraint; +ber_type_decoder_f DYear_decode_ber; +der_type_encoder_f DYear_encode_der; +xer_type_decoder_f DYear_decode_xer; +xer_type_encoder_f DYear_encode_xer; +jer_type_encoder_f DYear_encode_jer; +oer_type_decoder_f DYear_decode_oer; +oer_type_encoder_f DYear_encode_oer; +per_type_decoder_f DYear_decode_uper; +per_type_encoder_f DYear_encode_uper; +per_type_decoder_f DYear_decode_aper; +per_type_encoder_f DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DYear_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DYearMonth.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DYearMonth.h new file mode 100644 index 000000000..e5b3c9ff9 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DYearMonth.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DYearMonth_H_ +#define _DYearMonth_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DYear.h" +#include "DMonth.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DYearMonth */ +typedef struct DYearMonth { + DYear_t year; + DMonth_t month; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DYearMonth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DYearMonth; + +#ifdef __cplusplus +} +#endif + +#endif /* _DYearMonth_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DataParameters.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DataParameters.h new file mode 100644 index 000000000..983bead30 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DataParameters.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DataParameters_H_ +#define _DataParameters_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IA5String.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DataParameters */ +typedef struct DataParameters { + IA5String_t *processMethod; /* OPTIONAL */ + IA5String_t *processAgency; /* OPTIONAL */ + IA5String_t *lastCheckedDate; /* OPTIONAL */ + IA5String_t *geoidUsed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DataParameters_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Day.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Day.h new file mode 100644 index 000000000..7c682d9a1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Day.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Day_H_ +#define _Day_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Day */ +typedef long Day_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Day_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Day; +asn_struct_free_f Day_free; +asn_struct_print_f Day_print; +asn_constr_check_f Day_constraint; +ber_type_decoder_f Day_decode_ber; +der_type_encoder_f Day_encode_der; +xer_type_decoder_f Day_decode_xer; +xer_type_encoder_f Day_encode_xer; +jer_type_encoder_f Day_encode_jer; +oer_type_decoder_f Day_decode_oer; +oer_type_encoder_f Day_encode_oer; +per_type_decoder_f Day_decode_uper; +per_type_encoder_f Day_encode_uper; +per_type_decoder_f Day_decode_aper; +per_type_encoder_f Day_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Day_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DayOfWeek.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DayOfWeek.h new file mode 100644 index 000000000..c40b512b6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DayOfWeek.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DayOfWeek_H_ +#define _DayOfWeek_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DayOfWeek { + DayOfWeek_unknown = 0, + DayOfWeek_monday = 1, + DayOfWeek_tuesday = 2, + DayOfWeek_wednesday = 3, + DayOfWeek_thursday = 4, + DayOfWeek_friday = 5, + DayOfWeek_saturday = 6, + DayOfWeek_sunday = 7 +} e_DayOfWeek; + +/* DayOfWeek */ +typedef long DayOfWeek_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DayOfWeek_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DayOfWeek; +extern const asn_INTEGER_specifics_t asn_SPC_DayOfWeek_specs_1; +asn_struct_free_f DayOfWeek_free; +asn_struct_print_f DayOfWeek_print; +asn_constr_check_f DayOfWeek_constraint; +ber_type_decoder_f DayOfWeek_decode_ber; +der_type_encoder_f DayOfWeek_encode_der; +xer_type_decoder_f DayOfWeek_decode_xer; +xer_type_encoder_f DayOfWeek_encode_xer; +jer_type_encoder_f DayOfWeek_encode_jer; +oer_type_decoder_f DayOfWeek_decode_oer; +oer_type_encoder_f DayOfWeek_encode_oer; +per_type_decoder_f DayOfWeek_decode_uper; +per_type_encoder_f DayOfWeek_encode_uper; +per_type_decoder_f DayOfWeek_decode_aper; +per_type_encoder_f DayOfWeek_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DayOfWeek_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DegreesLat.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DegreesLat.h new file mode 100644 index 000000000..294b9dda2 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DegreesLat.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DegreesLat_H_ +#define _DegreesLat_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DegreesLat */ +typedef long DegreesLat_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DegreesLat_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DegreesLat; +asn_struct_free_f DegreesLat_free; +asn_struct_print_f DegreesLat_print; +asn_constr_check_f DegreesLat_constraint; +ber_type_decoder_f DegreesLat_decode_ber; +der_type_encoder_f DegreesLat_encode_der; +xer_type_decoder_f DegreesLat_decode_xer; +xer_type_encoder_f DegreesLat_encode_xer; +jer_type_encoder_f DegreesLat_encode_jer; +oer_type_decoder_f DegreesLat_decode_oer; +oer_type_encoder_f DegreesLat_encode_oer; +per_type_decoder_f DegreesLat_decode_uper; +per_type_encoder_f DegreesLat_encode_uper; +per_type_decoder_f DegreesLat_decode_aper; +per_type_encoder_f DegreesLat_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DegreesLat_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DegreesLong.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DegreesLong.h new file mode 100644 index 000000000..6ea26c16b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DegreesLong.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DegreesLong_H_ +#define _DegreesLong_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DegreesLong */ +typedef long DegreesLong_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DegreesLong_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DegreesLong; +asn_struct_free_f DegreesLong_free; +asn_struct_print_f DegreesLong_print; +asn_constr_check_f DegreesLong_constraint; +ber_type_decoder_f DegreesLong_decode_ber; +der_type_encoder_f DegreesLong_encode_der; +xer_type_decoder_f DegreesLong_decode_xer; +xer_type_encoder_f DegreesLong_encode_xer; +jer_type_encoder_f DegreesLong_encode_jer; +oer_type_decoder_f DegreesLong_decode_oer; +oer_type_encoder_f DegreesLong_encode_oer; +per_type_decoder_f DegreesLong_decode_uper; +per_type_encoder_f DegreesLong_encode_uper; +per_type_decoder_f DegreesLong_decode_aper; +per_type_encoder_f DegreesLong_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DegreesLong_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DeltaAngle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DeltaAngle.h new file mode 100644 index 000000000..e5f4a50e6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DeltaAngle.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DeltaAngle_H_ +#define _DeltaAngle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaAngle */ +typedef long DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaAngle; +asn_struct_free_f DeltaAngle_free; +asn_struct_print_f DeltaAngle_print; +asn_constr_check_f DeltaAngle_constraint; +ber_type_decoder_f DeltaAngle_decode_ber; +der_type_encoder_f DeltaAngle_encode_der; +xer_type_decoder_f DeltaAngle_decode_xer; +xer_type_encoder_f DeltaAngle_encode_xer; +jer_type_encoder_f DeltaAngle_encode_jer; +oer_type_decoder_f DeltaAngle_decode_oer; +oer_type_encoder_f DeltaAngle_encode_oer; +per_type_decoder_f DeltaAngle_decode_uper; +per_type_encoder_f DeltaAngle_encode_uper; +per_type_decoder_f DeltaAngle_decode_aper; +per_type_encoder_f DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaAngle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DeltaTime.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DeltaTime.h new file mode 100644 index 000000000..223e8ed56 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DeltaTime.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DeltaTime_H_ +#define _DeltaTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DeltaTime */ +typedef long DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DeltaTime; +asn_struct_free_f DeltaTime_free; +asn_struct_print_f DeltaTime_print; +asn_constr_check_f DeltaTime_constraint; +ber_type_decoder_f DeltaTime_decode_ber; +der_type_encoder_f DeltaTime_encode_der; +xer_type_decoder_f DeltaTime_decode_xer; +xer_type_encoder_f DeltaTime_encode_xer; +jer_type_encoder_f DeltaTime_encode_jer; +oer_type_decoder_f DeltaTime_decode_oer; +oer_type_encoder_f DeltaTime_encode_oer; +per_type_decoder_f DeltaTime_decode_uper; +per_type_encoder_f DeltaTime_encode_uper; +per_type_decoder_f DeltaTime_decode_aper; +per_type_encoder_f DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DeltaTime_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DescriptiveName.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DescriptiveName.h new file mode 100644 index 000000000..b731f0749 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DescriptiveName.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DescriptiveName_H_ +#define _DescriptiveName_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IA5String.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DescriptiveName */ +typedef IA5String_t DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DescriptiveName; +asn_struct_free_f DescriptiveName_free; +asn_struct_print_f DescriptiveName_print; +asn_constr_check_f DescriptiveName_constraint; +ber_type_decoder_f DescriptiveName_decode_ber; +der_type_encoder_f DescriptiveName_encode_der; +xer_type_decoder_f DescriptiveName_decode_xer; +xer_type_encoder_f DescriptiveName_encode_xer; +jer_type_encoder_f DescriptiveName_encode_jer; +oer_type_decoder_f DescriptiveName_decode_oer; +oer_type_encoder_f DescriptiveName_encode_oer; +per_type_decoder_f DescriptiveName_decode_uper; +per_type_encoder_f DescriptiveName_encode_uper; +per_type_decoder_f DescriptiveName_decode_aper; +per_type_encoder_f DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DescriptiveName_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DirectionOfUse.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DirectionOfUse.h new file mode 100644 index 000000000..bc8274516 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DirectionOfUse.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DirectionOfUse_H_ +#define _DirectionOfUse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DirectionOfUse { + DirectionOfUse_unavailable = 0, + DirectionOfUse_forward = 1, + DirectionOfUse_reverse = 2, + DirectionOfUse_both = 3 +} e_DirectionOfUse; + +/* DirectionOfUse */ +typedef long DirectionOfUse_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DirectionOfUse_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DirectionOfUse; +extern const asn_INTEGER_specifics_t asn_SPC_DirectionOfUse_specs_1; +asn_struct_free_f DirectionOfUse_free; +asn_struct_print_f DirectionOfUse_print; +asn_constr_check_f DirectionOfUse_constraint; +ber_type_decoder_f DirectionOfUse_decode_ber; +der_type_encoder_f DirectionOfUse_encode_der; +xer_type_decoder_f DirectionOfUse_decode_xer; +xer_type_encoder_f DirectionOfUse_encode_xer; +jer_type_encoder_f DirectionOfUse_encode_jer; +oer_type_decoder_f DirectionOfUse_decode_oer; +oer_type_encoder_f DirectionOfUse_encode_oer; +per_type_decoder_f DirectionOfUse_decode_uper; +per_type_encoder_f DirectionOfUse_encode_uper; +per_type_decoder_f DirectionOfUse_decode_aper; +per_type_encoder_f DirectionOfUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DirectionOfUse_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DisabledVehicle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DisabledVehicle.h new file mode 100644 index 000000000..06172bec3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DisabledVehicle.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DisabledVehicle_H_ +#define _DisabledVehicle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ITIScodes.h" +#include "GenericLocations.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DisabledVehicle */ +typedef struct DisabledVehicle { + ITIScodes_t statusDetails; + GenericLocations_t *locationDetails; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DisabledVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DisabledVehicle; +extern asn_SEQUENCE_specifics_t asn_SPC_DisabledVehicle_specs_1; +extern asn_TYPE_member_t asn_MBR_DisabledVehicle_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DisabledVehicle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DistanceUnits.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DistanceUnits.h new file mode 100644 index 000000000..c6d925dbf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DistanceUnits.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DistanceUnits_H_ +#define _DistanceUnits_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DistanceUnits { + DistanceUnits_centimeter = 0, + DistanceUnits_cm2_5 = 1, + DistanceUnits_decimeter = 2, + DistanceUnits_meter = 3, + DistanceUnits_kilometer = 4, + DistanceUnits_foot = 5, + DistanceUnits_yard = 6, + DistanceUnits_mile = 7 +} e_DistanceUnits; + +/* DistanceUnits */ +typedef long DistanceUnits_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DistanceUnits_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DistanceUnits; +extern const asn_INTEGER_specifics_t asn_SPC_DistanceUnits_specs_1; +asn_struct_free_f DistanceUnits_free; +asn_struct_print_f DistanceUnits_print; +asn_constr_check_f DistanceUnits_constraint; +ber_type_decoder_f DistanceUnits_decode_ber; +der_type_encoder_f DistanceUnits_encode_der; +xer_type_decoder_f DistanceUnits_decode_xer; +xer_type_encoder_f DistanceUnits_encode_xer; +jer_type_encoder_f DistanceUnits_encode_jer; +oer_type_decoder_f DistanceUnits_decode_oer; +oer_type_encoder_f DistanceUnits_encode_oer; +per_type_decoder_f DistanceUnits_decode_uper; +per_type_encoder_f DistanceUnits_encode_uper; +per_type_decoder_f DistanceUnits_decode_aper; +per_type_encoder_f DistanceUnits_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DistanceUnits_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLiftAirPressure.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLiftAirPressure.h new file mode 100644 index 000000000..17a7e6a16 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLiftAirPressure.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DriveAxleLiftAirPressure_H_ +#define _DriveAxleLiftAirPressure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DriveAxleLiftAirPressure */ +typedef long DriveAxleLiftAirPressure_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DriveAxleLiftAirPressure_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DriveAxleLiftAirPressure; +asn_struct_free_f DriveAxleLiftAirPressure_free; +asn_struct_print_f DriveAxleLiftAirPressure_print; +asn_constr_check_f DriveAxleLiftAirPressure_constraint; +ber_type_decoder_f DriveAxleLiftAirPressure_decode_ber; +der_type_encoder_f DriveAxleLiftAirPressure_encode_der; +xer_type_decoder_f DriveAxleLiftAirPressure_decode_xer; +xer_type_encoder_f DriveAxleLiftAirPressure_encode_xer; +jer_type_encoder_f DriveAxleLiftAirPressure_encode_jer; +oer_type_decoder_f DriveAxleLiftAirPressure_decode_oer; +oer_type_encoder_f DriveAxleLiftAirPressure_encode_oer; +per_type_decoder_f DriveAxleLiftAirPressure_decode_uper; +per_type_encoder_f DriveAxleLiftAirPressure_encode_uper; +per_type_decoder_f DriveAxleLiftAirPressure_decode_aper; +per_type_encoder_f DriveAxleLiftAirPressure_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveAxleLiftAirPressure_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLocation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLocation.h new file mode 100644 index 000000000..e6bf894e4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLocation.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DriveAxleLocation_H_ +#define _DriveAxleLocation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DriveAxleLocation */ +typedef long DriveAxleLocation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DriveAxleLocation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DriveAxleLocation; +asn_struct_free_f DriveAxleLocation_free; +asn_struct_print_f DriveAxleLocation_print; +asn_constr_check_f DriveAxleLocation_constraint; +ber_type_decoder_f DriveAxleLocation_decode_ber; +der_type_encoder_f DriveAxleLocation_encode_der; +xer_type_decoder_f DriveAxleLocation_decode_xer; +xer_type_encoder_f DriveAxleLocation_encode_xer; +jer_type_encoder_f DriveAxleLocation_encode_jer; +oer_type_decoder_f DriveAxleLocation_decode_oer; +oer_type_encoder_f DriveAxleLocation_encode_oer; +per_type_decoder_f DriveAxleLocation_decode_uper; +per_type_encoder_f DriveAxleLocation_encode_uper; +per_type_decoder_f DriveAxleLocation_decode_aper; +per_type_encoder_f DriveAxleLocation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveAxleLocation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLubePressure.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLubePressure.h new file mode 100644 index 000000000..77c3202cd --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleLubePressure.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DriveAxleLubePressure_H_ +#define _DriveAxleLubePressure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DriveAxleLubePressure */ +typedef long DriveAxleLubePressure_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DriveAxleLubePressure_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DriveAxleLubePressure; +asn_struct_free_f DriveAxleLubePressure_free; +asn_struct_print_f DriveAxleLubePressure_print; +asn_constr_check_f DriveAxleLubePressure_constraint; +ber_type_decoder_f DriveAxleLubePressure_decode_ber; +der_type_encoder_f DriveAxleLubePressure_encode_der; +xer_type_decoder_f DriveAxleLubePressure_decode_xer; +xer_type_encoder_f DriveAxleLubePressure_encode_xer; +jer_type_encoder_f DriveAxleLubePressure_encode_jer; +oer_type_decoder_f DriveAxleLubePressure_decode_oer; +oer_type_encoder_f DriveAxleLubePressure_encode_oer; +per_type_decoder_f DriveAxleLubePressure_decode_uper; +per_type_encoder_f DriveAxleLubePressure_encode_uper; +per_type_decoder_f DriveAxleLubePressure_decode_aper; +per_type_encoder_f DriveAxleLubePressure_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveAxleLubePressure_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleTemperature.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleTemperature.h new file mode 100644 index 000000000..1d62c1657 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DriveAxleTemperature.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DriveAxleTemperature_H_ +#define _DriveAxleTemperature_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DriveAxleTemperature */ +typedef long DriveAxleTemperature_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DriveAxleTemperature_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DriveAxleTemperature; +asn_struct_free_f DriveAxleTemperature_free; +asn_struct_print_f DriveAxleTemperature_print; +asn_constr_check_f DriveAxleTemperature_constraint; +ber_type_decoder_f DriveAxleTemperature_decode_ber; +der_type_encoder_f DriveAxleTemperature_encode_der; +xer_type_decoder_f DriveAxleTemperature_decode_xer; +xer_type_encoder_f DriveAxleTemperature_encode_xer; +jer_type_encoder_f DriveAxleTemperature_encode_jer; +oer_type_decoder_f DriveAxleTemperature_decode_oer; +oer_type_encoder_f DriveAxleTemperature_encode_oer; +per_type_decoder_f DriveAxleTemperature_decode_uper; +per_type_encoder_f DriveAxleTemperature_encode_uper; +per_type_decoder_f DriveAxleTemperature_decode_aper; +per_type_encoder_f DriveAxleTemperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DriveAxleTemperature_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DrivenLineOffsetLg.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DrivenLineOffsetLg.h new file mode 100644 index 000000000..c0cd4dd5f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DrivenLineOffsetLg.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DrivenLineOffsetLg_H_ +#define _DrivenLineOffsetLg_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetLg */ +typedef long DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg; +asn_struct_free_f DrivenLineOffsetLg_free; +asn_struct_print_f DrivenLineOffsetLg_print; +asn_constr_check_f DrivenLineOffsetLg_constraint; +ber_type_decoder_f DrivenLineOffsetLg_decode_ber; +der_type_encoder_f DrivenLineOffsetLg_encode_der; +xer_type_decoder_f DrivenLineOffsetLg_decode_xer; +xer_type_encoder_f DrivenLineOffsetLg_encode_xer; +jer_type_encoder_f DrivenLineOffsetLg_encode_jer; +oer_type_decoder_f DrivenLineOffsetLg_decode_oer; +oer_type_encoder_f DrivenLineOffsetLg_encode_oer; +per_type_decoder_f DrivenLineOffsetLg_decode_uper; +per_type_encoder_f DrivenLineOffsetLg_encode_uper; +per_type_decoder_f DrivenLineOffsetLg_decode_aper; +per_type_encoder_f DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetLg_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DrivenLineOffsetSm.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DrivenLineOffsetSm.h new file mode 100644 index 000000000..4e6e8d820 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DrivenLineOffsetSm.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DrivenLineOffsetSm_H_ +#define _DrivenLineOffsetSm_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivenLineOffsetSm */ +typedef long DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm; +asn_struct_free_f DrivenLineOffsetSm_free; +asn_struct_print_f DrivenLineOffsetSm_print; +asn_constr_check_f DrivenLineOffsetSm_constraint; +ber_type_decoder_f DrivenLineOffsetSm_decode_ber; +der_type_encoder_f DrivenLineOffsetSm_encode_der; +xer_type_decoder_f DrivenLineOffsetSm_decode_xer; +xer_type_encoder_f DrivenLineOffsetSm_encode_xer; +jer_type_encoder_f DrivenLineOffsetSm_encode_jer; +oer_type_decoder_f DrivenLineOffsetSm_decode_oer; +oer_type_encoder_f DrivenLineOffsetSm_encode_oer; +per_type_decoder_f DrivenLineOffsetSm_decode_uper; +per_type_encoder_f DrivenLineOffsetSm_encode_uper; +per_type_decoder_f DrivenLineOffsetSm_decode_aper; +per_type_encoder_f DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivenLineOffsetSm_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/DrivingWheelAngle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/DrivingWheelAngle.h new file mode 100644 index 000000000..baae8abac --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/DrivingWheelAngle.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _DrivingWheelAngle_H_ +#define _DrivingWheelAngle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* DrivingWheelAngle */ +typedef long DrivingWheelAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DrivingWheelAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DrivingWheelAngle; +asn_struct_free_f DrivingWheelAngle_free; +asn_struct_print_f DrivingWheelAngle_print; +asn_constr_check_f DrivingWheelAngle_constraint; +ber_type_decoder_f DrivingWheelAngle_decode_ber; +der_type_encoder_f DrivingWheelAngle_encode_der; +xer_type_decoder_f DrivingWheelAngle_decode_xer; +xer_type_encoder_f DrivingWheelAngle_encode_xer; +jer_type_encoder_f DrivingWheelAngle_encode_jer; +oer_type_decoder_f DrivingWheelAngle_decode_oer; +oer_type_encoder_f DrivingWheelAngle_encode_oer; +per_type_decoder_f DrivingWheelAngle_decode_uper; +per_type_encoder_f DrivingWheelAngle_encode_uper; +per_type_decoder_f DrivingWheelAngle_decode_aper; +per_type_encoder_f DrivingWheelAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DrivingWheelAngle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Duration.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Duration.h new file mode 100644 index 000000000..620815993 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Duration.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Duration_H_ +#define _Duration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Duration */ +typedef long Duration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Duration; +asn_struct_free_f Duration_free; +asn_struct_print_f Duration_print; +asn_constr_check_f Duration_constraint; +ber_type_decoder_f Duration_decode_ber; +der_type_encoder_f Duration_encode_der; +xer_type_decoder_f Duration_decode_xer; +xer_type_encoder_f Duration_encode_xer; +jer_type_encoder_f Duration_encode_jer; +oer_type_decoder_f Duration_decode_oer; +oer_type_encoder_f Duration_encode_oer; +per_type_decoder_f Duration_decode_uper; +per_type_encoder_f Duration_encode_uper; +per_type_decoder_f Duration_decode_aper; +per_type_encoder_f Duration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Duration_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EXTERNAL.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EXTERNAL.h new file mode 100644 index 000000000..b10ac11c6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EXTERNAL.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ASN1C-UsefulInformationObjectClasses" + * found in "/usr/local/share/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EXTERNAL_H_ +#define _EXTERNAL_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OBJECT_IDENTIFIER.h" +#include "NativeInteger.h" +#include "ObjectDescriptor.h" +#include "ANY.h" +#include "OCTET_STRING.h" +#include "BIT_STRING.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EXTERNAL__encoding_PR { + EXTERNAL__encoding_PR_NOTHING, /* No components present */ + EXTERNAL__encoding_PR_single_ASN1_type, + EXTERNAL__encoding_PR_octet_aligned, + EXTERNAL__encoding_PR_arbitrary +} EXTERNAL__encoding_PR; + +/* EXTERNAL */ +typedef struct EXTERNAL { + OBJECT_IDENTIFIER_t *direct_reference; /* OPTIONAL */ + long *indirect_reference; /* OPTIONAL */ + ObjectDescriptor_t *data_value_descriptor; /* OPTIONAL */ + struct EXTERNAL__encoding { + EXTERNAL__encoding_PR present; + union EXTERNAL__encoding_u { + ANY_t single_ASN1_type; + OCTET_STRING_t octet_aligned; + BIT_STRING_t arbitrary; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } encoding; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EXTERNAL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EXTERNAL; + +#ifdef __cplusplus +} +#endif + +#endif /* _EXTERNAL_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ElevationConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ElevationConfidence.h new file mode 100644 index 000000000..67c3b1586 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ElevationConfidence.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ElevationConfidence_H_ +#define _ElevationConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ElevationConfidence { + ElevationConfidence_unavailable = 0, + ElevationConfidence_elev_500_00 = 1, + ElevationConfidence_elev_200_00 = 2, + ElevationConfidence_elev_100_00 = 3, + ElevationConfidence_elev_050_00 = 4, + ElevationConfidence_elev_020_00 = 5, + ElevationConfidence_elev_010_00 = 6, + ElevationConfidence_elev_005_00 = 7, + ElevationConfidence_elev_002_00 = 8, + ElevationConfidence_elev_001_00 = 9, + ElevationConfidence_elev_000_50 = 10, + ElevationConfidence_elev_000_20 = 11, + ElevationConfidence_elev_000_10 = 12, + ElevationConfidence_elev_000_05 = 13, + ElevationConfidence_elev_000_02 = 14, + ElevationConfidence_elev_000_01 = 15 +} e_ElevationConfidence; + +/* ElevationConfidence */ +typedef long ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1; +asn_struct_free_f ElevationConfidence_free; +asn_struct_print_f ElevationConfidence_print; +asn_constr_check_f ElevationConfidence_constraint; +ber_type_decoder_f ElevationConfidence_decode_ber; +der_type_encoder_f ElevationConfidence_encode_der; +xer_type_decoder_f ElevationConfidence_decode_xer; +xer_type_encoder_f ElevationConfidence_encode_xer; +jer_type_encoder_f ElevationConfidence_encode_jer; +oer_type_decoder_f ElevationConfidence_decode_oer; +oer_type_encoder_f ElevationConfidence_encode_oer; +per_type_decoder_f ElevationConfidence_decode_uper; +per_type_encoder_f ElevationConfidence_encode_uper; +per_type_decoder_f ElevationConfidence_decode_aper; +per_type_encoder_f ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ElevationConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EmergencyDetails.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EmergencyDetails.h new file mode 100644 index 000000000..a27cda772 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EmergencyDetails.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EmergencyDetails_H_ +#define _EmergencyDetails_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SSPindex.h" +#include "SirenInUse.h" +#include "LightbarInUse.h" +#include "MultiVehicleResponse.h" +#include "ResponseType.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrivilegedEvents; + +/* EmergencyDetails */ +typedef struct EmergencyDetails { + SSPindex_t notUsed; + SirenInUse_t sirenUse; + LightbarInUse_t lightsUse; + MultiVehicleResponse_t multi; + struct PrivilegedEvents *events; /* OPTIONAL */ + ResponseType_t *responseType; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EmergencyDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_EmergencyDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_EmergencyDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyDetails_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EmergencyVehicleAlert.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EmergencyVehicleAlert.h new file mode 100644 index 000000000..9a7929621 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EmergencyVehicleAlert.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EmergencyVehicleAlert" + * found in "J2735-EmergencyVehicleAlert.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EmergencyVehicleAlert_H_ +#define _EmergencyVehicleAlert_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "TemporaryID.h" +#include "RoadSideAlert.h" +#include "ResponseType.h" +#include "VehicleMass.h" +#include "VehicleType.h" +#include "VehicleGroupAffected.h" +#include "IncidentResponseEquipment.h" +#include "ResponderGroupAffected.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EmergencyDetails; +struct Reg_EmergencyVehicleAlert; + +/* EmergencyVehicleAlert */ +typedef struct EmergencyVehicleAlert { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + TemporaryID_t *id; /* OPTIONAL */ + RoadSideAlert_t rsaMsg; + ResponseType_t *responseType; /* OPTIONAL */ + struct EmergencyDetails *details; /* OPTIONAL */ + VehicleMass_t *mass; /* OPTIONAL */ + VehicleType_t *basicType; /* OPTIONAL */ + VehicleGroupAffected_t *vehicleType; /* OPTIONAL */ + IncidentResponseEquipment_t *responseEquip; /* OPTIONAL */ + ResponderGroupAffected_t *responderType; /* OPTIONAL */ + struct EmergencyVehicleAlert__regional { + A_SEQUENCE_OF(struct Reg_EmergencyVehicleAlert) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EmergencyVehicleAlert_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleAlert; +extern asn_SEQUENCE_specifics_t asn_SPC_EmergencyVehicleAlert_specs_1; +extern asn_TYPE_member_t asn_MBR_EmergencyVehicleAlert_1[11]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmergencyVehicleAlert_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EmissionType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EmissionType.h new file mode 100644 index 000000000..ad8248a03 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EmissionType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EmissionType_H_ +#define _EmissionType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EmissionType { + EmissionType_typeA = 0, + EmissionType_typeB = 1, + EmissionType_typeC = 2, + EmissionType_typeD = 3, + EmissionType_typeE = 4 + /* + * Enumeration is extensible + */ +} e_EmissionType; + +/* EmissionType */ +typedef long EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1; +asn_struct_free_f EmissionType_free; +asn_struct_print_f EmissionType_print; +asn_constr_check_f EmissionType_constraint; +ber_type_decoder_f EmissionType_decode_ber; +der_type_encoder_f EmissionType_encode_der; +xer_type_decoder_f EmissionType_decode_xer; +xer_type_encoder_f EmissionType_encode_xer; +jer_type_encoder_f EmissionType_encode_jer; +oer_type_decoder_f EmissionType_decode_oer; +oer_type_encoder_f EmissionType_encode_oer; +per_type_decoder_f EmissionType_decode_uper; +per_type_encoder_f EmissionType_encode_uper; +per_type_decoder_f EmissionType_decode_aper; +per_type_encoder_f EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EmissionType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EnabledLaneList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EnabledLaneList.h new file mode 100644 index 000000000..9239d2a2a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EnabledLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EnabledLaneList_H_ +#define _EnabledLaneList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LaneID.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* EnabledLaneList */ +typedef struct EnabledLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EnabledLaneList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EssMobileFriction.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EssMobileFriction.h new file mode 100644 index 000000000..1445c8ece --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EssMobileFriction.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NTCIP" + * found in "J2735-NTCIP.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EssMobileFriction_H_ +#define _EssMobileFriction_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* EssMobileFriction */ +typedef long EssMobileFriction_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EssMobileFriction_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EssMobileFriction; +asn_struct_free_f EssMobileFriction_free; +asn_struct_print_f EssMobileFriction_print; +asn_constr_check_f EssMobileFriction_constraint; +ber_type_decoder_f EssMobileFriction_decode_ber; +der_type_encoder_f EssMobileFriction_encode_der; +xer_type_decoder_f EssMobileFriction_decode_xer; +xer_type_encoder_f EssMobileFriction_encode_xer; +jer_type_encoder_f EssMobileFriction_encode_jer; +oer_type_decoder_f EssMobileFriction_decode_oer; +oer_type_encoder_f EssMobileFriction_encode_oer; +per_type_decoder_f EssMobileFriction_decode_uper; +per_type_encoder_f EssMobileFriction_encode_uper; +per_type_decoder_f EssMobileFriction_decode_aper; +per_type_encoder_f EssMobileFriction_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EssMobileFriction_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipRate.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipRate.h new file mode 100644 index 000000000..7094f16ed --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipRate.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NTCIP" + * found in "J2735-NTCIP.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EssPrecipRate_H_ +#define _EssPrecipRate_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* EssPrecipRate */ +typedef long EssPrecipRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EssPrecipRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EssPrecipRate; +asn_struct_free_f EssPrecipRate_free; +asn_struct_print_f EssPrecipRate_print; +asn_constr_check_f EssPrecipRate_constraint; +ber_type_decoder_f EssPrecipRate_decode_ber; +der_type_encoder_f EssPrecipRate_encode_der; +xer_type_decoder_f EssPrecipRate_decode_xer; +xer_type_encoder_f EssPrecipRate_encode_xer; +jer_type_encoder_f EssPrecipRate_encode_jer; +oer_type_decoder_f EssPrecipRate_decode_oer; +oer_type_encoder_f EssPrecipRate_encode_oer; +per_type_decoder_f EssPrecipRate_decode_uper; +per_type_encoder_f EssPrecipRate_encode_uper; +per_type_decoder_f EssPrecipRate_decode_aper; +per_type_encoder_f EssPrecipRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EssPrecipRate_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipSituation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipSituation.h new file mode 100644 index 000000000..4f33ef4e2 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipSituation.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NTCIP" + * found in "J2735-NTCIP.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EssPrecipSituation_H_ +#define _EssPrecipSituation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EssPrecipSituation { + EssPrecipSituation_other = 1, + EssPrecipSituation_unknown = 2, + EssPrecipSituation_noPrecipitation = 3, + EssPrecipSituation_unidentifiedSlight = 4, + EssPrecipSituation_unidentifiedModerate = 5, + EssPrecipSituation_unidentifiedHeavy = 6, + EssPrecipSituation_snowSlight = 7, + EssPrecipSituation_snowModerate = 8, + EssPrecipSituation_snowHeavy = 9, + EssPrecipSituation_rainSlight = 10, + EssPrecipSituation_rainModerate = 11, + EssPrecipSituation_rainHeavy = 12, + EssPrecipSituation_frozenPrecipitationSlight = 13, + EssPrecipSituation_frozenPrecipitationModerate = 14, + EssPrecipSituation_frozenPrecipitationHeavy = 15 +} e_EssPrecipSituation; + +/* EssPrecipSituation */ +typedef long EssPrecipSituation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EssPrecipSituation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EssPrecipSituation; +extern const asn_INTEGER_specifics_t asn_SPC_EssPrecipSituation_specs_1; +asn_struct_free_f EssPrecipSituation_free; +asn_struct_print_f EssPrecipSituation_print; +asn_constr_check_f EssPrecipSituation_constraint; +ber_type_decoder_f EssPrecipSituation_decode_ber; +der_type_encoder_f EssPrecipSituation_encode_der; +xer_type_decoder_f EssPrecipSituation_decode_xer; +xer_type_encoder_f EssPrecipSituation_encode_xer; +jer_type_encoder_f EssPrecipSituation_encode_jer; +oer_type_decoder_f EssPrecipSituation_decode_oer; +oer_type_encoder_f EssPrecipSituation_encode_oer; +per_type_decoder_f EssPrecipSituation_decode_uper; +per_type_encoder_f EssPrecipSituation_encode_uper; +per_type_decoder_f EssPrecipSituation_decode_aper; +per_type_encoder_f EssPrecipSituation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EssPrecipSituation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipYesNo.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipYesNo.h new file mode 100644 index 000000000..e114ee243 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EssPrecipYesNo.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NTCIP" + * found in "J2735-NTCIP.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EssPrecipYesNo_H_ +#define _EssPrecipYesNo_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EssPrecipYesNo { + EssPrecipYesNo_precip = 1, + EssPrecipYesNo_noPrecip = 2, + EssPrecipYesNo_error = 3 +} e_EssPrecipYesNo; + +/* EssPrecipYesNo */ +typedef long EssPrecipYesNo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EssPrecipYesNo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EssPrecipYesNo; +extern const asn_INTEGER_specifics_t asn_SPC_EssPrecipYesNo_specs_1; +asn_struct_free_f EssPrecipYesNo_free; +asn_struct_print_f EssPrecipYesNo_print; +asn_constr_check_f EssPrecipYesNo_constraint; +ber_type_decoder_f EssPrecipYesNo_decode_ber; +der_type_encoder_f EssPrecipYesNo_encode_der; +xer_type_decoder_f EssPrecipYesNo_decode_xer; +xer_type_encoder_f EssPrecipYesNo_encode_xer; +jer_type_encoder_f EssPrecipYesNo_encode_jer; +oer_type_decoder_f EssPrecipYesNo_decode_oer; +oer_type_encoder_f EssPrecipYesNo_encode_oer; +per_type_decoder_f EssPrecipYesNo_decode_uper; +per_type_encoder_f EssPrecipYesNo_encode_uper; +per_type_decoder_f EssPrecipYesNo_decode_aper; +per_type_encoder_f EssPrecipYesNo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EssPrecipYesNo_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EssSolarRadiation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EssSolarRadiation.h new file mode 100644 index 000000000..d6fb15dbd --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EssSolarRadiation.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NTCIP" + * found in "J2735-NTCIP.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EssSolarRadiation_H_ +#define _EssSolarRadiation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* EssSolarRadiation */ +typedef long EssSolarRadiation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EssSolarRadiation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EssSolarRadiation; +asn_struct_free_f EssSolarRadiation_free; +asn_struct_print_f EssSolarRadiation_print; +asn_constr_check_f EssSolarRadiation_constraint; +ber_type_decoder_f EssSolarRadiation_decode_ber; +der_type_encoder_f EssSolarRadiation_encode_der; +xer_type_decoder_f EssSolarRadiation_decode_xer; +xer_type_encoder_f EssSolarRadiation_encode_xer; +jer_type_encoder_f EssSolarRadiation_encode_jer; +oer_type_decoder_f EssSolarRadiation_decode_oer; +oer_type_encoder_f EssSolarRadiation_encode_oer; +per_type_decoder_f EssSolarRadiation_decode_uper; +per_type_encoder_f EssSolarRadiation_encode_uper; +per_type_decoder_f EssSolarRadiation_decode_aper; +per_type_encoder_f EssSolarRadiation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EssSolarRadiation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/EventDescription.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/EventDescription.h new file mode 100644 index 000000000..0c6a9797b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/EventDescription.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _EventDescription_H_ +#define _EventDescription_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ITIScodes.h" +#include "Priority.h" +#include "HeadingSlice.h" +#include "Extent.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_EventDescription; + +/* EventDescription */ +typedef struct EventDescription { + ITIScodes_t typeEvent; + struct EventDescription__description { + A_SEQUENCE_OF(ITIScodes_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *description; + Priority_t *priority; /* OPTIONAL */ + HeadingSlice_t *heading; /* OPTIONAL */ + Extent_t *extent; /* OPTIONAL */ + struct EventDescription__regional { + A_SEQUENCE_OF(struct Reg_EventDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EventDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EventDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_EventDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_EventDescription_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventDescription_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ExitService.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ExitService.h new file mode 100644 index 000000000..1a0aec067 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ExitService.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ExitService_H_ +#define _ExitService_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "ITIScodes.h" +#include "ITIStextPhrase.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExitService__Member__item_PR { + ExitService__Member__item_PR_NOTHING, /* No components present */ + ExitService__Member__item_PR_itis, + ExitService__Member__item_PR_text +} ExitService__Member__item_PR; + +/* Forward definitions */ +typedef struct ExitService__Member { + struct ExitService__Member__item { + ExitService__Member__item_PR present; + union ExitService__Member__item_u { + ITIScodes_t itis; + ITIStextPhrase_t text; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } item; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ExitService__Member; + +/* ExitService */ +typedef struct ExitService { + A_SEQUENCE_OF(ExitService__Member) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ExitService_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExitService; +extern asn_SET_OF_specifics_t asn_SPC_ExitService_specs_1; +extern asn_TYPE_member_t asn_MBR_ExitService_1[1]; +extern asn_per_constraints_t asn_PER_type_ExitService_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExitService_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Extent.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Extent.h new file mode 100644 index 000000000..4f5067c78 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Extent.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Extent_H_ +#define _Extent_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Extent { + Extent_useInstantlyOnly = 0, + Extent_useFor3meters = 1, + Extent_useFor10meters = 2, + Extent_useFor50meters = 3, + Extent_useFor100meters = 4, + Extent_useFor500meters = 5, + Extent_useFor1000meters = 6, + Extent_useFor5000meters = 7, + Extent_useFor10000meters = 8, + Extent_useFor50000meters = 9, + Extent_useFor100000meters = 10, + Extent_useFor500000meters = 11, + Extent_useFor1000000meters = 12, + Extent_useFor5000000meters = 13, + Extent_useFor10000000meters = 14, + Extent_forever = 15 +} e_Extent; + +/* Extent */ +typedef long Extent_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Extent_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Extent; +extern const asn_INTEGER_specifics_t asn_SPC_Extent_specs_1; +asn_struct_free_f Extent_free; +asn_struct_print_f Extent_print; +asn_constr_check_f Extent_constraint; +ber_type_decoder_f Extent_decode_ber; +der_type_encoder_f Extent_encode_der; +xer_type_decoder_f Extent_decode_xer; +xer_type_encoder_f Extent_encode_xer; +jer_type_encoder_f Extent_encode_jer; +oer_type_decoder_f Extent_decode_oer; +oer_type_encoder_f Extent_encode_oer; +per_type_decoder_f Extent_decode_uper; +per_type_encoder_f Extent_encode_uper; +per_type_decoder_f Extent_decode_aper; +per_type_encoder_f Extent_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Extent_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ExteriorLights.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ExteriorLights.h new file mode 100644 index 000000000..5be7493b8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ExteriorLights.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ExteriorLights_H_ +#define _ExteriorLights_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExteriorLights { + ExteriorLights_lowBeamHeadlightsOn = 0, + ExteriorLights_highBeamHeadlightsOn = 1, + ExteriorLights_leftTurnSignalOn = 2, + ExteriorLights_rightTurnSignalOn = 3, + ExteriorLights_hazardSignalOn = 4, + ExteriorLights_automaticLightControlOn = 5, + ExteriorLights_daytimeRunningLightsOn = 6, + ExteriorLights_fogLightOn = 7, + ExteriorLights_parkingLightsOn = 8 +} e_ExteriorLights; + +/* ExteriorLights */ +typedef BIT_STRING_t ExteriorLights_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExteriorLights; +asn_struct_free_f ExteriorLights_free; +asn_struct_print_f ExteriorLights_print; +asn_constr_check_f ExteriorLights_constraint; +ber_type_decoder_f ExteriorLights_decode_ber; +der_type_encoder_f ExteriorLights_encode_der; +xer_type_decoder_f ExteriorLights_decode_xer; +xer_type_encoder_f ExteriorLights_encode_xer; +jer_type_encoder_f ExteriorLights_encode_jer; +oer_type_decoder_f ExteriorLights_decode_oer; +oer_type_encoder_f ExteriorLights_encode_oer; +per_type_decoder_f ExteriorLights_decode_uper; +per_type_encoder_f ExteriorLights_encode_uper; +per_type_decoder_f ExteriorLights_decode_aper; +per_type_encoder_f ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExteriorLights_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/FuelType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/FuelType.h new file mode 100644 index 000000000..60e0ec344 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/FuelType.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _FuelType_H_ +#define _FuelType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* FuelType */ +typedef long FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FuelType; +asn_struct_free_f FuelType_free; +asn_struct_print_f FuelType_print; +asn_constr_check_f FuelType_constraint; +ber_type_decoder_f FuelType_decode_ber; +der_type_encoder_f FuelType_encode_der; +xer_type_decoder_f FuelType_decode_xer; +xer_type_encoder_f FuelType_encode_xer; +jer_type_encoder_f FuelType_encode_jer; +oer_type_decoder_f FuelType_decode_oer; +oer_type_encoder_f FuelType_encode_oer; +per_type_decoder_f FuelType_decode_uper; +per_type_encoder_f FuelType_encode_uper; +per_type_decoder_f FuelType_decode_aper; +per_type_encoder_f FuelType_encode_aper; +#define FuelType_unknownFuel ((FuelType_t)0) +#define FuelType_gasoline ((FuelType_t)1) +#define FuelType_ethanol ((FuelType_t)2) +#define FuelType_diesel ((FuelType_t)3) +#define FuelType_electric ((FuelType_t)4) +#define FuelType_hybrid ((FuelType_t)5) +#define FuelType_hydrogen ((FuelType_t)6) +#define FuelType_natGasLiquid ((FuelType_t)7) +#define FuelType_natGasComp ((FuelType_t)8) +#define FuelType_propane ((FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _FuelType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/FullPositionVector.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/FullPositionVector.h new file mode 100644 index 000000000..e2ee328a1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/FullPositionVector.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _FullPositionVector_H_ +#define _FullPositionVector_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include "Common_Elevation.h" +#include "Heading.h" +#include "TimeConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DDateTime; +struct TransmissionAndSpeed; +struct PositionalAccuracy; +struct PositionConfidenceSet; +struct SpeedandHeadingandThrottleConfidence; + +/* FullPositionVector */ +typedef struct FullPositionVector { + struct DDateTime *utcTime; /* OPTIONAL */ + Longitude_t Long; + Latitude_t lat; + Common_Elevation_t *elevation; /* OPTIONAL */ + Heading_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + struct PositionalAccuracy *posAccuracy; /* OPTIONAL */ + TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FullPositionVector_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/FurtherInfoID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/FurtherInfoID.h new file mode 100644 index 000000000..15fabd635 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/FurtherInfoID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _FurtherInfoID_H_ +#define _FurtherInfoID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* FurtherInfoID */ +typedef OCTET_STRING_t FurtherInfoID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FurtherInfoID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FurtherInfoID; +asn_struct_free_f FurtherInfoID_free; +asn_struct_print_f FurtherInfoID_print; +asn_constr_check_f FurtherInfoID_constraint; +ber_type_decoder_f FurtherInfoID_decode_ber; +der_type_encoder_f FurtherInfoID_encode_der; +xer_type_decoder_f FurtherInfoID_decode_xer; +xer_type_encoder_f FurtherInfoID_encode_xer; +jer_type_encoder_f FurtherInfoID_encode_jer; +oer_type_decoder_f FurtherInfoID_decode_oer; +oer_type_encoder_f FurtherInfoID_encode_oer; +per_type_decoder_f FurtherInfoID_decode_uper; +per_type_encoder_f FurtherInfoID_encode_uper; +per_type_decoder_f FurtherInfoID_decode_aper; +per_type_encoder_f FurtherInfoID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FurtherInfoID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/GNSSstatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/GNSSstatus.h new file mode 100644 index 000000000..36585e125 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/GNSSstatus.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _GNSSstatus_H_ +#define _GNSSstatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNSSstatus { + GNSSstatus_unavailable = 0, + GNSSstatus_isHealthy = 1, + GNSSstatus_isMonitored = 2, + GNSSstatus_baseStationType = 3, + GNSSstatus_aPDOPofUnder5 = 4, + GNSSstatus_inViewOfUnder5 = 5, + GNSSstatus_localCorrectionsPresent = 6, + GNSSstatus_networkCorrectionsPresent = 7 +} e_GNSSstatus; + +/* GNSSstatus */ +typedef BIT_STRING_t GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNSSstatus; +asn_struct_free_f GNSSstatus_free; +asn_struct_print_f GNSSstatus_print; +asn_constr_check_f GNSSstatus_constraint; +ber_type_decoder_f GNSSstatus_decode_ber; +der_type_encoder_f GNSSstatus_encode_der; +xer_type_decoder_f GNSSstatus_decode_xer; +xer_type_encoder_f GNSSstatus_encode_xer; +jer_type_encoder_f GNSSstatus_encode_jer; +oer_type_decoder_f GNSSstatus_decode_oer; +oer_type_encoder_f GNSSstatus_encode_oer; +per_type_decoder_f GNSSstatus_decode_uper; +per_type_encoder_f GNSSstatus_encode_uper; +per_type_decoder_f GNSSstatus_decode_aper; +per_type_encoder_f GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNSSstatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/GenericLane.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/GenericLane.h new file mode 100644 index 000000000..95842d08d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/GenericLane.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _GenericLane_H_ +#define _GenericLane_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LaneID.h" +#include "DescriptiveName.h" +#include "ApproachID.h" +#include "LaneAttributes.h" +#include "AllowedManeuvers.h" +#include "NodeListXY.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectsToList; +struct OverlayLaneList; +struct Reg_GenericLane; + +/* GenericLane */ +typedef struct GenericLane { + LaneID_t laneID; + DescriptiveName_t *name; /* OPTIONAL */ + ApproachID_t *ingressApproach; /* OPTIONAL */ + ApproachID_t *egressApproach; /* OPTIONAL */ + LaneAttributes_t laneAttributes; + AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + NodeListXY_t nodeList; + struct ConnectsToList *connectsTo; /* OPTIONAL */ + struct OverlayLaneList *overlays; /* OPTIONAL */ + struct GenericLane__regional { + A_SEQUENCE_OF(struct Reg_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenericLane_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/GenericLocations.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/GenericLocations.h new file mode 100644 index 000000000..c7cd3bd5b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/GenericLocations.h @@ -0,0 +1,151 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _GenericLocations_H_ +#define _GenericLocations_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GenericLocations { + GenericLocations_on_bridges = 7937, + GenericLocations_in_tunnels = 7938, + GenericLocations_entering_or_leaving_tunnels = 7939, + GenericLocations_on_ramps = 7940, + GenericLocations_in_road_construction_area = 7941, + GenericLocations_around_a_curve = 7942, + GenericLocations_on_curve = 8026, + GenericLocations_on_tracks = 8009, + GenericLocations_in_street = 8025, + GenericLocations_shoulder = 8027, + GenericLocations_on_minor_roads = 7943, + GenericLocations_in_the_opposing_lanes = 7944, + GenericLocations_adjacent_to_roadway = 7945, + GenericLocations_across_tracks = 8024, + GenericLocations_on_bend = 7946, + GenericLocations_intersection = 8032, + GenericLocations_entire_intersection = 7947, + GenericLocations_in_the_median = 7948, + GenericLocations_moved_to_side_of_road = 7949, + GenericLocations_moved_to_shoulder = 7950, + GenericLocations_on_the_roadway = 7951, + GenericLocations_dip = 8010, + GenericLocations_traffic_circle = 8011, + GenericLocations_crossover = 8028, + GenericLocations_cross_road = 8029, + GenericLocations_side_road = 8030, + GenericLocations_to = 8014, + GenericLocations_by = 8015, + GenericLocations_through = 8016, + GenericLocations_area_of = 8017, + GenericLocations_under = 8018, + GenericLocations_over = 8019, + GenericLocations_from = 8020, + GenericLocations_approaching = 8021, + GenericLocations_entering_at = 8022, + GenericLocations_exiting_at = 8023, + GenericLocations_in_shaded_areas = 7952, + GenericLocations_in_low_lying_areas = 7953, + GenericLocations_in_the_downtown_area = 7954, + GenericLocations_in_the_inner_city_area = 7955, + GenericLocations_in_parts = 7956, + GenericLocations_in_some_places = 7957, + GenericLocations_in_the_ditch = 7958, + GenericLocations_in_the_valley = 7959, + GenericLocations_on_hill_top = 7960, + GenericLocations_near_the_foothills = 7961, + GenericLocations_at_high_altitudes = 7962, + GenericLocations_near_the_lake = 7963, + GenericLocations_near_the_shore = 7964, + GenericLocations_nearby_basin = 8008, + GenericLocations_over_the_crest_of_a_hill = 7965, + GenericLocations_other_than_on_the_roadway = 7966, + GenericLocations_near_the_beach = 7967, + GenericLocations_near_beach_access_point = 7968, + GenericLocations_mountain_pass = 8006, + GenericLocations_lower_level = 7969, + GenericLocations_upper_level = 7970, + GenericLocations_airport = 7971, + GenericLocations_concourse = 7972, + GenericLocations_gate = 7973, + GenericLocations_baggage_claim = 7974, + GenericLocations_customs_point = 7975, + GenericLocations_reservation_center = 8007, + GenericLocations_station = 7976, + GenericLocations_platform = 7977, + GenericLocations_dock = 7978, + GenericLocations_depot = 7979, + GenericLocations_ev_charging_point = 7980, + GenericLocations_information_welcome_point = 7981, + GenericLocations_at_rest_area = 7982, + GenericLocations_at_service_area = 7983, + GenericLocations_at_weigh_station = 7984, + GenericLocations_roadside_park = 8033, + GenericLocations_picnic_areas = 7985, + GenericLocations_rest_area = 7986, + GenericLocations_service_stations = 7987, + GenericLocations_toilets = 7988, + GenericLocations_bus_stop = 8031, + GenericLocations_park_and_ride_lot = 8012, + GenericLocations_on_the_right = 7989, + GenericLocations_on_the_left = 7990, + GenericLocations_in_the_center = 7991, + GenericLocations_in_the_opposite_direction = 7992, + GenericLocations_cross_traffic = 7993, + GenericLocations_northbound_traffic = 7994, + GenericLocations_eastbound_traffic = 7995, + GenericLocations_southbound_traffic = 7996, + GenericLocations_westbound_traffic = 7997, + GenericLocations_north = 7998, + GenericLocations_south = 7999, + GenericLocations_east = 8000, + GenericLocations_west = 8001, + GenericLocations_northeast = 8002, + GenericLocations_northwest = 8003, + GenericLocations_southeast = 8004, + GenericLocations_southwest = 8005 + /* + * Enumeration is extensible + */ +} e_GenericLocations; + +/* GenericLocations */ +typedef long GenericLocations_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GenericLocations_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GenericLocations; +extern const asn_INTEGER_specifics_t asn_SPC_GenericLocations_specs_1; +asn_struct_free_f GenericLocations_free; +asn_struct_print_f GenericLocations_print; +asn_constr_check_f GenericLocations_constraint; +ber_type_decoder_f GenericLocations_decode_ber; +der_type_encoder_f GenericLocations_encode_der; +xer_type_decoder_f GenericLocations_decode_xer; +xer_type_encoder_f GenericLocations_encode_xer; +jer_type_encoder_f GenericLocations_encode_jer; +oer_type_decoder_f GenericLocations_decode_oer; +oer_type_encoder_f GenericLocations_encode_oer; +per_type_decoder_f GenericLocations_decode_uper; +per_type_encoder_f GenericLocations_encode_uper; +per_type_decoder_f GenericLocations_decode_aper; +per_type_encoder_f GenericLocations_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenericLocations_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/GenericSignage.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/GenericSignage.h new file mode 100644 index 000000000..74daf0c8d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/GenericSignage.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _GenericSignage_H_ +#define _GenericSignage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "ITIScodes.h" +#include "ITIStextPhrase.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GenericSignage__Member__item_PR { + GenericSignage__Member__item_PR_NOTHING, /* No components present */ + GenericSignage__Member__item_PR_itis, + GenericSignage__Member__item_PR_text +} GenericSignage__Member__item_PR; + +/* Forward definitions */ +typedef struct GenericSignage__Member { + struct GenericSignage__Member__item { + GenericSignage__Member__item_PR present; + union GenericSignage__Member__item_u { + ITIScodes_t itis; + ITIStextPhrase_t text; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } item; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GenericSignage__Member; + +/* GenericSignage */ +typedef struct GenericSignage { + A_SEQUENCE_OF(GenericSignage__Member) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GenericSignage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GenericSignage; +extern asn_SET_OF_specifics_t asn_SPC_GenericSignage_specs_1; +extern asn_TYPE_member_t asn_MBR_GenericSignage_1[1]; +extern asn_per_constraints_t asn_PER_type_GenericSignage_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GenericSignage_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/GeographicalPath.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/GeographicalPath.h new file mode 100644 index 000000000..504d0eeb0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/GeographicalPath.h @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _GeographicalPath_H_ +#define _GeographicalPath_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "LaneWidth.h" +#include "DirectionOfUse.h" +#include "BOOLEAN.h" +#include "HeadingSlice.h" +#include "OffsetSystem.h" +#include "GeometricProjection.h" +#include "ValidRegion.h" +#include "constr_CHOICE.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GeographicalPath__description_PR { + GeographicalPath__description_PR_NOTHING, /* No components present */ + GeographicalPath__description_PR_path, + GeographicalPath__description_PR_geometry, + GeographicalPath__description_PR_oldRegion + /* Extensions may appear below */ + +} GeographicalPath__description_PR; + +/* Forward declarations */ +struct RoadSegmentReferenceID; +struct Position3D; +struct Reg_GeographicalPath; + +/* GeographicalPath */ +typedef struct GeographicalPath { + DescriptiveName_t *name; /* OPTIONAL */ + struct RoadSegmentReferenceID *id; /* OPTIONAL */ + struct Position3D *anchor; /* OPTIONAL */ + LaneWidth_t *laneWidth; /* OPTIONAL */ + DirectionOfUse_t *directionality; /* OPTIONAL */ + BOOLEAN_t *closedPath; /* OPTIONAL */ + HeadingSlice_t *direction; /* OPTIONAL */ + struct GeographicalPath__description { + GeographicalPath__description_PR present; + union GeographicalPath__description_u { + OffsetSystem_t path; + GeometricProjection_t geometry; + ValidRegion_t oldRegion; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *description; + struct GeographicalPath__regional { + A_SEQUENCE_OF(struct Reg_GeographicalPath) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GeographicalPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GeographicalPath; +extern asn_SEQUENCE_specifics_t asn_SPC_GeographicalPath_specs_1; +extern asn_TYPE_member_t asn_MBR_GeographicalPath_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeographicalPath_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/GeometricProjection.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/GeometricProjection.h new file mode 100644 index 000000000..273e253fd --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/GeometricProjection.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _GeometricProjection_H_ +#define _GeometricProjection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "HeadingSlice.h" +#include "Extent.h" +#include "LaneWidth.h" +#include "Circle.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_GeometricProjection; + +/* GeometricProjection */ +typedef struct GeometricProjection { + HeadingSlice_t direction; + Extent_t *extent; /* OPTIONAL */ + LaneWidth_t *laneWidth; /* OPTIONAL */ + Circle_t circle; + struct GeometricProjection__regional { + A_SEQUENCE_OF(struct Reg_GeometricProjection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GeometricProjection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GeometricProjection; +extern asn_SEQUENCE_specifics_t asn_SPC_GeometricProjection_specs_1; +extern asn_TYPE_member_t asn_MBR_GeometricProjection_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeometricProjection_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/GraphicString.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/GraphicString.h new file mode 100644 index 000000000..807e9d6b0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/GraphicString.h @@ -0,0 +1,56 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _GraphicString_H_ +#define _GraphicString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t GraphicString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_GraphicString; +extern asn_TYPE_operation_t asn_OP_GraphicString; + +#define GraphicString_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define GraphicString_print OCTET_STRING_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define GraphicString_compare OCTET_STRING_compare + +#define GraphicString_constraint asn_generic_unknown_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define GraphicString_decode_ber OCTET_STRING_decode_ber +#define GraphicString_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define GraphicString_decode_xer OCTET_STRING_decode_xer_hex +#define GraphicString_encode_xer OCTET_STRING_encode_xer +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define GraphicString_encode_jer OCTET_STRING_encode_jer +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define GraphicString_decode_uper OCTET_STRING_decode_uper +#define GraphicString_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define GraphicString_decode_aper OCTET_STRING_decode_aper +#define GraphicString_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _GraphicString_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/GrossDistance.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/GrossDistance.h new file mode 100644 index 000000000..128358170 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/GrossDistance.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _GrossDistance_H_ +#define _GrossDistance_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GrossDistance */ +typedef long GrossDistance_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GrossDistance_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GrossDistance; +asn_struct_free_f GrossDistance_free; +asn_struct_print_f GrossDistance_print; +asn_constr_check_f GrossDistance_constraint; +ber_type_decoder_f GrossDistance_decode_ber; +der_type_encoder_f GrossDistance_encode_der; +xer_type_decoder_f GrossDistance_decode_xer; +xer_type_encoder_f GrossDistance_encode_xer; +jer_type_encoder_f GrossDistance_encode_jer; +oer_type_decoder_f GrossDistance_decode_oer; +oer_type_encoder_f GrossDistance_encode_oer; +per_type_decoder_f GrossDistance_decode_uper; +per_type_encoder_f GrossDistance_encode_uper; +per_type_decoder_f GrossDistance_decode_aper; +per_type_encoder_f GrossDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GrossDistance_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/GrossSpeed.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/GrossSpeed.h new file mode 100644 index 000000000..b040e072c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/GrossSpeed.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _GrossSpeed_H_ +#define _GrossSpeed_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* GrossSpeed */ +typedef long GrossSpeed_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GrossSpeed_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GrossSpeed; +asn_struct_free_f GrossSpeed_free; +asn_struct_print_f GrossSpeed_print; +asn_constr_check_f GrossSpeed_constraint; +ber_type_decoder_f GrossSpeed_decode_ber; +der_type_encoder_f GrossSpeed_encode_der; +xer_type_decoder_f GrossSpeed_decode_xer; +xer_type_encoder_f GrossSpeed_encode_xer; +jer_type_encoder_f GrossSpeed_encode_jer; +oer_type_decoder_f GrossSpeed_decode_oer; +oer_type_encoder_f GrossSpeed_encode_oer; +per_type_decoder_f GrossSpeed_decode_uper; +per_type_encoder_f GrossSpeed_encode_uper; +per_type_decoder_f GrossSpeed_decode_aper; +per_type_encoder_f GrossSpeed_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GrossSpeed_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Header.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Header.h new file mode 100644 index 000000000..d4ffe3877 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Header.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Header_H_ +#define _Header_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DYear.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "Common_MsgCount.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Header */ +typedef struct Header { + DYear_t *year; /* OPTIONAL */ + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t *secMark; /* OPTIONAL */ + Common_MsgCount_t *msgIssueRevision; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Header_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Header; +extern asn_SEQUENCE_specifics_t asn_SPC_Header_specs_1; +extern asn_TYPE_member_t asn_MBR_Header_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Header_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Heading.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Heading.h new file mode 100644 index 000000000..ff12fcc54 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Heading.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Heading_H_ +#define _Heading_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Heading */ +typedef long Heading_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Heading_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Heading; +asn_struct_free_f Heading_free; +asn_struct_print_f Heading_print; +asn_constr_check_f Heading_constraint; +ber_type_decoder_f Heading_decode_ber; +der_type_encoder_f Heading_encode_der; +xer_type_decoder_f Heading_decode_xer; +xer_type_encoder_f Heading_encode_xer; +jer_type_encoder_f Heading_encode_jer; +oer_type_decoder_f Heading_decode_oer; +oer_type_encoder_f Heading_encode_oer; +per_type_decoder_f Heading_decode_uper; +per_type_encoder_f Heading_encode_uper; +per_type_decoder_f Heading_decode_aper; +per_type_encoder_f Heading_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Heading_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/HeadingConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/HeadingConfidence.h new file mode 100644 index 000000000..dd32f6654 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/HeadingConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _HeadingConfidence_H_ +#define _HeadingConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingConfidence { + HeadingConfidence_unavailable = 0, + HeadingConfidence_prec10deg = 1, + HeadingConfidence_prec05deg = 2, + HeadingConfidence_prec01deg = 3, + HeadingConfidence_prec0_1deg = 4, + HeadingConfidence_prec0_05deg = 5, + HeadingConfidence_prec0_01deg = 6, + HeadingConfidence_prec0_0125deg = 7 +} e_HeadingConfidence; + +/* HeadingConfidence */ +typedef long HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_HeadingConfidence_specs_1; +asn_struct_free_f HeadingConfidence_free; +asn_struct_print_f HeadingConfidence_print; +asn_constr_check_f HeadingConfidence_constraint; +ber_type_decoder_f HeadingConfidence_decode_ber; +der_type_encoder_f HeadingConfidence_encode_der; +xer_type_decoder_f HeadingConfidence_decode_xer; +xer_type_encoder_f HeadingConfidence_encode_xer; +jer_type_encoder_f HeadingConfidence_encode_jer; +oer_type_decoder_f HeadingConfidence_decode_oer; +oer_type_encoder_f HeadingConfidence_encode_oer; +per_type_decoder_f HeadingConfidence_decode_uper; +per_type_encoder_f HeadingConfidence_encode_uper; +per_type_decoder_f HeadingConfidence_decode_aper; +per_type_encoder_f HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/HeadingSlice.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/HeadingSlice.h new file mode 100644 index 000000000..6b61c69d0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/HeadingSlice.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _HeadingSlice_H_ +#define _HeadingSlice_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HeadingSlice { + HeadingSlice_from000_0to022_5degrees = 0, + HeadingSlice_from022_5to045_0degrees = 1, + HeadingSlice_from045_0to067_5degrees = 2, + HeadingSlice_from067_5to090_0degrees = 3, + HeadingSlice_from090_0to112_5degrees = 4, + HeadingSlice_from112_5to135_0degrees = 5, + HeadingSlice_from135_0to157_5degrees = 6, + HeadingSlice_from157_5to180_0degrees = 7, + HeadingSlice_from180_0to202_5degrees = 8, + HeadingSlice_from202_5to225_0degrees = 9, + HeadingSlice_from225_0to247_5degrees = 10, + HeadingSlice_from247_5to270_0degrees = 11, + HeadingSlice_from270_0to292_5degrees = 12, + HeadingSlice_from292_5to315_0degrees = 13, + HeadingSlice_from315_0to337_5degrees = 14, + HeadingSlice_from337_5to360_0degrees = 15 +} e_HeadingSlice; + +/* HeadingSlice */ +typedef BIT_STRING_t HeadingSlice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HeadingSlice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HeadingSlice; +asn_struct_free_f HeadingSlice_free; +asn_struct_print_f HeadingSlice_print; +asn_constr_check_f HeadingSlice_constraint; +ber_type_decoder_f HeadingSlice_decode_ber; +der_type_encoder_f HeadingSlice_encode_der; +xer_type_decoder_f HeadingSlice_decode_xer; +xer_type_encoder_f HeadingSlice_encode_xer; +jer_type_encoder_f HeadingSlice_encode_jer; +oer_type_decoder_f HeadingSlice_decode_oer; +oer_type_encoder_f HeadingSlice_encode_oer; +per_type_decoder_f HeadingSlice_decode_uper; +per_type_encoder_f HeadingSlice_encode_uper; +per_type_decoder_f HeadingSlice_decode_aper; +per_type_encoder_f HeadingSlice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HeadingSlice_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Holiday.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Holiday.h new file mode 100644 index 000000000..2f9a68c5b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Holiday.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Holiday_H_ +#define _Holiday_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Holiday { + Holiday_weekday = 0, + Holiday_holiday = 1 +} e_Holiday; + +/* Holiday */ +typedef long Holiday_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Holiday_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Holiday; +extern const asn_INTEGER_specifics_t asn_SPC_Holiday_specs_1; +asn_struct_free_f Holiday_free; +asn_struct_print_f Holiday_print; +asn_constr_check_f Holiday_constraint; +ber_type_decoder_f Holiday_decode_ber; +der_type_encoder_f Holiday_encode_der; +xer_type_decoder_f Holiday_decode_xer; +xer_type_encoder_f Holiday_encode_xer; +jer_type_encoder_f Holiday_encode_jer; +oer_type_decoder_f Holiday_decode_oer; +oer_type_encoder_f Holiday_encode_oer; +per_type_decoder_f Holiday_decode_uper; +per_type_encoder_f Holiday_encode_uper; +per_type_decoder_f Holiday_decode_aper; +per_type_encoder_f Holiday_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Holiday_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Hour.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Hour.h new file mode 100644 index 000000000..dc9ed9a38 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Hour.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Hour_H_ +#define _Hour_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Hour */ +typedef long Hour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Hour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Hour; +asn_struct_free_f Hour_free; +asn_struct_print_f Hour_print; +asn_constr_check_f Hour_constraint; +ber_type_decoder_f Hour_decode_ber; +der_type_encoder_f Hour_encode_der; +xer_type_decoder_f Hour_decode_xer; +xer_type_encoder_f Hour_encode_xer; +jer_type_encoder_f Hour_encode_jer; +oer_type_decoder_f Hour_decode_oer; +oer_type_encoder_f Hour_encode_oer; +per_type_decoder_f Hour_decode_uper; +per_type_encoder_f Hour_encode_uper; +per_type_decoder_f Hour_decode_aper; +per_type_encoder_f Hour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Hour_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/HumanPropelledType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/HumanPropelledType.h new file mode 100644 index 000000000..eade7e553 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/HumanPropelledType.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _HumanPropelledType_H_ +#define _HumanPropelledType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HumanPropelledType { + HumanPropelledType_unavailable = 0, + HumanPropelledType_otherTypes = 1, + HumanPropelledType_onFoot = 2, + HumanPropelledType_skateboard = 3, + HumanPropelledType_pushOrKickScooter = 4, + HumanPropelledType_wheelchair = 5 + /* + * Enumeration is extensible + */ +} e_HumanPropelledType; + +/* HumanPropelledType */ +typedef long HumanPropelledType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_HumanPropelledType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_HumanPropelledType; +extern const asn_INTEGER_specifics_t asn_SPC_HumanPropelledType_specs_1; +asn_struct_free_f HumanPropelledType_free; +asn_struct_print_f HumanPropelledType_print; +asn_constr_check_f HumanPropelledType_constraint; +ber_type_decoder_f HumanPropelledType_decode_ber; +der_type_encoder_f HumanPropelledType_encode_der; +xer_type_decoder_f HumanPropelledType_decode_xer; +xer_type_encoder_f HumanPropelledType_encode_xer; +jer_type_encoder_f HumanPropelledType_encode_jer; +oer_type_decoder_f HumanPropelledType_decode_oer; +oer_type_encoder_f HumanPropelledType_encode_oer; +per_type_decoder_f HumanPropelledType_decode_uper; +per_type_encoder_f HumanPropelledType_encode_uper; +per_type_decoder_f HumanPropelledType_decode_aper; +per_type_encoder_f HumanPropelledType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HumanPropelledType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IA5String.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IA5String.h new file mode 100644 index 000000000..195f474a1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IA5String.h @@ -0,0 +1,59 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _IA5String_H_ +#define _IA5String_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t IA5String_t; /* Implemented via OCTET STRING */ + +/* + * IA5String ASN.1 type definition. + */ +extern asn_TYPE_descriptor_t asn_DEF_IA5String; +extern asn_TYPE_operation_t asn_OP_IA5String; + +#define IA5String_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define IA5String_print OCTET_STRING_print_utf8 +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define IA5String_compare OCTET_STRING_compare + +asn_constr_check_f IA5String_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define IA5String_decode_ber OCTET_STRING_decode_ber +#define IA5String_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define IA5String_decode_xer OCTET_STRING_decode_xer_utf8 +#define IA5String_encode_xer OCTET_STRING_encode_xer_utf8 +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define IA5String_encode_jer OCTET_STRING_encode_jer_utf8 +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define IA5String_decode_uper OCTET_STRING_decode_uper +#define IA5String_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define IA5String_decode_aper OCTET_STRING_decode_aper +#define IA5String_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _IA5String_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/INTEGER.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/INTEGER.h new file mode 100644 index 000000000..1666e0bce --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/INTEGER.h @@ -0,0 +1,139 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _INTEGER_H_ +#define _INTEGER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; + +extern asn_TYPE_descriptor_t asn_DEF_INTEGER; +extern asn_TYPE_operation_t asn_OP_INTEGER; + +/* Map with to integer value association */ +typedef struct asn_INTEGER_enum_map_s { + long nat_value; /* associated native integer value */ + size_t enum_len; /* strlen("tag") */ + const char *enum_name; /* "tag" */ +} asn_INTEGER_enum_map_t; + +/* This type describes an enumeration for INTEGER and ENUMERATED types */ +typedef struct asn_INTEGER_specifics_s { + const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ + const unsigned int *enum2value; /* "tag" => N; sorted by tag */ + int map_count; /* Elements in either map */ + int extension; /* This map is extensible */ + int strict_enumeration; /* Enumeration set is fixed */ + int field_width; /* Size of native integer */ + int field_unsigned; /* Signed=0, unsigned=1 */ +} asn_INTEGER_specifics_t; + +ssize_t INTEGER__dump(const asn_TYPE_descriptor_t *td, + const INTEGER_t *st, + asn_app_consume_bytes_f *cb, + void *app_key, int plainOrXER); + +#define INTEGER_free ASN__PRIMITIVE_TYPE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f INTEGER_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f INTEGER_compare; + +#define INTEGER_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define INTEGER_decode_ber ber_decode_primitive +der_type_encoder_f INTEGER_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f INTEGER_decode_xer; +xer_type_encoder_f INTEGER_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f INTEGER_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f INTEGER_decode_oer; +oer_type_encoder_f INTEGER_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f INTEGER_decode_uper; +per_type_encoder_f INTEGER_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f INTEGER_decode_aper; +per_type_encoder_f INTEGER_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f INTEGER_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +/*********************************** + * Some handy conversion routines. * + ***********************************/ + +/* + * Natiwe size-independent conversion of native integers to/from INTEGER. + * (l_size) is in bytes. + * Returns 0 if it was possible to convert, -1 otherwise. + * -1/EINVAL: Mandatory argument missing + * -1/ERANGE: Value encoded is out of range for long representation + * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). + */ +int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); +int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); +int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); +int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); + +/* + * Size-specific conversion helpers. + */ +int asn_INTEGER2long(const INTEGER_t *i, long *l); +int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); +int asn_long2INTEGER(INTEGER_t *i, long l); +int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); +int asn_int642INTEGER(INTEGER_t *i, int64_t l); +int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); + +/* A version of strtol/strtoimax(3) with nicer error reporting. */ +enum asn_strtox_result_e { + ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ + ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ + ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ + ASN_STRTOX_OK = 0, /* Conversion succeeded, number ends at (*end) */ + ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeeded, but the string has extra stuff */ +}; +enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, + long *l); +enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, + unsigned long *l); +enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, + intmax_t *l); +enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, + uintmax_t *l); + +/* + * Convert the integer value into the corresponding enumeration map entry. + */ +const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( + const asn_INTEGER_specifics_t *specs, long value); + +#ifdef __cplusplus +} +#endif + +#endif /* _INTEGER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIScodes.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIScodes.h new file mode 100644 index 000000000..b4bcf8bb3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIScodes.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ITIScodes_H_ +#define _ITIScodes_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ITIScodes */ +typedef long ITIScodes_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ITIScodes_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ITIScodes; +asn_struct_free_f ITIScodes_free; +asn_struct_print_f ITIScodes_print; +asn_constr_check_f ITIScodes_constraint; +ber_type_decoder_f ITIScodes_decode_ber; +der_type_encoder_f ITIScodes_encode_der; +xer_type_decoder_f ITIScodes_decode_xer; +xer_type_encoder_f ITIScodes_encode_xer; +jer_type_encoder_f ITIScodes_encode_jer; +oer_type_decoder_f ITIScodes_decode_oer; +oer_type_encoder_f ITIScodes_encode_oer; +per_type_decoder_f ITIScodes_decode_uper; +per_type_encoder_f ITIScodes_encode_uper; +per_type_decoder_f ITIScodes_decode_aper; +per_type_encoder_f ITIScodes_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ITIScodes_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIScodesAndText.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIScodesAndText.h new file mode 100644 index 000000000..eab1fa493 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIScodesAndText.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ITIScodesAndText_H_ +#define _ITIScodesAndText_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "ITIScodes.h" +#include "ITIStext.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ITIScodesAndText__Member__item_PR { + ITIScodesAndText__Member__item_PR_NOTHING, /* No components present */ + ITIScodesAndText__Member__item_PR_itis, + ITIScodesAndText__Member__item_PR_text +} ITIScodesAndText__Member__item_PR; + +/* Forward definitions */ +typedef struct ITIScodesAndText__Member { + struct ITIScodesAndText__Member__item { + ITIScodesAndText__Member__item_PR present; + union ITIScodesAndText__Member__item_u { + ITIScodes_t itis; + ITIStext_t text; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } item; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ITIScodesAndText__Member; + +/* ITIScodesAndText */ +typedef struct ITIScodesAndText { + A_SEQUENCE_OF(ITIScodesAndText__Member) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ITIScodesAndText_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ITIScodesAndText; +extern asn_SET_OF_specifics_t asn_SPC_ITIScodesAndText_specs_1; +extern asn_TYPE_member_t asn_MBR_ITIScodesAndText_1[1]; +extern asn_per_constraints_t asn_PER_type_ITIScodesAndText_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ITIScodesAndText_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIStext.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIStext.h new file mode 100644 index 000000000..cf9e66ad3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIStext.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ITIStext_H_ +#define _ITIStext_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IA5String.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ITIStext */ +typedef IA5String_t ITIStext_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ITIStext_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ITIStext; +asn_struct_free_f ITIStext_free; +asn_struct_print_f ITIStext_print; +asn_constr_check_f ITIStext_constraint; +ber_type_decoder_f ITIStext_decode_ber; +der_type_encoder_f ITIStext_encode_der; +xer_type_decoder_f ITIStext_decode_xer; +xer_type_encoder_f ITIStext_encode_xer; +jer_type_encoder_f ITIStext_encode_jer; +oer_type_decoder_f ITIStext_decode_oer; +oer_type_encoder_f ITIStext_encode_oer; +per_type_decoder_f ITIStext_decode_uper; +per_type_encoder_f ITIStext_encode_uper; +per_type_decoder_f ITIStext_decode_aper; +per_type_encoder_f ITIStext_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ITIStext_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIStextPhrase.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIStextPhrase.h new file mode 100644 index 000000000..e76da80f9 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ITIStextPhrase.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ITIStextPhrase_H_ +#define _ITIStextPhrase_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IA5String.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ITIStextPhrase */ +typedef IA5String_t ITIStextPhrase_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ITIStextPhrase_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ITIStextPhrase; +asn_struct_free_f ITIStextPhrase_free; +asn_struct_print_f ITIStextPhrase_print; +asn_constr_check_f ITIStextPhrase_constraint; +ber_type_decoder_f ITIStextPhrase_decode_ber; +der_type_encoder_f ITIStextPhrase_encode_der; +xer_type_decoder_f ITIStextPhrase_decode_xer; +xer_type_encoder_f ITIStextPhrase_encode_xer; +jer_type_encoder_f ITIStextPhrase_encode_jer; +oer_type_decoder_f ITIStextPhrase_decode_oer; +oer_type_encoder_f ITIStextPhrase_encode_oer; +per_type_decoder_f ITIStextPhrase_decode_uper; +per_type_encoder_f ITIStextPhrase_encode_uper; +per_type_decoder_f ITIStextPhrase_decode_aper; +per_type_encoder_f ITIStextPhrase_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ITIStextPhrase_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IncidentResponseEquipment.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IncidentResponseEquipment.h new file mode 100644 index 000000000..67ce89ff7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IncidentResponseEquipment.h @@ -0,0 +1,127 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IncidentResponseEquipment_H_ +#define _IncidentResponseEquipment_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IncidentResponseEquipment { + IncidentResponseEquipment_ground_fire_suppression = 9985, + IncidentResponseEquipment_heavy_ground_equipment = 9986, + IncidentResponseEquipment_aircraft = 9988, + IncidentResponseEquipment_marine_equipment = 9989, + IncidentResponseEquipment_support_equipment = 9990, + IncidentResponseEquipment_medical_rescue_unit = 9991, + IncidentResponseEquipment_other = 9993, + IncidentResponseEquipment_ground_fire_suppression_other = 9994, + IncidentResponseEquipment_engine = 9995, + IncidentResponseEquipment_truck_or_aerial = 9996, + IncidentResponseEquipment_quint = 9997, + IncidentResponseEquipment_tanker_pumper_combination = 9998, + IncidentResponseEquipment_brush_truck = 10000, + IncidentResponseEquipment_aircraft_rescue_firefighting = 10001, + IncidentResponseEquipment_heavy_ground_equipment_other = 10004, + IncidentResponseEquipment_dozer_or_plow = 10005, + IncidentResponseEquipment_tractor = 10006, + IncidentResponseEquipment_tanker_or_tender = 10008, + IncidentResponseEquipment_aircraft_other = 10024, + IncidentResponseEquipment_aircraft_fixed_wing_tanker = 10025, + IncidentResponseEquipment_helitanker = 10026, + IncidentResponseEquipment_helicopter = 10027, + IncidentResponseEquipment_marine_equipment_other = 10034, + IncidentResponseEquipment_fire_boat_with_pump = 10035, + IncidentResponseEquipment_boat_no_pump = 10036, + IncidentResponseEquipment_support_apparatus_other = 10044, + IncidentResponseEquipment_breathing_apparatus_support = 10045, + IncidentResponseEquipment_light_and_air_unit = 10046, + IncidentResponseEquipment_medical_rescue_unit_other = 10054, + IncidentResponseEquipment_rescue_unit = 10055, + IncidentResponseEquipment_urban_search_rescue_unit = 10056, + IncidentResponseEquipment_high_angle_rescue = 10057, + IncidentResponseEquipment_crash_fire_rescue = 10058, + IncidentResponseEquipment_bLS_unit = 10059, + IncidentResponseEquipment_aLS_unit = 10060, + IncidentResponseEquipment_mobile_command_post = 10075, + IncidentResponseEquipment_chief_officer_car = 10076, + IncidentResponseEquipment_hAZMAT_unit = 10077, + IncidentResponseEquipment_type_i_hand_crew = 10078, + IncidentResponseEquipment_type_ii_hand_crew = 10079, + IncidentResponseEquipment_privately_owned_vehicle = 10083, + IncidentResponseEquipment_other_apparatus_resource = 10084, + IncidentResponseEquipment_ambulance = 10085, + IncidentResponseEquipment_bomb_squad_van = 10086, + IncidentResponseEquipment_combine_harvester = 10087, + IncidentResponseEquipment_construction_vehicle = 10088, + IncidentResponseEquipment_farm_tractor = 10089, + IncidentResponseEquipment_grass_cutting_machines = 10090, + IncidentResponseEquipment_hAZMAT_containment_tow = 10091, + IncidentResponseEquipment_heavy_tow = 10092, + IncidentResponseEquipment_light_tow = 10094, + IncidentResponseEquipment_flatbed_tow = 10114, + IncidentResponseEquipment_hedge_cutting_machines = 10093, + IncidentResponseEquipment_mobile_crane = 10095, + IncidentResponseEquipment_refuse_collection_vehicle = 10096, + IncidentResponseEquipment_resurfacing_vehicle = 10097, + IncidentResponseEquipment_road_sweeper = 10098, + IncidentResponseEquipment_roadside_litter_collection_crews = 10099, + IncidentResponseEquipment_salvage_vehicle = 10100, + IncidentResponseEquipment_sand_truck = 10101, + IncidentResponseEquipment_snowplow = 10102, + IncidentResponseEquipment_steam_roller = 10103, + IncidentResponseEquipment_swat_team_van = 10104, + IncidentResponseEquipment_track_laying_vehicle = 10105, + IncidentResponseEquipment_unknown_vehicle = 10106, + IncidentResponseEquipment_white_lining_vehicle = 10107, + IncidentResponseEquipment_dump_truck = 10108, + IncidentResponseEquipment_supervisor_vehicle = 10109, + IncidentResponseEquipment_snow_blower = 10110, + IncidentResponseEquipment_rotary_snow_blower = 10111, + IncidentResponseEquipment_road_grader = 10112, + IncidentResponseEquipment_steam_truck = 10113 + /* + * Enumeration is extensible + */ +} e_IncidentResponseEquipment; + +/* IncidentResponseEquipment */ +typedef long IncidentResponseEquipment_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IncidentResponseEquipment_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IncidentResponseEquipment; +extern const asn_INTEGER_specifics_t asn_SPC_IncidentResponseEquipment_specs_1; +asn_struct_free_f IncidentResponseEquipment_free; +asn_struct_print_f IncidentResponseEquipment_print; +asn_constr_check_f IncidentResponseEquipment_constraint; +ber_type_decoder_f IncidentResponseEquipment_decode_ber; +der_type_encoder_f IncidentResponseEquipment_encode_der; +xer_type_decoder_f IncidentResponseEquipment_decode_xer; +xer_type_encoder_f IncidentResponseEquipment_encode_xer; +jer_type_encoder_f IncidentResponseEquipment_encode_jer; +oer_type_decoder_f IncidentResponseEquipment_decode_oer; +oer_type_encoder_f IncidentResponseEquipment_encode_oer; +per_type_decoder_f IncidentResponseEquipment_decode_uper; +per_type_encoder_f IncidentResponseEquipment_encode_uper; +per_type_decoder_f IncidentResponseEquipment_decode_aper; +per_type_encoder_f IncidentResponseEquipment_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IncidentResponseEquipment_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionAccessPoint.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionAccessPoint.h new file mode 100644 index 000000000..996db7e27 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionAccessPoint.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IntersectionAccessPoint_H_ +#define _IntersectionAccessPoint_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LaneID.h" +#include "ApproachID.h" +#include "LaneConnectionID.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionAccessPoint_PR { + IntersectionAccessPoint_PR_NOTHING, /* No components present */ + IntersectionAccessPoint_PR_lane, + IntersectionAccessPoint_PR_approach, + IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} IntersectionAccessPoint_PR; + +/* IntersectionAccessPoint */ +typedef struct IntersectionAccessPoint { + IntersectionAccessPoint_PR present; + union IntersectionAccessPoint_u { + LaneID_t lane; + ApproachID_t approach; + LaneConnectionID_t connection; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionAccessPoint_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionCollision.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionCollision.h new file mode 100644 index 000000000..5098291b4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionCollision.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IntersectionCollision" + * found in "J2735-IntersectionCollision.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IntersectionCollision_H_ +#define _IntersectionCollision_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Common_MsgCount.h" +#include "TemporaryID.h" +#include "MinuteOfTheYear.h" +#include "IntersectionReferenceID.h" +#include "ApproachOrLane.h" +#include "VehicleEventFlags.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BSMcoreData; +struct PathHistory; +struct PathPrediction; +struct Reg_IntersectionCollision; + +/* IntersectionCollision */ +typedef struct IntersectionCollision { + Common_MsgCount_t msgCnt; + TemporaryID_t id; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct BSMcoreData *partOne; /* OPTIONAL */ + struct PathHistory *path; /* OPTIONAL */ + struct PathPrediction *pathPrediction; /* OPTIONAL */ + IntersectionReferenceID_t intersectionID; + ApproachOrLane_t laneNumber; + VehicleEventFlags_t eventFlag; + struct IntersectionCollision__regional { + A_SEQUENCE_OF(struct Reg_IntersectionCollision) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionCollision_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionCollision; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionCollision_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionCollision_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionCollision_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionGeometry.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionGeometry.h new file mode 100644 index 000000000..01929f1ad --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionGeometry.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IntersectionGeometry_H_ +#define _IntersectionGeometry_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "Common_MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "LaneList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct PreemptPriorityList; +struct Reg_IntersectionGeometry; + +/* IntersectionGeometry */ +typedef struct IntersectionGeometry { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + Common_MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + LaneList_t laneSet; + struct PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct IntersectionGeometry__regional { + A_SEQUENCE_OF(struct Reg_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometry_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionGeometryList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionGeometryList.h new file mode 100644 index 000000000..151596b0f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionGeometryList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IntersectionGeometryList_H_ +#define _IntersectionGeometryList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometry; + +/* IntersectionGeometryList */ +typedef struct IntersectionGeometryList { + A_SEQUENCE_OF(struct IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionGeometryList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionID.h new file mode 100644 index 000000000..ff0997db1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IntersectionID_H_ +#define _IntersectionID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionID */ +typedef long IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionID; +asn_struct_free_f IntersectionID_free; +asn_struct_print_f IntersectionID_print; +asn_constr_check_f IntersectionID_constraint; +ber_type_decoder_f IntersectionID_decode_ber; +der_type_encoder_f IntersectionID_encode_der; +xer_type_decoder_f IntersectionID_decode_xer; +xer_type_encoder_f IntersectionID_encode_xer; +jer_type_encoder_f IntersectionID_encode_jer; +oer_type_decoder_f IntersectionID_decode_oer; +oer_type_encoder_f IntersectionID_encode_oer; +per_type_decoder_f IntersectionID_decode_uper; +per_type_encoder_f IntersectionID_encode_uper; +per_type_decoder_f IntersectionID_decode_aper; +per_type_encoder_f IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionReferenceID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionReferenceID.h new file mode 100644 index 000000000..d3ea00216 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IntersectionReferenceID_H_ +#define _IntersectionReferenceID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "IntersectionID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntersectionReferenceID */ +typedef struct IntersectionReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionReferenceID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionState-addGrpC.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionState-addGrpC.h new file mode 100644 index 000000000..60789c0f4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionState-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IntersectionState_addGrpC_H_ +#define _IntersectionState_addGrpC_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponseList; + +/* IntersectionState-addGrpC */ +typedef struct IntersectionState_addGrpC { + struct PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_addGrpC_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionState.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionState.h new file mode 100644 index 000000000..85728055b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionState.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IntersectionState_H_ +#define _IntersectionState_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "IntersectionReferenceID.h" +#include "Common_MsgCount.h" +#include "IntersectionStatusObject.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "MovementList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EnabledLaneList; +struct ManeuverAssistList; +struct Reg_IntersectionState; + +/* IntersectionState */ +typedef struct IntersectionState { + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionReferenceID_t id; + Common_MsgCount_t revision; + IntersectionStatusObject_t status; + MinuteOfTheYear_t *moy; /* OPTIONAL */ + DSecond_t *timeStamp; /* OPTIONAL */ + struct EnabledLaneList *enabledLanes; /* OPTIONAL */ + MovementList_t states; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct IntersectionState__regional { + A_SEQUENCE_OF(struct Reg_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionState_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionStateList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionStateList.h new file mode 100644 index 000000000..57cd0662c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionStateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IntersectionStateList_H_ +#define _IntersectionStateList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionState; + +/* IntersectionStateList */ +typedef struct IntersectionStateList { + A_SEQUENCE_OF(struct IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStateList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionStatusObject.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionStatusObject.h new file mode 100644 index 000000000..f1634f0a6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IntersectionStatusObject.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IntersectionStatusObject_H_ +#define _IntersectionStatusObject_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntersectionStatusObject { + IntersectionStatusObject_manualControlIsEnabled = 0, + IntersectionStatusObject_stopTimeIsActivated = 1, + IntersectionStatusObject_failureFlash = 2, + IntersectionStatusObject_preemptIsActive = 3, + IntersectionStatusObject_signalPriorityIsActive = 4, + IntersectionStatusObject_fixedTimeOperation = 5, + IntersectionStatusObject_trafficDependentOperation = 6, + IntersectionStatusObject_standbyOperation = 7, + IntersectionStatusObject_failureMode = 8, + IntersectionStatusObject_off = 9, + IntersectionStatusObject_recentMAPmessageUpdate = 10, + IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_IntersectionStatusObject; + +/* IntersectionStatusObject */ +typedef BIT_STRING_t IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject; +asn_struct_free_f IntersectionStatusObject_free; +asn_struct_print_f IntersectionStatusObject_print; +asn_constr_check_f IntersectionStatusObject_constraint; +ber_type_decoder_f IntersectionStatusObject_decode_ber; +der_type_encoder_f IntersectionStatusObject_encode_der; +xer_type_decoder_f IntersectionStatusObject_decode_xer; +xer_type_encoder_f IntersectionStatusObject_encode_xer; +jer_type_encoder_f IntersectionStatusObject_encode_jer; +oer_type_decoder_f IntersectionStatusObject_decode_oer; +oer_type_encoder_f IntersectionStatusObject_encode_oer; +per_type_decoder_f IntersectionStatusObject_decode_uper; +per_type_encoder_f IntersectionStatusObject_encode_uper; +per_type_decoder_f IntersectionStatusObject_decode_aper; +per_type_encoder_f IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntersectionStatusObject_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/IsDolly.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/IsDolly.h new file mode 100644 index 000000000..e85806b19 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/IsDolly.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _IsDolly_H_ +#define _IsDolly_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BOOLEAN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* IsDolly */ +typedef BOOLEAN_t IsDolly_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IsDolly; +asn_struct_free_f IsDolly_free; +asn_struct_print_f IsDolly_print; +asn_constr_check_f IsDolly_constraint; +ber_type_decoder_f IsDolly_decode_ber; +der_type_encoder_f IsDolly_encode_der; +xer_type_decoder_f IsDolly_decode_xer; +xer_type_encoder_f IsDolly_encode_xer; +jer_type_encoder_f IsDolly_encode_jer; +oer_type_decoder_f IsDolly_decode_oer; +oer_type_encoder_f IsDolly_encode_oer; +per_type_decoder_f IsDolly_decode_uper; +per_type_encoder_f IsDolly_encode_uper; +per_type_decoder_f IsDolly_decode_aper; +per_type_encoder_f IsDolly_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IsDolly_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Iso3833VehicleType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Iso3833VehicleType.h new file mode 100644 index 000000000..e6ba88946 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Iso3833VehicleType.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Iso3833VehicleType_H_ +#define _Iso3833VehicleType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Iso3833VehicleType */ +typedef long Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType; +asn_struct_free_f Iso3833VehicleType_free; +asn_struct_print_f Iso3833VehicleType_print; +asn_constr_check_f Iso3833VehicleType_constraint; +ber_type_decoder_f Iso3833VehicleType_decode_ber; +der_type_encoder_f Iso3833VehicleType_encode_der; +xer_type_decoder_f Iso3833VehicleType_decode_xer; +xer_type_encoder_f Iso3833VehicleType_encode_xer; +jer_type_encoder_f Iso3833VehicleType_encode_jer; +oer_type_decoder_f Iso3833VehicleType_decode_oer; +oer_type_encoder_f Iso3833VehicleType_encode_oer; +per_type_decoder_f Iso3833VehicleType_decode_uper; +per_type_encoder_f Iso3833VehicleType_encode_uper; +per_type_decoder_f Iso3833VehicleType_decode_aper; +per_type_encoder_f Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Iso3833VehicleType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/J1939data.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/J1939data.h new file mode 100644 index 000000000..dceae1fd9 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/J1939data.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _J1939data_H_ +#define _J1939data_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TrailerWeight.h" +#include "CargoWeight.h" +#include "SteeringAxleTemperature.h" +#include "DriveAxleLocation.h" +#include "DriveAxleLiftAirPressure.h" +#include "DriveAxleTemperature.h" +#include "DriveAxleLubePressure.h" +#include "SteeringAxleLubePressure.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TireDataList; +struct AxleWeightList; + +/* J1939data */ +typedef struct J1939data { + struct TireDataList *tires; /* OPTIONAL */ + struct AxleWeightList *axles; /* OPTIONAL */ + TrailerWeight_t *trailerWeight; /* OPTIONAL */ + CargoWeight_t *cargoWeight; /* OPTIONAL */ + SteeringAxleTemperature_t *steeringAxleTemperature; /* OPTIONAL */ + DriveAxleLocation_t *driveAxleLocation; /* OPTIONAL */ + DriveAxleLiftAirPressure_t *driveAxleLiftAirPressure; /* OPTIONAL */ + DriveAxleTemperature_t *driveAxleTemperature; /* OPTIONAL */ + DriveAxleLubePressure_t *driveAxleLubePressure; /* OPTIONAL */ + SteeringAxleLubePressure_t *steeringAxleLubePressure; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} J1939data_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_J1939data; +extern asn_SEQUENCE_specifics_t asn_SPC_J1939data_specs_1; +extern asn_TYPE_member_t asn_MBR_J1939data_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _J1939data_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Barrier.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Barrier.h new file mode 100644 index 000000000..d82f5c472 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Barrier.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneAttributes_Barrier_H_ +#define _LaneAttributes_Barrier_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Barrier { + LaneAttributes_Barrier_median_RevocableLane = 0, + LaneAttributes_Barrier_median = 1, + LaneAttributes_Barrier_whiteLineHashing = 2, + LaneAttributes_Barrier_stripedLines = 3, + LaneAttributes_Barrier_doubleStripedLines = 4, + LaneAttributes_Barrier_trafficCones = 5, + LaneAttributes_Barrier_constructionBarrier = 6, + LaneAttributes_Barrier_trafficChannels = 7, + LaneAttributes_Barrier_lowCurbs = 8, + LaneAttributes_Barrier_highCurbs = 9 +} e_LaneAttributes_Barrier; + +/* LaneAttributes-Barrier */ +typedef BIT_STRING_t LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier; +asn_struct_free_f LaneAttributes_Barrier_free; +asn_struct_print_f LaneAttributes_Barrier_print; +asn_constr_check_f LaneAttributes_Barrier_constraint; +ber_type_decoder_f LaneAttributes_Barrier_decode_ber; +der_type_encoder_f LaneAttributes_Barrier_encode_der; +xer_type_decoder_f LaneAttributes_Barrier_decode_xer; +xer_type_encoder_f LaneAttributes_Barrier_encode_xer; +jer_type_encoder_f LaneAttributes_Barrier_encode_jer; +oer_type_decoder_f LaneAttributes_Barrier_decode_oer; +oer_type_encoder_f LaneAttributes_Barrier_encode_oer; +per_type_decoder_f LaneAttributes_Barrier_decode_uper; +per_type_encoder_f LaneAttributes_Barrier_encode_uper; +per_type_decoder_f LaneAttributes_Barrier_decode_aper; +per_type_encoder_f LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Barrier_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Bike.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Bike.h new file mode 100644 index 000000000..a98e9aa42 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Bike.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneAttributes_Bike_H_ +#define _LaneAttributes_Bike_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Bike { + LaneAttributes_Bike_bikeRevocableLane = 0, + LaneAttributes_Bike_pedestrianUseAllowed = 1, + LaneAttributes_Bike_isBikeFlyOverLane = 2, + LaneAttributes_Bike_fixedCycleTime = 3, + LaneAttributes_Bike_biDirectionalCycleTimes = 4, + LaneAttributes_Bike_isolatedByBarrier = 5, + LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_LaneAttributes_Bike; + +/* LaneAttributes-Bike */ +typedef BIT_STRING_t LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike; +asn_struct_free_f LaneAttributes_Bike_free; +asn_struct_print_f LaneAttributes_Bike_print; +asn_constr_check_f LaneAttributes_Bike_constraint; +ber_type_decoder_f LaneAttributes_Bike_decode_ber; +der_type_encoder_f LaneAttributes_Bike_encode_der; +xer_type_decoder_f LaneAttributes_Bike_decode_xer; +xer_type_encoder_f LaneAttributes_Bike_encode_xer; +jer_type_encoder_f LaneAttributes_Bike_encode_jer; +oer_type_decoder_f LaneAttributes_Bike_decode_oer; +oer_type_encoder_f LaneAttributes_Bike_encode_oer; +per_type_decoder_f LaneAttributes_Bike_decode_uper; +per_type_encoder_f LaneAttributes_Bike_encode_uper; +per_type_decoder_f LaneAttributes_Bike_decode_aper; +per_type_encoder_f LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Bike_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Crosswalk.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Crosswalk.h new file mode 100644 index 000000000..e874875d1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Crosswalk.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneAttributes_Crosswalk_H_ +#define _LaneAttributes_Crosswalk_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Crosswalk { + LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + LaneAttributes_Crosswalk_fixedCycleTime = 3, + LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + LaneAttributes_Crosswalk_audioSupport = 6, + LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_LaneAttributes_Crosswalk; + +/* LaneAttributes-Crosswalk */ +typedef BIT_STRING_t LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk; +asn_struct_free_f LaneAttributes_Crosswalk_free; +asn_struct_print_f LaneAttributes_Crosswalk_print; +asn_constr_check_f LaneAttributes_Crosswalk_constraint; +ber_type_decoder_f LaneAttributes_Crosswalk_decode_ber; +der_type_encoder_f LaneAttributes_Crosswalk_encode_der; +xer_type_decoder_f LaneAttributes_Crosswalk_decode_xer; +xer_type_encoder_f LaneAttributes_Crosswalk_encode_xer; +jer_type_encoder_f LaneAttributes_Crosswalk_encode_jer; +oer_type_decoder_f LaneAttributes_Crosswalk_decode_oer; +oer_type_encoder_f LaneAttributes_Crosswalk_encode_oer; +per_type_decoder_f LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Crosswalk_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Parking.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Parking.h new file mode 100644 index 000000000..e69e25f6a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Parking.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneAttributes_Parking_H_ +#define _LaneAttributes_Parking_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Parking { + LaneAttributes_Parking_parkingRevocableLane = 0, + LaneAttributes_Parking_parallelParkingInUse = 1, + LaneAttributes_Parking_headInParkingInUse = 2, + LaneAttributes_Parking_doNotParkZone = 3, + LaneAttributes_Parking_parkingForBusUse = 4, + LaneAttributes_Parking_parkingForTaxiUse = 5, + LaneAttributes_Parking_noPublicParkingUse = 6 +} e_LaneAttributes_Parking; + +/* LaneAttributes-Parking */ +typedef BIT_STRING_t LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking; +asn_struct_free_f LaneAttributes_Parking_free; +asn_struct_print_f LaneAttributes_Parking_print; +asn_constr_check_f LaneAttributes_Parking_constraint; +ber_type_decoder_f LaneAttributes_Parking_decode_ber; +der_type_encoder_f LaneAttributes_Parking_encode_der; +xer_type_decoder_f LaneAttributes_Parking_decode_xer; +xer_type_encoder_f LaneAttributes_Parking_encode_xer; +jer_type_encoder_f LaneAttributes_Parking_encode_jer; +oer_type_decoder_f LaneAttributes_Parking_decode_oer; +oer_type_encoder_f LaneAttributes_Parking_encode_oer; +per_type_decoder_f LaneAttributes_Parking_decode_uper; +per_type_encoder_f LaneAttributes_Parking_encode_uper; +per_type_decoder_f LaneAttributes_Parking_decode_aper; +per_type_encoder_f LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Parking_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Sidewalk.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Sidewalk.h new file mode 100644 index 000000000..5497b7839 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Sidewalk.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneAttributes_Sidewalk_H_ +#define _LaneAttributes_Sidewalk_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Sidewalk { + LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + LaneAttributes_Sidewalk_walkBikes = 3 +} e_LaneAttributes_Sidewalk; + +/* LaneAttributes-Sidewalk */ +typedef BIT_STRING_t LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk; +asn_struct_free_f LaneAttributes_Sidewalk_free; +asn_struct_print_f LaneAttributes_Sidewalk_print; +asn_constr_check_f LaneAttributes_Sidewalk_constraint; +ber_type_decoder_f LaneAttributes_Sidewalk_decode_ber; +der_type_encoder_f LaneAttributes_Sidewalk_encode_der; +xer_type_decoder_f LaneAttributes_Sidewalk_decode_xer; +xer_type_encoder_f LaneAttributes_Sidewalk_encode_xer; +jer_type_encoder_f LaneAttributes_Sidewalk_encode_jer; +oer_type_decoder_f LaneAttributes_Sidewalk_decode_oer; +oer_type_encoder_f LaneAttributes_Sidewalk_encode_oer; +per_type_decoder_f LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Sidewalk_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Striping.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Striping.h new file mode 100644 index 000000000..722fc4e73 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Striping.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneAttributes_Striping_H_ +#define _LaneAttributes_Striping_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Striping { + LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + LaneAttributes_Striping_stripeDrawOnLeft = 1, + LaneAttributes_Striping_stripeDrawOnRight = 2, + LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_LaneAttributes_Striping; + +/* LaneAttributes-Striping */ +typedef BIT_STRING_t LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping; +asn_struct_free_f LaneAttributes_Striping_free; +asn_struct_print_f LaneAttributes_Striping_print; +asn_constr_check_f LaneAttributes_Striping_constraint; +ber_type_decoder_f LaneAttributes_Striping_decode_ber; +der_type_encoder_f LaneAttributes_Striping_encode_der; +xer_type_decoder_f LaneAttributes_Striping_decode_xer; +xer_type_encoder_f LaneAttributes_Striping_encode_xer; +jer_type_encoder_f LaneAttributes_Striping_encode_jer; +oer_type_decoder_f LaneAttributes_Striping_decode_oer; +oer_type_encoder_f LaneAttributes_Striping_encode_oer; +per_type_decoder_f LaneAttributes_Striping_decode_uper; +per_type_encoder_f LaneAttributes_Striping_encode_uper; +per_type_decoder_f LaneAttributes_Striping_decode_aper; +per_type_encoder_f LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Striping_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-TrackedVehicle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-TrackedVehicle.h new file mode 100644 index 000000000..06e52ced2 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-TrackedVehicle.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneAttributes_TrackedVehicle_H_ +#define _LaneAttributes_TrackedVehicle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_TrackedVehicle { + LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_LaneAttributes_TrackedVehicle; + +/* LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle; +asn_struct_free_f LaneAttributes_TrackedVehicle_free; +asn_struct_print_f LaneAttributes_TrackedVehicle_print; +asn_constr_check_f LaneAttributes_TrackedVehicle_constraint; +ber_type_decoder_f LaneAttributes_TrackedVehicle_decode_ber; +der_type_encoder_f LaneAttributes_TrackedVehicle_encode_der; +xer_type_decoder_f LaneAttributes_TrackedVehicle_decode_xer; +xer_type_encoder_f LaneAttributes_TrackedVehicle_encode_xer; +jer_type_encoder_f LaneAttributes_TrackedVehicle_encode_jer; +oer_type_decoder_f LaneAttributes_TrackedVehicle_decode_oer; +oer_type_encoder_f LaneAttributes_TrackedVehicle_encode_oer; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_TrackedVehicle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Vehicle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Vehicle.h new file mode 100644 index 000000000..ac9e3cffa --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes-Vehicle.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneAttributes_Vehicle_H_ +#define _LaneAttributes_Vehicle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneAttributes_Vehicle { + LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + LaneAttributes_Vehicle_hovLaneUseOnly = 2, + LaneAttributes_Vehicle_restrictedToBusUse = 3, + LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_LaneAttributes_Vehicle; + +/* LaneAttributes-Vehicle */ +typedef BIT_STRING_t LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle; +asn_struct_free_f LaneAttributes_Vehicle_free; +asn_struct_print_f LaneAttributes_Vehicle_print; +asn_constr_check_f LaneAttributes_Vehicle_constraint; +ber_type_decoder_f LaneAttributes_Vehicle_decode_ber; +der_type_encoder_f LaneAttributes_Vehicle_encode_der; +xer_type_decoder_f LaneAttributes_Vehicle_decode_xer; +xer_type_encoder_f LaneAttributes_Vehicle_encode_xer; +jer_type_encoder_f LaneAttributes_Vehicle_encode_jer; +oer_type_decoder_f LaneAttributes_Vehicle_decode_oer; +oer_type_encoder_f LaneAttributes_Vehicle_encode_oer; +per_type_decoder_f LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_Vehicle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes.h new file mode 100644 index 000000000..2b3b18a96 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneAttributes.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneAttributes_H_ +#define _LaneAttributes_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LaneDirection.h" +#include "LaneSharing.h" +#include "LaneTypeAttributes.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_LaneAttributes; + +/* LaneAttributes */ +typedef struct LaneAttributes { + LaneDirection_t directionalUse; + LaneSharing_t sharedWith; + LaneTypeAttributes_t laneType; + struct Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneAttributes_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneConnectionID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneConnectionID.h new file mode 100644 index 000000000..9a661762e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneConnectionID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneConnectionID_H_ +#define _LaneConnectionID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneConnectionID */ +typedef long LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneConnectionID; +asn_struct_free_f LaneConnectionID_free; +asn_struct_print_f LaneConnectionID_print; +asn_constr_check_f LaneConnectionID_constraint; +ber_type_decoder_f LaneConnectionID_decode_ber; +der_type_encoder_f LaneConnectionID_encode_der; +xer_type_decoder_f LaneConnectionID_decode_xer; +xer_type_encoder_f LaneConnectionID_encode_xer; +jer_type_encoder_f LaneConnectionID_encode_jer; +oer_type_decoder_f LaneConnectionID_decode_oer; +oer_type_encoder_f LaneConnectionID_encode_oer; +per_type_decoder_f LaneConnectionID_decode_uper; +per_type_encoder_f LaneConnectionID_encode_uper; +per_type_decoder_f LaneConnectionID_decode_aper; +per_type_encoder_f LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneConnectionID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttribute-addGrpB.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttribute-addGrpB.h new file mode 100644 index 000000000..bc3283795 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttribute-addGrpB.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneDataAttribute_addGrpB_H_ +#define _LaneDataAttribute_addGrpB_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneDataAttribute-addGrpB */ +typedef struct LaneDataAttribute_addGrpB { + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttribute_addGrpB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute_addGrpB; +extern asn_SEQUENCE_specifics_t asn_SPC_LaneDataAttribute_addGrpB_specs_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttribute_addGrpB_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttribute.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttribute.h new file mode 100644 index 000000000..94f22a44c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttribute.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneDataAttribute_H_ +#define _LaneDataAttribute_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DeltaAngle.h" +#include "RoadwayCrownAngle.h" +#include "MergeDivergeNodeAngle.h" +#include "SpeedLimitList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDataAttribute_PR { + LaneDataAttribute_PR_NOTHING, /* No components present */ + LaneDataAttribute_PR_pathEndPointAngle, + LaneDataAttribute_PR_laneCrownPointCenter, + LaneDataAttribute_PR_laneCrownPointLeft, + LaneDataAttribute_PR_laneCrownPointRight, + LaneDataAttribute_PR_laneAngle, + LaneDataAttribute_PR_speedLimits, + LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} LaneDataAttribute_PR; + +/* Forward declarations */ +struct Reg_LaneDataAttribute; + +/* LaneDataAttribute */ +typedef struct LaneDataAttribute { + LaneDataAttribute_PR present; + union LaneDataAttribute_u { + DeltaAngle_t pathEndPointAngle; + RoadwayCrownAngle_t laneCrownPointCenter; + RoadwayCrownAngle_t laneCrownPointLeft; + RoadwayCrownAngle_t laneCrownPointRight; + MergeDivergeNodeAngle_t laneAngle; + SpeedLimitList_t speedLimits; + struct LaneDataAttribute__regional { + A_SEQUENCE_OF(struct Reg_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttribute_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttributeList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttributeList.h new file mode 100644 index 000000000..05201b136 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDataAttributeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneDataAttributeList_H_ +#define _LaneDataAttributeList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct LaneDataAttribute; + +/* LaneDataAttributeList */ +typedef struct LaneDataAttributeList { + A_SEQUENCE_OF(struct LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDataAttributeList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDirection.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDirection.h new file mode 100644 index 000000000..b089eb897 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneDirection.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneDirection_H_ +#define _LaneDirection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneDirection { + LaneDirection_ingressPath = 0, + LaneDirection_egressPath = 1 +} e_LaneDirection; + +/* LaneDirection */ +typedef BIT_STRING_t LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneDirection; +asn_struct_free_f LaneDirection_free; +asn_struct_print_f LaneDirection_print; +asn_constr_check_f LaneDirection_constraint; +ber_type_decoder_f LaneDirection_decode_ber; +der_type_encoder_f LaneDirection_encode_der; +xer_type_decoder_f LaneDirection_decode_xer; +xer_type_encoder_f LaneDirection_encode_xer; +jer_type_encoder_f LaneDirection_encode_jer; +oer_type_decoder_f LaneDirection_decode_oer; +oer_type_encoder_f LaneDirection_encode_oer; +per_type_decoder_f LaneDirection_decode_uper; +per_type_encoder_f LaneDirection_encode_uper; +per_type_decoder_f LaneDirection_decode_aper; +per_type_encoder_f LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneDirection_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneID.h new file mode 100644 index 000000000..7c9f28f78 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneID_H_ +#define _LaneID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneID */ +typedef long LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneID; +asn_struct_free_f LaneID_free; +asn_struct_print_f LaneID_print; +asn_constr_check_f LaneID_constraint; +ber_type_decoder_f LaneID_decode_ber; +der_type_encoder_f LaneID_encode_der; +xer_type_decoder_f LaneID_decode_xer; +xer_type_encoder_f LaneID_encode_xer; +jer_type_encoder_f LaneID_encode_jer; +oer_type_decoder_f LaneID_decode_oer; +oer_type_encoder_f LaneID_encode_oer; +per_type_decoder_f LaneID_decode_uper; +per_type_encoder_f LaneID_encode_uper; +per_type_decoder_f LaneID_decode_aper; +per_type_encoder_f LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneList.h new file mode 100644 index 000000000..3b6044d83 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneList_H_ +#define _LaneList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* LaneList */ +typedef struct LaneList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneSharing.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneSharing.h new file mode 100644 index 000000000..41086c933 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneSharing.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneSharing_H_ +#define _LaneSharing_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneSharing { + LaneSharing_overlappingLaneDescriptionProvided = 0, + LaneSharing_multipleLanesTreatedAsOneLane = 1, + LaneSharing_otherNonMotorizedTrafficTypes = 2, + LaneSharing_individualMotorizedVehicleTraffic = 3, + LaneSharing_busVehicleTraffic = 4, + LaneSharing_taxiVehicleTraffic = 5, + LaneSharing_pedestriansTraffic = 6, + LaneSharing_cyclistVehicleTraffic = 7, + LaneSharing_trackedVehicleTraffic = 8, + LaneSharing_reserved = 9 +} e_LaneSharing; + +/* LaneSharing */ +typedef BIT_STRING_t LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneSharing; +asn_struct_free_f LaneSharing_free; +asn_struct_print_f LaneSharing_print; +asn_constr_check_f LaneSharing_constraint; +ber_type_decoder_f LaneSharing_decode_ber; +der_type_encoder_f LaneSharing_encode_der; +xer_type_decoder_f LaneSharing_decode_xer; +xer_type_encoder_f LaneSharing_encode_xer; +jer_type_encoder_f LaneSharing_encode_jer; +oer_type_decoder_f LaneSharing_decode_oer; +oer_type_encoder_f LaneSharing_encode_oer; +per_type_decoder_f LaneSharing_decode_uper; +per_type_encoder_f LaneSharing_encode_uper; +per_type_decoder_f LaneSharing_decode_aper; +per_type_encoder_f LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneSharing_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneTypeAttributes.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneTypeAttributes.h new file mode 100644 index 000000000..62312671e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneTypeAttributes.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneTypeAttributes_H_ +#define _LaneTypeAttributes_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LaneAttributes-Vehicle.h" +#include "LaneAttributes-Crosswalk.h" +#include "LaneAttributes-Bike.h" +#include "LaneAttributes-Sidewalk.h" +#include "LaneAttributes-Barrier.h" +#include "LaneAttributes-Striping.h" +#include "LaneAttributes-TrackedVehicle.h" +#include "LaneAttributes-Parking.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LaneTypeAttributes_PR { + LaneTypeAttributes_PR_NOTHING, /* No components present */ + LaneTypeAttributes_PR_vehicle, + LaneTypeAttributes_PR_crosswalk, + LaneTypeAttributes_PR_bikeLane, + LaneTypeAttributes_PR_sidewalk, + LaneTypeAttributes_PR_median, + LaneTypeAttributes_PR_striping, + LaneTypeAttributes_PR_trackedVehicle, + LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} LaneTypeAttributes_PR; + +/* LaneTypeAttributes */ +typedef struct LaneTypeAttributes { + LaneTypeAttributes_PR present; + union LaneTypeAttributes_u { + LaneAttributes_Vehicle_t vehicle; + LaneAttributes_Crosswalk_t crosswalk; + LaneAttributes_Bike_t bikeLane; + LaneAttributes_Sidewalk_t sidewalk; + LaneAttributes_Barrier_t median; + LaneAttributes_Striping_t striping; + LaneAttributes_TrackedVehicle_t trackedVehicle; + LaneAttributes_Parking_t parking; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneTypeAttributes_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneWidth.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneWidth.h new file mode 100644 index 000000000..7fb4ae025 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LaneWidth.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LaneWidth_H_ +#define _LaneWidth_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* LaneWidth */ +typedef long LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LaneWidth; +asn_struct_free_f LaneWidth_free; +asn_struct_print_f LaneWidth_print; +asn_constr_check_f LaneWidth_constraint; +ber_type_decoder_f LaneWidth_decode_ber; +der_type_encoder_f LaneWidth_encode_der; +xer_type_decoder_f LaneWidth_decode_xer; +xer_type_encoder_f LaneWidth_encode_xer; +jer_type_encoder_f LaneWidth_encode_jer; +oer_type_decoder_f LaneWidth_decode_oer; +oer_type_encoder_f LaneWidth_encode_oer; +per_type_decoder_f LaneWidth_decode_uper; +per_type_encoder_f LaneWidth_encode_uper; +per_type_decoder_f LaneWidth_decode_aper; +per_type_encoder_f LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LaneWidth_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Latitude.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Latitude.h new file mode 100644 index 000000000..f196bcc06 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Latitude.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Latitude_H_ +#define _Latitude_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Latitude */ +typedef long Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Latitude; +asn_struct_free_f Latitude_free; +asn_struct_print_f Latitude_print; +asn_constr_check_f Latitude_constraint; +ber_type_decoder_f Latitude_decode_ber; +der_type_encoder_f Latitude_encode_der; +xer_type_decoder_f Latitude_decode_xer; +xer_type_encoder_f Latitude_encode_xer; +jer_type_encoder_f Latitude_encode_jer; +oer_type_decoder_f Latitude_decode_oer; +oer_type_encoder_f Latitude_encode_oer; +per_type_decoder_f Latitude_decode_uper; +per_type_encoder_f Latitude_encode_uper; +per_type_decoder_f Latitude_decode_aper; +per_type_encoder_f Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latitude_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LatitudeDMS.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LatitudeDMS.h new file mode 100644 index 000000000..a714c79c8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LatitudeDMS.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LatitudeDMS_H_ +#define _LatitudeDMS_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* LatitudeDMS */ +typedef long LatitudeDMS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LatitudeDMS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LatitudeDMS; +asn_struct_free_f LatitudeDMS_free; +asn_struct_print_f LatitudeDMS_print; +asn_constr_check_f LatitudeDMS_constraint; +ber_type_decoder_f LatitudeDMS_decode_ber; +der_type_encoder_f LatitudeDMS_encode_der; +xer_type_decoder_f LatitudeDMS_decode_xer; +xer_type_encoder_f LatitudeDMS_encode_xer; +jer_type_encoder_f LatitudeDMS_encode_jer; +oer_type_decoder_f LatitudeDMS_decode_oer; +oer_type_encoder_f LatitudeDMS_encode_oer; +per_type_decoder_f LatitudeDMS_decode_uper; +per_type_encoder_f LatitudeDMS_encode_uper; +per_type_decoder_f LatitudeDMS_decode_aper; +per_type_encoder_f LatitudeDMS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LatitudeDMS_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LatitudeDMS2.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LatitudeDMS2.h new file mode 100644 index 000000000..fcb809b4d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LatitudeDMS2.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LatitudeDMS2_H_ +#define _LatitudeDMS2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DegreesLat.h" +#include "MinutesAngle.h" +#include "SecondsAngle.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* LatitudeDMS2 */ +typedef struct LatitudeDMS2 { + DegreesLat_t d; + MinutesAngle_t m; + SecondsAngle_t s; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LatitudeDMS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LatitudeDMS2; +extern asn_SEQUENCE_specifics_t asn_SPC_LatitudeDMS2_specs_1; +extern asn_TYPE_member_t asn_MBR_LatitudeDMS2_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LatitudeDMS2_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LayerID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LayerID.h new file mode 100644 index 000000000..84f52e07b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LayerID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LayerID_H_ +#define _LayerID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* LayerID */ +typedef long LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerID; +asn_struct_free_f LayerID_free; +asn_struct_print_f LayerID_print; +asn_constr_check_f LayerID_constraint; +ber_type_decoder_f LayerID_decode_ber; +der_type_encoder_f LayerID_encode_der; +xer_type_decoder_f LayerID_decode_xer; +xer_type_encoder_f LayerID_encode_xer; +jer_type_encoder_f LayerID_encode_jer; +oer_type_decoder_f LayerID_decode_oer; +oer_type_encoder_f LayerID_encode_oer; +per_type_decoder_f LayerID_decode_uper; +per_type_encoder_f LayerID_encode_uper; +per_type_decoder_f LayerID_decode_aper; +per_type_encoder_f LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LayerType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LayerType.h new file mode 100644 index 000000000..9ca374c9d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LayerType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LayerType_H_ +#define _LayerType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LayerType { + LayerType_none = 0, + LayerType_mixedContent = 1, + LayerType_generalMapData = 2, + LayerType_intersectionData = 3, + LayerType_curveData = 4, + LayerType_roadwaySectionData = 5, + LayerType_parkingAreaData = 6, + LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_LayerType; + +/* LayerType */ +typedef long LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1; +asn_struct_free_f LayerType_free; +asn_struct_print_f LayerType_print; +asn_constr_check_f LayerType_constraint; +ber_type_decoder_f LayerType_decode_ber; +der_type_encoder_f LayerType_encode_der; +xer_type_decoder_f LayerType_decode_xer; +xer_type_encoder_f LayerType_encode_xer; +jer_type_encoder_f LayerType_encode_jer; +oer_type_decoder_f LayerType_decode_oer; +oer_type_encoder_f LayerType_encode_oer; +per_type_decoder_f LayerType_decode_uper; +per_type_encoder_f LayerType_encode_uper; +per_type_decoder_f LayerType_decode_aper; +per_type_encoder_f LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LayerType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LightbarInUse.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LightbarInUse.h new file mode 100644 index 000000000..a1c3115ad --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LightbarInUse.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LightbarInUse_H_ +#define _LightbarInUse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LightbarInUse { + LightbarInUse_unavailable = 0, + LightbarInUse_notInUse = 1, + LightbarInUse_inUse = 2, + LightbarInUse_yellowCautionLights = 3, + LightbarInUse_schooldBusLights = 4, + LightbarInUse_arrowSignsActive = 5, + LightbarInUse_slowMovingVehicle = 6, + LightbarInUse_freqStops = 7 +} e_LightbarInUse; + +/* LightbarInUse */ +typedef long LightbarInUse_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LightbarInUse_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LightbarInUse; +extern const asn_INTEGER_specifics_t asn_SPC_LightbarInUse_specs_1; +asn_struct_free_f LightbarInUse_free; +asn_struct_print_f LightbarInUse_print; +asn_constr_check_f LightbarInUse_constraint; +ber_type_decoder_f LightbarInUse_decode_ber; +der_type_encoder_f LightbarInUse_encode_der; +xer_type_decoder_f LightbarInUse_decode_xer; +xer_type_encoder_f LightbarInUse_encode_xer; +jer_type_encoder_f LightbarInUse_encode_jer; +oer_type_decoder_f LightbarInUse_decode_oer; +oer_type_encoder_f LightbarInUse_encode_oer; +per_type_decoder_f LightbarInUse_decode_uper; +per_type_encoder_f LightbarInUse_encode_uper; +per_type_decoder_f LightbarInUse_decode_aper; +per_type_encoder_f LightbarInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LightbarInUse_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Location-quality.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Location-quality.h new file mode 100644 index 000000000..f7b573534 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Location-quality.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Location_quality_H_ +#define _Location_quality_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Location_quality { + Location_quality_loc_qual_bt1m = 0, + Location_quality_loc_qual_bt5m = 1, + Location_quality_loc_qual_bt12m = 2, + Location_quality_loc_qual_bt50m = 3, + Location_quality_loc_qual_bt125m = 4, + Location_quality_loc_qual_bt500m = 5, + Location_quality_loc_qual_bt1250m = 6, + Location_quality_loc_qual_unknown = 7 +} e_Location_quality; + +/* Location-quality */ +typedef long Location_quality_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Location_quality; +asn_struct_free_f Location_quality_free; +asn_struct_print_f Location_quality_print; +asn_constr_check_f Location_quality_constraint; +ber_type_decoder_f Location_quality_decode_ber; +der_type_encoder_f Location_quality_encode_der; +xer_type_decoder_f Location_quality_decode_xer; +xer_type_encoder_f Location_quality_encode_xer; +jer_type_encoder_f Location_quality_encode_jer; +oer_type_decoder_f Location_quality_decode_oer; +oer_type_encoder_f Location_quality_encode_oer; +per_type_decoder_f Location_quality_decode_uper; +per_type_encoder_f Location_quality_encode_uper; +per_type_decoder_f Location_quality_decode_aper; +per_type_encoder_f Location_quality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Location_quality_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Location-tech.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Location-tech.h new file mode 100644 index 000000000..084797ea9 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Location-tech.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Location_tech_H_ +#define _Location_tech_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Location_tech { + Location_tech_loc_tech_unknown = 0, + Location_tech_loc_tech_GNSS = 1, + Location_tech_loc_tech_DGPS = 2, + Location_tech_loc_tech_RTK = 3, + Location_tech_loc_tech_PPP = 4, + Location_tech_loc_tech_drGPS = 5, + Location_tech_loc_tech_drDGPS = 6, + Location_tech_loc_tech_dr = 7, + Location_tech_loc_tech_nav = 8, + Location_tech_loc_tech_fault = 9 + /* + * Enumeration is extensible + */ +} e_Location_tech; + +/* Location-tech */ +typedef long Location_tech_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Location_tech; +asn_struct_free_f Location_tech_free; +asn_struct_print_f Location_tech_print; +asn_constr_check_f Location_tech_constraint; +ber_type_decoder_f Location_tech_decode_ber; +der_type_encoder_f Location_tech_encode_der; +xer_type_decoder_f Location_tech_decode_xer; +xer_type_encoder_f Location_tech_encode_xer; +jer_type_encoder_f Location_tech_encode_jer; +oer_type_decoder_f Location_tech_decode_oer; +oer_type_encoder_f Location_tech_encode_oer; +per_type_decoder_f Location_tech_decode_uper; +per_type_encoder_f Location_tech_encode_uper; +per_type_decoder_f Location_tech_decode_aper; +per_type_encoder_f Location_tech_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Location_tech_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Longitude.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Longitude.h new file mode 100644 index 000000000..f46d83f38 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Longitude.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Longitude_H_ +#define _Longitude_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Longitude */ +typedef long Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Longitude; +asn_struct_free_f Longitude_free; +asn_struct_print_f Longitude_print; +asn_constr_check_f Longitude_constraint; +ber_type_decoder_f Longitude_decode_ber; +der_type_encoder_f Longitude_encode_der; +xer_type_decoder_f Longitude_decode_xer; +xer_type_encoder_f Longitude_encode_xer; +jer_type_encoder_f Longitude_encode_jer; +oer_type_decoder_f Longitude_decode_oer; +oer_type_encoder_f Longitude_encode_oer; +per_type_decoder_f Longitude_decode_uper; +per_type_encoder_f Longitude_encode_uper; +per_type_decoder_f Longitude_decode_aper; +per_type_encoder_f Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Longitude_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LongitudeDMS.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LongitudeDMS.h new file mode 100644 index 000000000..4e472e868 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LongitudeDMS.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LongitudeDMS_H_ +#define _LongitudeDMS_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudeDMS */ +typedef long LongitudeDMS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongitudeDMS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongitudeDMS; +asn_struct_free_f LongitudeDMS_free; +asn_struct_print_f LongitudeDMS_print; +asn_constr_check_f LongitudeDMS_constraint; +ber_type_decoder_f LongitudeDMS_decode_ber; +der_type_encoder_f LongitudeDMS_encode_der; +xer_type_decoder_f LongitudeDMS_decode_xer; +xer_type_encoder_f LongitudeDMS_encode_xer; +jer_type_encoder_f LongitudeDMS_encode_jer; +oer_type_decoder_f LongitudeDMS_decode_oer; +oer_type_encoder_f LongitudeDMS_encode_oer; +per_type_decoder_f LongitudeDMS_decode_uper; +per_type_encoder_f LongitudeDMS_encode_uper; +per_type_decoder_f LongitudeDMS_decode_aper; +per_type_encoder_f LongitudeDMS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudeDMS_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/LongitudeDMS2.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/LongitudeDMS2.h new file mode 100644 index 000000000..516f6532e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/LongitudeDMS2.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _LongitudeDMS2_H_ +#define _LongitudeDMS2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DegreesLong.h" +#include "MinutesAngle.h" +#include "SecondsAngle.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* LongitudeDMS2 */ +typedef struct LongitudeDMS2 { + DegreesLong_t d; + MinutesAngle_t m; + SecondsAngle_t s; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} LongitudeDMS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LongitudeDMS2; +extern asn_SEQUENCE_specifics_t asn_SPC_LongitudeDMS2_specs_1; +extern asn_TYPE_member_t asn_MBR_LongitudeDMS2_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongitudeDMS2_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MUTCDCode.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MUTCDCode.h new file mode 100644 index 000000000..a2b273335 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MUTCDCode.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MUTCDCode_H_ +#define _MUTCDCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MUTCDCode { + MUTCDCode_none = 0, + MUTCDCode_regulatory = 1, + MUTCDCode_warning = 2, + MUTCDCode_maintenance = 3, + MUTCDCode_motoristService = 4, + MUTCDCode_guide = 5, + MUTCDCode_rec = 6 + /* + * Enumeration is extensible + */ +} e_MUTCDCode; + +/* MUTCDCode */ +typedef long MUTCDCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MUTCDCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MUTCDCode; +extern const asn_INTEGER_specifics_t asn_SPC_MUTCDCode_specs_1; +asn_struct_free_f MUTCDCode_free; +asn_struct_print_f MUTCDCode_print; +asn_constr_check_f MUTCDCode_constraint; +ber_type_decoder_f MUTCDCode_decode_ber; +der_type_encoder_f MUTCDCode_encode_der; +xer_type_decoder_f MUTCDCode_decode_xer; +xer_type_encoder_f MUTCDCode_encode_xer; +jer_type_encoder_f MUTCDCode_encode_jer; +oer_type_decoder_f MUTCDCode_decode_oer; +oer_type_encoder_f MUTCDCode_encode_oer; +per_type_decoder_f MUTCDCode_decode_uper; +per_type_encoder_f MUTCDCode_encode_uper; +per_type_decoder_f MUTCDCode_decode_aper; +per_type_encoder_f MUTCDCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MUTCDCode_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ManeuverAssistList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ManeuverAssistList.h new file mode 100644 index 000000000..5e8f1f0f6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ManeuverAssistList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ManeuverAssistList_H_ +#define _ManeuverAssistList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConnectionManeuverAssist; + +/* ManeuverAssistList */ +typedef struct ManeuverAssistList { + A_SEQUENCE_OF(struct ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ManeuverAssistList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MapData-addGrpC.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MapData-addGrpC.h new file mode 100644 index 000000000..79f1a2a10 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MapData-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MapData_addGrpC_H_ +#define _MapData_addGrpC_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocationList; + +/* MapData-addGrpC */ +typedef struct MapData_addGrpC { + struct SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_addGrpC_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MapData.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MapData.h new file mode 100644 index 000000000..12bafc0bf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MapData.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MapData_H_ +#define _MapData_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "Common_MsgCount.h" +#include "LayerType.h" +#include "LayerID.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionGeometryList; +struct RoadSegmentList; +struct DataParameters; +struct RestrictionClassList; +struct Reg_MapData; + +/* MapData */ +typedef struct MapData { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + Common_MsgCount_t msgIssueRevision; + LayerType_t *layerType; /* OPTIONAL */ + LayerID_t *layerID; /* OPTIONAL */ + struct IntersectionGeometryList *intersections; /* OPTIONAL */ + struct RoadSegmentList *roadSegments; /* OPTIONAL */ + struct DataParameters *dataParameters; /* OPTIONAL */ + struct RestrictionClassList *restrictionList; /* OPTIONAL */ + struct MapData__regional { + A_SEQUENCE_OF(struct Reg_MapData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_MapData_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MapData_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MaxTimetoChange.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MaxTimetoChange.h new file mode 100644 index 000000000..e61a7b71f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MaxTimetoChange.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MaxTimetoChange_H_ +#define _MaxTimetoChange_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MaxTimetoChange */ +typedef long MaxTimetoChange_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MaxTimetoChange_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MaxTimetoChange; +asn_struct_free_f MaxTimetoChange_free; +asn_struct_print_f MaxTimetoChange_print; +asn_constr_check_f MaxTimetoChange_constraint; +ber_type_decoder_f MaxTimetoChange_decode_ber; +der_type_encoder_f MaxTimetoChange_encode_der; +xer_type_decoder_f MaxTimetoChange_decode_xer; +xer_type_encoder_f MaxTimetoChange_encode_xer; +jer_type_encoder_f MaxTimetoChange_encode_jer; +oer_type_decoder_f MaxTimetoChange_decode_oer; +oer_type_encoder_f MaxTimetoChange_encode_oer; +per_type_decoder_f MaxTimetoChange_decode_uper; +per_type_encoder_f MaxTimetoChange_encode_uper; +per_type_decoder_f MaxTimetoChange_decode_aper; +per_type_encoder_f MaxTimetoChange_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MaxTimetoChange_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MergeDivergeNodeAngle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MergeDivergeNodeAngle.h new file mode 100644 index 000000000..f908a394c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MergeDivergeNodeAngle.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MergeDivergeNodeAngle_H_ +#define _MergeDivergeNodeAngle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MergeDivergeNodeAngle */ +typedef long MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle; +asn_struct_free_f MergeDivergeNodeAngle_free; +asn_struct_print_f MergeDivergeNodeAngle_print; +asn_constr_check_f MergeDivergeNodeAngle_constraint; +ber_type_decoder_f MergeDivergeNodeAngle_decode_ber; +der_type_encoder_f MergeDivergeNodeAngle_encode_der; +xer_type_decoder_f MergeDivergeNodeAngle_decode_xer; +xer_type_encoder_f MergeDivergeNodeAngle_encode_xer; +jer_type_encoder_f MergeDivergeNodeAngle_encode_jer; +oer_type_decoder_f MergeDivergeNodeAngle_decode_oer; +oer_type_encoder_f MergeDivergeNodeAngle_encode_oer; +per_type_decoder_f MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MergeDivergeNodeAngle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MessageBLOB.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MessageBLOB.h new file mode 100644 index 000000000..406c6840b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MessageBLOB.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MessageBLOB_H_ +#define _MessageBLOB_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MessageBLOB */ +typedef OCTET_STRING_t MessageBLOB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MessageBLOB; +asn_struct_free_f MessageBLOB_free; +asn_struct_print_f MessageBLOB_print; +asn_constr_check_f MessageBLOB_constraint; +ber_type_decoder_f MessageBLOB_decode_ber; +der_type_encoder_f MessageBLOB_encode_der; +xer_type_decoder_f MessageBLOB_decode_xer; +xer_type_encoder_f MessageBLOB_encode_xer; +jer_type_encoder_f MessageBLOB_encode_jer; +oer_type_decoder_f MessageBLOB_decode_oer; +oer_type_encoder_f MessageBLOB_encode_oer; +per_type_decoder_f MessageBLOB_decode_uper; +per_type_encoder_f MessageBLOB_encode_uper; +per_type_decoder_f MessageBLOB_decode_aper; +per_type_encoder_f MessageBLOB_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MessageBLOB_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MessageFrame.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MessageFrame.h new file mode 100644 index 000000000..08795d0b1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MessageFrame.h @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MessageFrame" + * found in "J2735-MessageFrame.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MessageFrame_H_ +#define _MessageFrame_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DSRCmsgID.h" +#include "ANY.h" +#include "asn_ioc.h" +#include "BasicSafetyMessage.h" +#include "MapData.h" +#include "SPAT.h" +#include "CommonSafetyRequest.h" +#include "EmergencyVehicleAlert.h" +#include "IntersectionCollision.h" +#include "NMEAcorrections.h" +#include "ProbeDataManagement.h" +#include "ProbeVehicleData.h" +#include "RoadSideAlert.h" +#include "RTCMcorrections.h" +#include "SignalRequestMessage.h" +#include "SignalStatusMessage.h" +#include "TravelerInformation.h" +#include "PersonalSafetyMessage.h" +#include "TestMessage00.h" +#include "TestMessage01.h" +#include "TestMessage02.h" +#include "TestMessage03.h" +#include "TestMessage04.h" +#include "TestMessage05.h" +#include "TestMessage06.h" +#include "TestMessage07.h" +#include "TestMessage08.h" +#include "TestMessage09.h" +#include "TestMessage10.h" +#include "TestMessage11.h" +#include "TestMessage12.h" +#include "TestMessage13.h" +#include "TestMessage14.h" +#include "TestMessage15.h" +#include "OPEN_TYPE.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MessageFrame__value_PR { + MessageFrame__value_PR_NOTHING, /* No components present */ + MessageFrame__value_PR_BasicSafetyMessage, + MessageFrame__value_PR_MapData, + MessageFrame__value_PR_SPAT, + MessageFrame__value_PR_CommonSafetyRequest, + MessageFrame__value_PR_EmergencyVehicleAlert, + MessageFrame__value_PR_IntersectionCollision, + MessageFrame__value_PR_NMEAcorrections, + MessageFrame__value_PR_ProbeDataManagement, + MessageFrame__value_PR_ProbeVehicleData, + MessageFrame__value_PR_RoadSideAlert, + MessageFrame__value_PR_RTCMcorrections, + MessageFrame__value_PR_SignalRequestMessage, + MessageFrame__value_PR_SignalStatusMessage, + MessageFrame__value_PR_TravelerInformation, + MessageFrame__value_PR_PersonalSafetyMessage, + MessageFrame__value_PR_TestMessage00, + MessageFrame__value_PR_TestMessage01, + MessageFrame__value_PR_TestMessage02, + MessageFrame__value_PR_TestMessage03, + MessageFrame__value_PR_TestMessage04, + MessageFrame__value_PR_TestMessage05, + MessageFrame__value_PR_TestMessage06, + MessageFrame__value_PR_TestMessage07, + MessageFrame__value_PR_TestMessage08, + MessageFrame__value_PR_TestMessage09, + MessageFrame__value_PR_TestMessage10, + MessageFrame__value_PR_TestMessage11, + MessageFrame__value_PR_TestMessage12, + MessageFrame__value_PR_TestMessage13, + MessageFrame__value_PR_TestMessage14, + MessageFrame__value_PR_TestMessage15 +} MessageFrame__value_PR; + +/* MessageFrame */ +typedef struct MessageFrame { + DSRCmsgID_t messageId; + struct MessageFrame__value { + MessageFrame__value_PR present; + union MessageFrame__value_u { + BasicSafetyMessage_t BasicSafetyMessage; + MapData_t MapData; + SPAT_t SPAT; + CommonSafetyRequest_t CommonSafetyRequest; + EmergencyVehicleAlert_t EmergencyVehicleAlert; + IntersectionCollision_t IntersectionCollision; + NMEAcorrections_t NMEAcorrections; + ProbeDataManagement_t ProbeDataManagement; + ProbeVehicleData_t ProbeVehicleData; + RoadSideAlert_t RoadSideAlert; + RTCMcorrections_t RTCMcorrections; + SignalRequestMessage_t SignalRequestMessage; + SignalStatusMessage_t SignalStatusMessage; + TravelerInformation_t TravelerInformation; + PersonalSafetyMessage_t PersonalSafetyMessage; + TestMessage00_t TestMessage00; + TestMessage01_t TestMessage01; + TestMessage02_t TestMessage02; + TestMessage03_t TestMessage03; + TestMessage04_t TestMessage04; + TestMessage05_t TestMessage05; + TestMessage06_t TestMessage06; + TestMessage07_t TestMessage07; + TestMessage08_t TestMessage08; + TestMessage09_t TestMessage09; + TestMessage10_t TestMessage10; + TestMessage11_t TestMessage11; + TestMessage12_t TestMessage12; + TestMessage13_t TestMessage13; + TestMessage14_t TestMessage14; + TestMessage15_t TestMessage15; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MessageFrame_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MessageFrame; + +#ifdef __cplusplus +} +#endif + +#endif /* _MessageFrame_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MinTimetoChange.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MinTimetoChange.h new file mode 100644 index 000000000..3eb0d05a8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MinTimetoChange.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MinTimetoChange_H_ +#define _MinTimetoChange_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinTimetoChange */ +typedef long MinTimetoChange_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinTimetoChange_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinTimetoChange; +asn_struct_free_f MinTimetoChange_free; +asn_struct_print_f MinTimetoChange_print; +asn_constr_check_f MinTimetoChange_constraint; +ber_type_decoder_f MinTimetoChange_decode_ber; +der_type_encoder_f MinTimetoChange_encode_der; +xer_type_decoder_f MinTimetoChange_decode_xer; +xer_type_encoder_f MinTimetoChange_encode_xer; +jer_type_encoder_f MinTimetoChange_encode_jer; +oer_type_decoder_f MinTimetoChange_decode_oer; +oer_type_encoder_f MinTimetoChange_encode_oer; +per_type_decoder_f MinTimetoChange_decode_uper; +per_type_encoder_f MinTimetoChange_encode_uper; +per_type_decoder_f MinTimetoChange_decode_aper; +per_type_encoder_f MinTimetoChange_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinTimetoChange_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Minute.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Minute.h new file mode 100644 index 000000000..72459eb4a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Minute.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Minute_H_ +#define _Minute_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Minute */ +typedef long Minute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Minute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Minute; +asn_struct_free_f Minute_free; +asn_struct_print_f Minute_print; +asn_constr_check_f Minute_constraint; +ber_type_decoder_f Minute_decode_ber; +der_type_encoder_f Minute_encode_der; +xer_type_decoder_f Minute_decode_xer; +xer_type_encoder_f Minute_encode_xer; +jer_type_encoder_f Minute_encode_jer; +oer_type_decoder_f Minute_decode_oer; +oer_type_encoder_f Minute_encode_oer; +per_type_decoder_f Minute_decode_uper; +per_type_encoder_f Minute_encode_uper; +per_type_decoder_f Minute_decode_aper; +per_type_encoder_f Minute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Minute_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MinuteOfTheYear.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MinuteOfTheYear.h new file mode 100644 index 000000000..a63d49b85 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MinuteOfTheYear.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MinuteOfTheYear_H_ +#define _MinuteOfTheYear_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinuteOfTheYear */ +typedef long MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear; +asn_struct_free_f MinuteOfTheYear_free; +asn_struct_print_f MinuteOfTheYear_print; +asn_constr_check_f MinuteOfTheYear_constraint; +ber_type_decoder_f MinuteOfTheYear_decode_ber; +der_type_encoder_f MinuteOfTheYear_encode_der; +xer_type_decoder_f MinuteOfTheYear_decode_xer; +xer_type_encoder_f MinuteOfTheYear_encode_xer; +jer_type_encoder_f MinuteOfTheYear_encode_jer; +oer_type_decoder_f MinuteOfTheYear_decode_oer; +oer_type_encoder_f MinuteOfTheYear_encode_oer; +per_type_decoder_f MinuteOfTheYear_decode_uper; +per_type_encoder_f MinuteOfTheYear_encode_uper; +per_type_decoder_f MinuteOfTheYear_decode_aper; +per_type_encoder_f MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinuteOfTheYear_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MinutesAngle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MinutesAngle.h new file mode 100644 index 000000000..4a85d114a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MinutesAngle.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MinutesAngle_H_ +#define _MinutesAngle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinutesAngle */ +typedef long MinutesAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinutesAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinutesAngle; +asn_struct_free_f MinutesAngle_free; +asn_struct_print_f MinutesAngle_print; +asn_constr_check_f MinutesAngle_constraint; +ber_type_decoder_f MinutesAngle_decode_ber; +der_type_encoder_f MinutesAngle_encode_der; +xer_type_decoder_f MinutesAngle_decode_xer; +xer_type_encoder_f MinutesAngle_encode_xer; +jer_type_encoder_f MinutesAngle_encode_jer; +oer_type_decoder_f MinutesAngle_decode_oer; +oer_type_encoder_f MinutesAngle_encode_oer; +per_type_decoder_f MinutesAngle_decode_uper; +per_type_encoder_f MinutesAngle_encode_uper; +per_type_decoder_f MinutesAngle_decode_aper; +per_type_encoder_f MinutesAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinutesAngle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MinutesDuration.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MinutesDuration.h new file mode 100644 index 000000000..368bac4f3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MinutesDuration.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MinutesDuration_H_ +#define _MinutesDuration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MinutesDuration */ +typedef long MinutesDuration_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MinutesDuration_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MinutesDuration; +asn_struct_free_f MinutesDuration_free; +asn_struct_print_f MinutesDuration_print; +asn_constr_check_f MinutesDuration_constraint; +ber_type_decoder_f MinutesDuration_decode_ber; +der_type_encoder_f MinutesDuration_encode_der; +xer_type_decoder_f MinutesDuration_decode_xer; +xer_type_encoder_f MinutesDuration_encode_xer; +jer_type_encoder_f MinutesDuration_encode_jer; +oer_type_decoder_f MinutesDuration_decode_oer; +oer_type_encoder_f MinutesDuration_encode_oer; +per_type_decoder_f MinutesDuration_decode_uper; +per_type_encoder_f MinutesDuration_encode_uper; +per_type_decoder_f MinutesDuration_decode_aper; +per_type_encoder_f MinutesDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MinutesDuration_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Month.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Month.h new file mode 100644 index 000000000..8b8d0b613 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Month.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Month_H_ +#define _Month_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Month */ +typedef long Month_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Month_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Month; +asn_struct_free_f Month_free; +asn_struct_print_f Month_print; +asn_constr_check_f Month_constraint; +ber_type_decoder_f Month_decode_ber; +der_type_encoder_f Month_encode_der; +xer_type_decoder_f Month_decode_xer; +xer_type_encoder_f Month_encode_xer; +jer_type_encoder_f Month_encode_jer; +oer_type_decoder_f Month_decode_oer; +oer_type_encoder_f Month_encode_oer; +per_type_decoder_f Month_decode_uper; +per_type_encoder_f Month_encode_uper; +per_type_decoder_f Month_decode_aper; +per_type_encoder_f Month_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Month_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MotorizedPropelledType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MotorizedPropelledType.h new file mode 100644 index 000000000..ac595ac7f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MotorizedPropelledType.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MotorizedPropelledType_H_ +#define _MotorizedPropelledType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MotorizedPropelledType { + MotorizedPropelledType_unavailable = 0, + MotorizedPropelledType_otherTypes = 1, + MotorizedPropelledType_wheelChair = 2, + MotorizedPropelledType_bicycle = 3, + MotorizedPropelledType_scooter = 4, + MotorizedPropelledType_selfBalancingDevice = 5 + /* + * Enumeration is extensible + */ +} e_MotorizedPropelledType; + +/* MotorizedPropelledType */ +typedef long MotorizedPropelledType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MotorizedPropelledType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MotorizedPropelledType; +extern const asn_INTEGER_specifics_t asn_SPC_MotorizedPropelledType_specs_1; +asn_struct_free_f MotorizedPropelledType_free; +asn_struct_print_f MotorizedPropelledType_print; +asn_constr_check_f MotorizedPropelledType_constraint; +ber_type_decoder_f MotorizedPropelledType_decode_ber; +der_type_encoder_f MotorizedPropelledType_encode_der; +xer_type_decoder_f MotorizedPropelledType_decode_xer; +xer_type_encoder_f MotorizedPropelledType_encode_xer; +jer_type_encoder_f MotorizedPropelledType_encode_jer; +oer_type_decoder_f MotorizedPropelledType_decode_oer; +oer_type_encoder_f MotorizedPropelledType_encode_oer; +per_type_decoder_f MotorizedPropelledType_decode_uper; +per_type_encoder_f MotorizedPropelledType_encode_uper; +per_type_decoder_f MotorizedPropelledType_decode_aper; +per_type_encoder_f MotorizedPropelledType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MotorizedPropelledType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEvent-addGrpB.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEvent-addGrpB.h new file mode 100644 index 000000000..cfc2fe447 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEvent-addGrpB.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MovementEvent_addGrpB_H_ +#define _MovementEvent_addGrpB_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TimeRemaining.h" +#include "MinTimetoChange.h" +#include "MaxTimetoChange.h" +#include "TimeIntervalConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MovementEvent-addGrpB */ +typedef struct MovementEvent_addGrpB { + TimeRemaining_t *startTime; /* OPTIONAL */ + MinTimetoChange_t minEndTime; + MaxTimetoChange_t *maxEndTime; /* OPTIONAL */ + TimeRemaining_t *likelyTime; /* OPTIONAL */ + TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + TimeRemaining_t *nextTime; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_addGrpB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpB; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpB_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_addGrpB_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_addGrpB_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEvent.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEvent.h new file mode 100644 index 000000000..cea2d2ab8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEvent.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MovementEvent_H_ +#define _MovementEvent_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MovementPhaseState.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TimeChangeDetails; +struct AdvisorySpeedList; +struct Reg_MovementEvent; + +/* MovementEvent */ +typedef struct MovementEvent { + MovementPhaseState_t eventState; + struct TimeChangeDetails *timing; /* OPTIONAL */ + struct AdvisorySpeedList *speeds; /* OPTIONAL */ + struct MovementEvent__regional { + A_SEQUENCE_OF(struct Reg_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEvent_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEventList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEventList.h new file mode 100644 index 000000000..c2e0f1e2b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementEventList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MovementEventList_H_ +#define _MovementEventList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementEvent; + +/* MovementEventList */ +typedef struct MovementEventList { + A_SEQUENCE_OF(struct MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementEventList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementList.h new file mode 100644 index 000000000..b713615a3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MovementList_H_ +#define _MovementList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MovementState; + +/* MovementList */ +typedef struct MovementList { + A_SEQUENCE_OF(struct MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementPhaseState.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementPhaseState.h new file mode 100644 index 000000000..6cdcb0b52 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementPhaseState.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MovementPhaseState_H_ +#define _MovementPhaseState_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MovementPhaseState { + MovementPhaseState_unavailable = 0, + MovementPhaseState_dark = 1, + MovementPhaseState_stop_Then_Proceed = 2, + MovementPhaseState_stop_And_Remain = 3, + MovementPhaseState_pre_Movement = 4, + MovementPhaseState_permissive_Movement_Allowed = 5, + MovementPhaseState_protected_Movement_Allowed = 6, + MovementPhaseState_permissive_clearance = 7, + MovementPhaseState_protected_clearance = 8, + MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_MovementPhaseState; + +/* MovementPhaseState */ +typedef long MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1; +asn_struct_free_f MovementPhaseState_free; +asn_struct_print_f MovementPhaseState_print; +asn_constr_check_f MovementPhaseState_constraint; +ber_type_decoder_f MovementPhaseState_decode_ber; +der_type_encoder_f MovementPhaseState_encode_der; +xer_type_decoder_f MovementPhaseState_decode_xer; +xer_type_encoder_f MovementPhaseState_encode_xer; +jer_type_encoder_f MovementPhaseState_encode_jer; +oer_type_decoder_f MovementPhaseState_decode_oer; +oer_type_encoder_f MovementPhaseState_encode_oer; +per_type_decoder_f MovementPhaseState_decode_uper; +per_type_encoder_f MovementPhaseState_encode_uper; +per_type_decoder_f MovementPhaseState_decode_aper; +per_type_encoder_f MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementPhaseState_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementState.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementState.h new file mode 100644 index 000000000..f74b54ef5 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MovementState.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MovementState_H_ +#define _MovementState_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "SignalGroupID.h" +#include "MovementEventList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ManeuverAssistList; +struct Reg_MovementState; + +/* MovementState */ +typedef struct MovementState { + DescriptiveName_t *movementName; /* OPTIONAL */ + SignalGroupID_t signalGroup; + MovementEventList_t state_time_speed; + struct ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct MovementState__regional { + A_SEQUENCE_OF(struct Reg_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MovementState_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MsgCRC.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MsgCRC.h new file mode 100644 index 000000000..6626f4a3c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MsgCRC.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MsgCRC_H_ +#define _MsgCRC_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MsgCRC */ +typedef OCTET_STRING_t MsgCRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MsgCRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MsgCRC; +asn_struct_free_f MsgCRC_free; +asn_struct_print_f MsgCRC_print; +asn_constr_check_f MsgCRC_constraint; +ber_type_decoder_f MsgCRC_decode_ber; +der_type_encoder_f MsgCRC_encode_der; +xer_type_decoder_f MsgCRC_decode_xer; +xer_type_encoder_f MsgCRC_encode_xer; +jer_type_encoder_f MsgCRC_encode_jer; +oer_type_decoder_f MsgCRC_decode_oer; +oer_type_encoder_f MsgCRC_encode_oer; +per_type_decoder_f MsgCRC_decode_uper; +per_type_encoder_f MsgCRC_encode_uper; +per_type_decoder_f MsgCRC_decode_aper; +per_type_encoder_f MsgCRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MsgCRC_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/MultiVehicleResponse.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/MultiVehicleResponse.h new file mode 100644 index 000000000..8a0f64cb2 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/MultiVehicleResponse.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _MultiVehicleResponse_H_ +#define _MultiVehicleResponse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MultiVehicleResponse { + MultiVehicleResponse_unavailable = 0, + MultiVehicleResponse_singleVehicle = 1, + MultiVehicleResponse_multiVehicle = 2, + MultiVehicleResponse_reserved = 3 +} e_MultiVehicleResponse; + +/* MultiVehicleResponse */ +typedef long MultiVehicleResponse_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MultiVehicleResponse_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MultiVehicleResponse; +extern const asn_INTEGER_specifics_t asn_SPC_MultiVehicleResponse_specs_1; +asn_struct_free_f MultiVehicleResponse_free; +asn_struct_print_f MultiVehicleResponse_print; +asn_constr_check_f MultiVehicleResponse_constraint; +ber_type_decoder_f MultiVehicleResponse_decode_ber; +der_type_encoder_f MultiVehicleResponse_encode_der; +xer_type_decoder_f MultiVehicleResponse_decode_xer; +xer_type_encoder_f MultiVehicleResponse_encode_xer; +jer_type_encoder_f MultiVehicleResponse_encode_jer; +oer_type_decoder_f MultiVehicleResponse_decode_oer; +oer_type_encoder_f MultiVehicleResponse_encode_oer; +per_type_decoder_f MultiVehicleResponse_decode_uper; +per_type_encoder_f MultiVehicleResponse_encode_uper; +per_type_decoder_f MultiVehicleResponse_decode_aper; +per_type_encoder_f MultiVehicleResponse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MultiVehicleResponse_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-MsgType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-MsgType.h new file mode 100644 index 000000000..f2f401222 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-MsgType.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NMEAcorrections" + * found in "J2735-NMEAcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NMEA_MsgType_H_ +#define _NMEA_MsgType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NMEA-MsgType */ +typedef long NMEA_MsgType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NMEA_MsgType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NMEA_MsgType; +asn_struct_free_f NMEA_MsgType_free; +asn_struct_print_f NMEA_MsgType_print; +asn_constr_check_f NMEA_MsgType_constraint; +ber_type_decoder_f NMEA_MsgType_decode_ber; +der_type_encoder_f NMEA_MsgType_encode_der; +xer_type_decoder_f NMEA_MsgType_decode_xer; +xer_type_encoder_f NMEA_MsgType_encode_xer; +jer_type_encoder_f NMEA_MsgType_encode_jer; +oer_type_decoder_f NMEA_MsgType_decode_oer; +oer_type_encoder_f NMEA_MsgType_encode_oer; +per_type_decoder_f NMEA_MsgType_decode_uper; +per_type_encoder_f NMEA_MsgType_encode_uper; +per_type_decoder_f NMEA_MsgType_decode_aper; +per_type_encoder_f NMEA_MsgType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NMEA_MsgType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-Payload.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-Payload.h new file mode 100644 index 000000000..80ddfcd01 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-Payload.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NMEAcorrections" + * found in "J2735-NMEAcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NMEA_Payload_H_ +#define _NMEA_Payload_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NMEA-Payload */ +typedef OCTET_STRING_t NMEA_Payload_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NMEA_Payload_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NMEA_Payload; +asn_struct_free_f NMEA_Payload_free; +asn_struct_print_f NMEA_Payload_print; +asn_constr_check_f NMEA_Payload_constraint; +ber_type_decoder_f NMEA_Payload_decode_ber; +der_type_encoder_f NMEA_Payload_encode_der; +xer_type_decoder_f NMEA_Payload_decode_xer; +xer_type_encoder_f NMEA_Payload_encode_xer; +jer_type_encoder_f NMEA_Payload_encode_jer; +oer_type_decoder_f NMEA_Payload_decode_oer; +oer_type_encoder_f NMEA_Payload_encode_oer; +per_type_decoder_f NMEA_Payload_decode_uper; +per_type_encoder_f NMEA_Payload_encode_uper; +per_type_decoder_f NMEA_Payload_decode_aper; +per_type_encoder_f NMEA_Payload_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NMEA_Payload_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-Revision.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-Revision.h new file mode 100644 index 000000000..384564b35 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEA-Revision.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NMEAcorrections" + * found in "J2735-NMEAcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NMEA_Revision_H_ +#define _NMEA_Revision_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NMEA_Revision { + NMEA_Revision_unknown = 0, + NMEA_Revision_reserved = 1, + NMEA_Revision_rev1 = 2, + NMEA_Revision_rev2 = 3, + NMEA_Revision_rev3 = 4, + NMEA_Revision_rev4 = 5, + NMEA_Revision_rev5 = 6 + /* + * Enumeration is extensible + */ +} e_NMEA_Revision; + +/* NMEA-Revision */ +typedef long NMEA_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NMEA_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NMEA_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_NMEA_Revision_specs_1; +asn_struct_free_f NMEA_Revision_free; +asn_struct_print_f NMEA_Revision_print; +asn_constr_check_f NMEA_Revision_constraint; +ber_type_decoder_f NMEA_Revision_decode_ber; +der_type_encoder_f NMEA_Revision_encode_der; +xer_type_decoder_f NMEA_Revision_decode_xer; +xer_type_encoder_f NMEA_Revision_encode_xer; +jer_type_encoder_f NMEA_Revision_encode_jer; +oer_type_decoder_f NMEA_Revision_decode_oer; +oer_type_encoder_f NMEA_Revision_encode_oer; +per_type_decoder_f NMEA_Revision_decode_uper; +per_type_encoder_f NMEA_Revision_encode_uper; +per_type_decoder_f NMEA_Revision_decode_aper; +per_type_encoder_f NMEA_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NMEA_Revision_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEAcorrections.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEAcorrections.h new file mode 100644 index 000000000..261c316c0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NMEAcorrections.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NMEAcorrections" + * found in "J2735-NMEAcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NMEAcorrections_H_ +#define _NMEAcorrections_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "NMEA-Revision.h" +#include "NMEA-MsgType.h" +#include "ObjectCount.h" +#include "NMEA-Payload.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_NMEAcorrections; + +/* NMEAcorrections */ +typedef struct NMEAcorrections { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + NMEA_Revision_t *rev; /* OPTIONAL */ + NMEA_MsgType_t *msg; /* OPTIONAL */ + ObjectCount_t *wdCount; /* OPTIONAL */ + NMEA_Payload_t payload; + struct NMEAcorrections__regional { + A_SEQUENCE_OF(struct Reg_NMEAcorrections) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NMEAcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NMEAcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_NMEAcorrections_specs_1; +extern asn_TYPE_member_t asn_MBR_NMEAcorrections_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NMEAcorrections_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NativeEnumerated.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NativeEnumerated.h new file mode 100644 index 000000000..0c711e3fe --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NativeEnumerated.h @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard ENUMERATED in that it is modelled using + * the fixed machine type (long, int, short), so it can hold only values of + * limited length. There is no type (i.e., NativeEnumerated_t, any integer type + * will do). + * This type may be used when integer range is limited by subtype constraints. + */ +#ifndef _NativeEnumerated_H_ +#define _NativeEnumerated_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; +extern asn_TYPE_operation_t asn_OP_NativeEnumerated; + +#define NativeEnumerated_free NativeInteger_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define NativeEnumerated_print NativeInteger_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define NativeEnumerated_compare NativeInteger_compare + +#define NativeEnumerated_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define NativeEnumerated_decode_ber NativeInteger_decode_ber +#define NativeEnumerated_encode_der NativeInteger_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define NativeEnumerated_decode_xer NativeInteger_decode_xer +xer_type_encoder_f NativeEnumerated_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f NativeEnumerated_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f NativeEnumerated_decode_oer; +oer_type_encoder_f NativeEnumerated_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f NativeEnumerated_decode_uper; +per_type_encoder_f NativeEnumerated_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f NativeEnumerated_decode_aper; +per_type_encoder_f NativeEnumerated_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#define NativeEnumerated_random_fill NativeInteger_random_fill +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int NativeEnumerated__compar_value2enum( + const void *ap, + const void *bp); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _NativeEnumerated_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NativeInteger.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NativeInteger.h new file mode 100644 index 000000000..3a47c11a0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NativeInteger.h @@ -0,0 +1,71 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard INTEGER in that it is modelled using + * the fixed machine type (long, int, short), so it can hold only values of + * limited length. There is no type (i.e., NativeInteger_t, any integer type + * will do). + * This type may be used when integer range is limited by subtype constraints. + */ +#ifndef _NativeInteger_H_ +#define _NativeInteger_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; +extern asn_TYPE_operation_t asn_OP_NativeInteger; + +asn_struct_free_f NativeInteger_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f NativeInteger_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f NativeInteger_compare; + +#define NativeInteger_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f NativeInteger_decode_ber; +der_type_encoder_f NativeInteger_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f NativeInteger_decode_xer; +xer_type_encoder_f NativeInteger_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f NativeInteger_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f NativeInteger_decode_oer; +oer_type_encoder_f NativeInteger_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f NativeInteger_decode_uper; +per_type_encoder_f NativeInteger_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f NativeInteger_decode_aper; +per_type_encoder_f NativeInteger_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f NativeInteger_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _NativeInteger_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-24B.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-24B.h new file mode 100644 index 000000000..e083db5d8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-24B.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_LL_24B_H_ +#define _Node_LL_24B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OffsetLL-B12.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LL-24B */ +typedef struct Node_LL_24B { + OffsetLL_B12_t lon; + OffsetLL_B12_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LL_24B_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LL_24B; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LL_24B_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LL_24B_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LL_24B_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-28B.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-28B.h new file mode 100644 index 000000000..17b7a2ad1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-28B.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_LL_28B_H_ +#define _Node_LL_28B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OffsetLL-B14.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LL-28B */ +typedef struct Node_LL_28B { + OffsetLL_B14_t lon; + OffsetLL_B14_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LL_28B_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LL_28B; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LL_28B_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LL_28B_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LL_28B_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-32B.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-32B.h new file mode 100644 index 000000000..8cb729d4f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-32B.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_LL_32B_H_ +#define _Node_LL_32B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OffsetLL-B16.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LL-32B */ +typedef struct Node_LL_32B { + OffsetLL_B16_t lon; + OffsetLL_B16_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LL_32B_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LL_32B; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LL_32B_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LL_32B_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LL_32B_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-36B.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-36B.h new file mode 100644 index 000000000..a384a4408 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-36B.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_LL_36B_H_ +#define _Node_LL_36B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OffsetLL-B18.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LL-36B */ +typedef struct Node_LL_36B { + OffsetLL_B18_t lon; + OffsetLL_B18_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LL_36B_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LL_36B; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LL_36B_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LL_36B_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LL_36B_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-44B.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-44B.h new file mode 100644 index 000000000..46f8fe002 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-44B.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_LL_44B_H_ +#define _Node_LL_44B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OffsetLL-B22.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LL-44B */ +typedef struct Node_LL_44B { + OffsetLL_B22_t lon; + OffsetLL_B22_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LL_44B_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LL_44B; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LL_44B_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LL_44B_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LL_44B_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-48B.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-48B.h new file mode 100644 index 000000000..838bd7655 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LL-48B.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_LL_48B_H_ +#define _Node_LL_48B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OffsetLL-B24.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LL-48B */ +typedef struct Node_LL_48B { + OffsetLL_B24_t lon; + OffsetLL_B24_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LL_48B_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LL_48B; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LL_48B_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LL_48B_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LL_48B_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLdms-48b.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLdms-48b.h new file mode 100644 index 000000000..0720d15dc --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLdms-48b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_LLdms_48b_H_ +#define _Node_LLdms_48b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LongitudeDMS.h" +#include "LatitudeDMS.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LLdms-48b */ +typedef struct Node_LLdms_48b { + LongitudeDMS_t lon; + LatitudeDMS_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LLdms_48b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LLdms_48b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LLdms_48b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LLdms_48b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LLdms_48b_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLdms-80b.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLdms-80b.h new file mode 100644 index 000000000..608873b2f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLdms-80b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_LLdms_80b_H_ +#define _Node_LLdms_80b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LongitudeDMS2.h" +#include "LatitudeDMS2.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LLdms-80b */ +typedef struct Node_LLdms_80b { + LongitudeDMS2_t lon; + LatitudeDMS2_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LLdms_80b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LLdms_80b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LLdms_80b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LLdms_80b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LLdms_80b_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLmD-64b.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLmD-64b.h new file mode 100644 index 000000000..37a0cc84c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-LLmD-64b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_LLmD_64b_H_ +#define _Node_LLmD_64b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Longitude.h" +#include "Latitude.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-LLmD-64b */ +typedef struct Node_LLmD_64b { + Longitude_t lon; + Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_LLmD_64b_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-20b.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-20b.h new file mode 100644 index 000000000..4a041d80f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-20b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_XY_20b_H_ +#define _Node_XY_20b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Offset-B10.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-20b */ +typedef struct Node_XY_20b { + Offset_B10_t x; + Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_20b_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-22b.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-22b.h new file mode 100644 index 000000000..c47628e4f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-22b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_XY_22b_H_ +#define _Node_XY_22b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Offset-B11.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-22b */ +typedef struct Node_XY_22b { + Offset_B11_t x; + Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_22b_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-24b.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-24b.h new file mode 100644 index 000000000..4dc09366d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-24b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_XY_24b_H_ +#define _Node_XY_24b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Offset-B12.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-24b */ +typedef struct Node_XY_24b { + Offset_B12_t x; + Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_24b_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-26b.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-26b.h new file mode 100644 index 000000000..083583472 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-26b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_XY_26b_H_ +#define _Node_XY_26b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Offset-B13.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-26b */ +typedef struct Node_XY_26b { + Offset_B13_t x; + Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_26b_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-28b.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-28b.h new file mode 100644 index 000000000..6db5d9275 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-28b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_XY_28b_H_ +#define _Node_XY_28b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Offset-B14.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-28b */ +typedef struct Node_XY_28b { + Offset_B14_t x; + Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_28b_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-32b.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-32b.h new file mode 100644 index 000000000..66ec54695 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Node-XY-32b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Node_XY_32b_H_ +#define _Node_XY_32b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Offset-B16.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Node-XY-32b */ +typedef struct Node_XY_32b { + Offset_B16_t x; + Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Node_XY_32b_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeLL.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeLL.h new file mode 100644 index 000000000..9ed0de31a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeLL.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeAttributeLL_H_ +#define _NodeAttributeLL_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeAttributeLL { + NodeAttributeLL_reserved = 0, + NodeAttributeLL_stopLine = 1, + NodeAttributeLL_roundedCapStyleA = 2, + NodeAttributeLL_roundedCapStyleB = 3, + NodeAttributeLL_mergePoint = 4, + NodeAttributeLL_divergePoint = 5, + NodeAttributeLL_downstreamStopLine = 6, + NodeAttributeLL_downstreamStartNode = 7, + NodeAttributeLL_closedToTraffic = 8, + NodeAttributeLL_safeIsland = 9, + NodeAttributeLL_curbPresentAtStepOff = 10, + NodeAttributeLL_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_NodeAttributeLL; + +/* NodeAttributeLL */ +typedef long NodeAttributeLL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NodeAttributeLL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeLL; +extern const asn_INTEGER_specifics_t asn_SPC_NodeAttributeLL_specs_1; +asn_struct_free_f NodeAttributeLL_free; +asn_struct_print_f NodeAttributeLL_print; +asn_constr_check_f NodeAttributeLL_constraint; +ber_type_decoder_f NodeAttributeLL_decode_ber; +der_type_encoder_f NodeAttributeLL_encode_der; +xer_type_decoder_f NodeAttributeLL_decode_xer; +xer_type_encoder_f NodeAttributeLL_encode_xer; +jer_type_encoder_f NodeAttributeLL_encode_jer; +oer_type_decoder_f NodeAttributeLL_decode_oer; +oer_type_encoder_f NodeAttributeLL_encode_oer; +per_type_decoder_f NodeAttributeLL_decode_uper; +per_type_encoder_f NodeAttributeLL_encode_uper; +per_type_decoder_f NodeAttributeLL_decode_aper; +per_type_encoder_f NodeAttributeLL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeLL_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeLLList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeLLList.h new file mode 100644 index 000000000..9bc0d4da3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeLLList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeAttributeLLList_H_ +#define _NodeAttributeLLList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NodeAttributeLL.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NodeAttributeLLList */ +typedef struct NodeAttributeLLList { + A_SEQUENCE_OF(NodeAttributeLL_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeLLList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeLLList; +extern asn_SET_OF_specifics_t asn_SPC_NodeAttributeLLList_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeLLList_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeAttributeLLList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeLLList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeSetLL.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeSetLL.h new file mode 100644 index 000000000..cc072f141 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeSetLL.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeAttributeSetLL_H_ +#define _NodeAttributeSetLL_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Offset-B10.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeLLList; +struct SegmentAttributeLLList; +struct LaneDataAttributeList; +struct Reg_NodeAttributeSetLL; + +/* NodeAttributeSetLL */ +typedef struct NodeAttributeSetLL { + struct NodeAttributeLLList *localNode; /* OPTIONAL */ + struct SegmentAttributeLLList *disabled; /* OPTIONAL */ + struct SegmentAttributeLLList *enabled; /* OPTIONAL */ + struct LaneDataAttributeList *data; /* OPTIONAL */ + Offset_B10_t *dWidth; /* OPTIONAL */ + Offset_B10_t *dElevation; /* OPTIONAL */ + struct NodeAttributeSetLL__regional { + A_SEQUENCE_OF(struct Reg_NodeAttributeSetLL) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSetLL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetLL; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetLL_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSetLL_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSetLL_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeSetXY.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeSetXY.h new file mode 100644 index 000000000..0f98a8fb6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeSetXY.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeAttributeSetXY_H_ +#define _NodeAttributeSetXY_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Offset-B10.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeXYList; +struct SegmentAttributeXYList; +struct LaneDataAttributeList; +struct Reg_NodeAttributeSetXY; + +/* NodeAttributeSetXY */ +typedef struct NodeAttributeSetXY { + struct NodeAttributeXYList *localNode; /* OPTIONAL */ + struct SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct LaneDataAttributeList *data; /* OPTIONAL */ + Offset_B10_t *dWidth; /* OPTIONAL */ + Offset_B10_t *dElevation; /* OPTIONAL */ + struct NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct Reg_NodeAttributeSetXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeSetXY_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeXY.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeXY.h new file mode 100644 index 000000000..9803927cf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeXY.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeAttributeXY_H_ +#define _NodeAttributeXY_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeAttributeXY { + NodeAttributeXY_reserved = 0, + NodeAttributeXY_stopLine = 1, + NodeAttributeXY_roundedCapStyleA = 2, + NodeAttributeXY_roundedCapStyleB = 3, + NodeAttributeXY_mergePoint = 4, + NodeAttributeXY_divergePoint = 5, + NodeAttributeXY_downstreamStopLine = 6, + NodeAttributeXY_downstreamStartNode = 7, + NodeAttributeXY_closedToTraffic = 8, + NodeAttributeXY_safeIsland = 9, + NodeAttributeXY_curbPresentAtStepOff = 10, + NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_NodeAttributeXY; + +/* NodeAttributeXY */ +typedef long NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1; +asn_struct_free_f NodeAttributeXY_free; +asn_struct_print_f NodeAttributeXY_print; +asn_constr_check_f NodeAttributeXY_constraint; +ber_type_decoder_f NodeAttributeXY_decode_ber; +der_type_encoder_f NodeAttributeXY_encode_der; +xer_type_decoder_f NodeAttributeXY_decode_xer; +xer_type_encoder_f NodeAttributeXY_encode_xer; +jer_type_encoder_f NodeAttributeXY_encode_jer; +oer_type_decoder_f NodeAttributeXY_decode_oer; +oer_type_encoder_f NodeAttributeXY_encode_oer; +per_type_decoder_f NodeAttributeXY_decode_uper; +per_type_encoder_f NodeAttributeXY_encode_uper; +per_type_decoder_f NodeAttributeXY_decode_aper; +per_type_encoder_f NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXY_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeXYList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeXYList.h new file mode 100644 index 000000000..af3e4be8d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeAttributeXYList_H_ +#define _NodeAttributeXYList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NodeAttributeXY.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NodeAttributeXYList */ +typedef struct NodeAttributeXYList { + A_SEQUENCE_OF(NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeAttributeXYList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeLL.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeLL.h new file mode 100644 index 000000000..c71625ba3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeLL.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeLL_H_ +#define _NodeLL_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NodeOffsetPointLL.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeSetLL; + +/* NodeLL */ +typedef struct NodeLL { + NodeOffsetPointLL_t delta; + struct NodeAttributeSetLL *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeLL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeLL; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeLL_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeLL_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeLL_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeListLL.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeListLL.h new file mode 100644 index 000000000..39c40dc3d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeListLL.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeListLL_H_ +#define _NodeListLL_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NodeSetLL.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeListLL_PR { + NodeListLL_PR_NOTHING, /* No components present */ + NodeListLL_PR_nodes + /* Extensions may appear below */ + +} NodeListLL_PR; + +/* NodeListLL */ +typedef struct NodeListLL { + NodeListLL_PR present; + union NodeListLL_u { + NodeSetLL_t nodes; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeListLL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeListLL; +extern asn_CHOICE_specifics_t asn_SPC_NodeListLL_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeListLL_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeListLL_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeListLL_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeListXY.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeListXY.h new file mode 100644 index 000000000..4ba01bfc4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeListXY.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeListXY_H_ +#define _NodeListXY_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NodeSetXY.h" +#include "ComputedLane.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeListXY_PR { + NodeListXY_PR_NOTHING, /* No components present */ + NodeListXY_PR_nodes, + NodeListXY_PR_computed + /* Extensions may appear below */ + +} NodeListXY_PR; + +/* NodeListXY */ +typedef struct NodeListXY { + NodeListXY_PR present; + union NodeListXY_u { + NodeSetXY_t nodes; + ComputedLane_t computed; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeListXY_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointLL.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointLL.h new file mode 100644 index 000000000..a07d995ed --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointLL.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeOffsetPointLL_H_ +#define _NodeOffsetPointLL_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Node-LL-24B.h" +#include "Node-LL-28B.h" +#include "Node-LL-32B.h" +#include "Node-LL-36B.h" +#include "Node-LL-44B.h" +#include "Node-LL-48B.h" +#include "Node-LLmD-64b.h" +#include "RegionalExtension.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointLL_PR { + NodeOffsetPointLL_PR_NOTHING, /* No components present */ + NodeOffsetPointLL_PR_node_LL1, + NodeOffsetPointLL_PR_node_LL2, + NodeOffsetPointLL_PR_node_LL3, + NodeOffsetPointLL_PR_node_LL4, + NodeOffsetPointLL_PR_node_LL5, + NodeOffsetPointLL_PR_node_LL6, + NodeOffsetPointLL_PR_node_LatLon, + NodeOffsetPointLL_PR_regional +} NodeOffsetPointLL_PR; + +/* NodeOffsetPointLL */ +typedef struct NodeOffsetPointLL { + NodeOffsetPointLL_PR present; + union NodeOffsetPointLL_u { + Node_LL_24B_t node_LL1; + Node_LL_28B_t node_LL2; + Node_LL_32B_t node_LL3; + Node_LL_36B_t node_LL4; + Node_LL_44B_t node_LL5; + Node_LL_48B_t node_LL6; + Node_LLmD_64b_t node_LatLon; + Reg_NodeOffsetPointLL_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointLL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointLL; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointLL_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointLL_1[8]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointLL_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointLL_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointXY-addGrpB.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointXY-addGrpB.h new file mode 100644 index 000000000..5ac467a85 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointXY-addGrpB.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeOffsetPointXY_addGrpB_H_ +#define _NodeOffsetPointXY_addGrpB_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Node-LLdms-48b.h" +#include "Node-LLdms-80b.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointXY_addGrpB_PR { + NodeOffsetPointXY_addGrpB_PR_NOTHING, /* No components present */ + NodeOffsetPointXY_addGrpB_PR_posA, + NodeOffsetPointXY_addGrpB_PR_posB + /* Extensions may appear below */ + +} NodeOffsetPointXY_addGrpB_PR; + +/* NodeOffsetPointXY-addGrpB */ +typedef struct NodeOffsetPointXY_addGrpB { + NodeOffsetPointXY_addGrpB_PR present; + union NodeOffsetPointXY_addGrpB_u { + Node_LLdms_48b_t posA; + Node_LLdms_80b_t posB; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointXY_addGrpB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY_addGrpB; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_addGrpB_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_addGrpB_1[2]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_addGrpB_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointXY_addGrpB_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointXY.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointXY.h new file mode 100644 index 000000000..4bb486225 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeOffsetPointXY.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeOffsetPointXY_H_ +#define _NodeOffsetPointXY_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Node-XY-20b.h" +#include "Node-XY-22b.h" +#include "Node-XY-24b.h" +#include "Node-XY-26b.h" +#include "Node-XY-28b.h" +#include "Node-XY-32b.h" +#include "Node-LLmD-64b.h" +#include "RegionalExtension.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NodeOffsetPointXY_PR { + NodeOffsetPointXY_PR_NOTHING, /* No components present */ + NodeOffsetPointXY_PR_node_XY1, + NodeOffsetPointXY_PR_node_XY2, + NodeOffsetPointXY_PR_node_XY3, + NodeOffsetPointXY_PR_node_XY4, + NodeOffsetPointXY_PR_node_XY5, + NodeOffsetPointXY_PR_node_XY6, + NodeOffsetPointXY_PR_node_LatLon, + NodeOffsetPointXY_PR_regional +} NodeOffsetPointXY_PR; + +/* NodeOffsetPointXY */ +typedef struct NodeOffsetPointXY { + NodeOffsetPointXY_PR present; + union NodeOffsetPointXY_u { + Node_XY_20b_t node_XY1; + Node_XY_22b_t node_XY2; + Node_XY_24b_t node_XY3; + Node_XY_26b_t node_XY4; + Node_XY_28b_t node_XY5; + Node_XY_32b_t node_XY6; + Node_LLmD_64b_t node_LatLon; + Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeOffsetPointXY_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeSetLL.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeSetLL.h new file mode 100644 index 000000000..023d2252d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeSetLL.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeSetLL_H_ +#define _NodeSetLL_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeLL; + +/* NodeSetLL */ +typedef struct NodeSetLL { + A_SEQUENCE_OF(struct NodeLL) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeSetLL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeSetLL; +extern asn_SET_OF_specifics_t asn_SPC_NodeSetLL_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeSetLL_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeSetLL_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeSetLL_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeSetXY.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeSetXY.h new file mode 100644 index 000000000..5d1c49c49 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeSetXY.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeSetXY_H_ +#define _NodeSetXY_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeXY; + +/* NodeSetXY */ +typedef struct NodeSetXY { + A_SEQUENCE_OF(struct NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeSetXY_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeXY.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeXY.h new file mode 100644 index 000000000..164e75a84 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NodeXY.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NodeXY_H_ +#define _NodeXY_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NodeAttributeSetXY; + +/* NodeXY */ +typedef struct NodeXY { + NodeOffsetPointXY_t delta; + struct NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NodeXY_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/NumberOfParticipantsInCluster.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/NumberOfParticipantsInCluster.h new file mode 100644 index 000000000..81e0bda68 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/NumberOfParticipantsInCluster.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _NumberOfParticipantsInCluster_H_ +#define _NumberOfParticipantsInCluster_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NumberOfParticipantsInCluster { + NumberOfParticipantsInCluster_unavailable = 0, + NumberOfParticipantsInCluster_small = 1, + NumberOfParticipantsInCluster_medium = 2, + NumberOfParticipantsInCluster_large = 3 + /* + * Enumeration is extensible + */ +} e_NumberOfParticipantsInCluster; + +/* NumberOfParticipantsInCluster */ +typedef long NumberOfParticipantsInCluster_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NumberOfParticipantsInCluster_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NumberOfParticipantsInCluster; +extern const asn_INTEGER_specifics_t asn_SPC_NumberOfParticipantsInCluster_specs_1; +asn_struct_free_f NumberOfParticipantsInCluster_free; +asn_struct_print_f NumberOfParticipantsInCluster_print; +asn_constr_check_f NumberOfParticipantsInCluster_constraint; +ber_type_decoder_f NumberOfParticipantsInCluster_decode_ber; +der_type_encoder_f NumberOfParticipantsInCluster_encode_der; +xer_type_decoder_f NumberOfParticipantsInCluster_decode_xer; +xer_type_encoder_f NumberOfParticipantsInCluster_encode_xer; +jer_type_encoder_f NumberOfParticipantsInCluster_encode_jer; +oer_type_decoder_f NumberOfParticipantsInCluster_decode_oer; +oer_type_encoder_f NumberOfParticipantsInCluster_encode_oer; +per_type_decoder_f NumberOfParticipantsInCluster_decode_uper; +per_type_encoder_f NumberOfParticipantsInCluster_encode_uper; +per_type_decoder_f NumberOfParticipantsInCluster_decode_aper; +per_type_encoder_f NumberOfParticipantsInCluster_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfParticipantsInCluster_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OBJECT_IDENTIFIER.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OBJECT_IDENTIFIER.h new file mode 100644 index 000000000..f878055c6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OBJECT_IDENTIFIER.h @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OBJECT_IDENTIFIER_H_ +#define _OBJECT_IDENTIFIER_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef uint32_t asn_oid_arc_t; +#define ASN_OID_ARC_MAX (~((asn_oid_arc_t)0)) + +typedef ASN__PRIMITIVE_TYPE_t OBJECT_IDENTIFIER_t; + +extern asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER; +extern asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER; + +ssize_t OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st, + asn_app_consume_bytes_f *cb, + void *app_key); + +#define OBJECT_IDENTIFIER_free ASN__PRIMITIVE_TYPE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f OBJECT_IDENTIFIER_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define OBJECT_IDENTIFIER_compare OCTET_STRING_compare + +asn_constr_check_f OBJECT_IDENTIFIER_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_ber ber_decode_primitive +#define OBJECT_IDENTIFIER_encode_der der_encode_primitive +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f OBJECT_IDENTIFIER_decode_xer; +xer_type_encoder_f OBJECT_IDENTIFIER_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f OBJECT_IDENTIFIER_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_oer oer_decode_primitive +#define OBJECT_IDENTIFIER_encode_oer oer_encode_primitive +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_uper OCTET_STRING_decode_uper +#define OBJECT_IDENTIFIER_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_aper OCTET_STRING_decode_aper +#define OBJECT_IDENTIFIER_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f OBJECT_IDENTIFIER_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +/********************************** + * Some handy conversion routines * + **********************************/ + +/* + * This function fills an (arcs) array with OBJECT IDENTIFIER arcs + * up to specified (arc_slots) elements. + * + * EXAMPLE: + * void print_arcs(OBJECT_IDENTIFIER_t *oid) { + * asn_oid_arc_t fixed_arcs[10]; // Try with fixed space first + * asn_oid_arc_t *arcs = fixed_arcs; + * size_t arc_slots = sizeof(fixed_arcs)/sizeof(fixed_arcs[0]); // 10 + * ssize_t count; // Real number of arcs. + * int i; + * + * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); + * // If necessary, reallocate arcs array and try again. + * if(count > arc_slots) { + * arc_slots = count; + * arcs = malloc(sizeof(asn_oid_arc_t) * arc_slots); + * if(!arcs) return; + * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); + * assert(count == arc_slots); + * } + * + * // Print the contents of the arcs array. + * for(i = 0; i < count; i++) + * printf("%"PRIu32"\n", arcs[i]); + * + * // Avoid memory leak. + * if(arcs != fixed_arcs) free(arcs); + * } + * + * RETURN VALUES: + * -1/EINVAL: Invalid arguments (oid is missing) + * -1/ERANGE: One or more arcs have value out of array cell type range. + * >=0: Number of arcs contained in the OBJECT IDENTIFIER + * + * WARNING: The function always returns the actual number of arcs, + * even if there is no sufficient (arc_slots) provided. + */ +ssize_t OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *oid, + asn_oid_arc_t *arcs, size_t arc_slots); + +/* + * This functions initializes the OBJECT IDENTIFIER object with + * the given set of arcs. + * The minimum of two arcs must be present; some restrictions apply. + * RETURN VALUES: + * -1/EINVAL: Invalid arguments + * -1/ERANGE: The first two arcs do not conform to ASN.1 restrictions. + * -1/ENOMEM: Memory allocation failed + * 0: The object was initialized with new arcs. + */ +int OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, + const asn_oid_arc_t *arcs, size_t arcs_count); + + +/* + * Parse the OBJECT IDENTIFIER textual representation ("1.3.6.1.4.1.9363"). + * No arc can exceed the (0..ASN_OID_ARC_MAX, which is the same as UINT32_MAX). + * This function is not specific to OBJECT IDENTIFIER, it may be used to parse + * the RELATIVE-OID data, or any other data consisting of dot-separated + * series of numeric values. + * + * If (oid_txt_length == -1), the strlen() will be invoked to determine the + * size of the (oid_text) string. + * + * After return, the optional (opt_oid_text_end) is set to the character after + * the last parsed one. (opt_oid_text_end) is never less than (oid_text). + * + * RETURN VALUES: + * -1: Parse error. + * >= 0: Number of arcs contained in the OBJECT IDENTIFIER. + * + * WARNING: The function always returns the real number of arcs, + * even if there is no sufficient (arc_slots) provided. + * This is useful for (arc_slots) value estimation. + */ +ssize_t OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, + ssize_t oid_txt_length, + asn_oid_arc_t *arcs, size_t arcs_count, + const char **opt_oid_text_end); + +/* + * Internal functions. + * Used by RELATIVE-OID implementation in particular. + */ + +/* + * Retrieve a single arc of size from the (arcbuf) buffer. + * RETURN VALUES: + * -1: Failed to retrieve the value from the (arcbuf). + * >0: Number of bytes consumed from the (arcbuf), <= (arcbuf_len). + */ +ssize_t OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, + size_t arcbuf_len, + asn_oid_arc_t *ret_value); + +/* + * Write the unterminated arc value into the (arcbuf) which has the size at + * least (arcbuf_len). + * RETURN VALUES: + * -1: (arcbuf_len) size is not sufficient to write the value. + * : Number of bytes appended to the arcbuf (<= arcbuf_len). + */ +ssize_t OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t arc_value); + +#ifdef __cplusplus +} +#endif + +#endif /* _OBJECT_IDENTIFIER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OCTET_STRING.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OCTET_STRING.h new file mode 100644 index 000000000..b1ace1409 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OCTET_STRING.h @@ -0,0 +1,165 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OCTET_STRING_H_ +#define _OCTET_STRING_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct OCTET_STRING { + uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ + size_t size; /* Size of the buffer */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} OCTET_STRING_t; + +extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; +extern asn_TYPE_operation_t asn_OP_OCTET_STRING; + +asn_struct_free_f OCTET_STRING_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f OCTET_STRING_print; +asn_struct_print_f OCTET_STRING_print_utf8; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f OCTET_STRING_compare; + +#define OCTET_STRING_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f OCTET_STRING_decode_ber; +der_type_encoder_f OCTET_STRING_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ +xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ +xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ +xer_type_encoder_f OCTET_STRING_encode_xer; +xer_type_encoder_f OCTET_STRING_encode_xer_utf8; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f OCTET_STRING_encode_jer; +jer_type_encoder_f OCTET_STRING_encode_jer_utf8; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f OCTET_STRING_decode_oer; +oer_type_encoder_f OCTET_STRING_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f OCTET_STRING_decode_uper; +per_type_encoder_f OCTET_STRING_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f OCTET_STRING_decode_aper; +per_type_encoder_f OCTET_STRING_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f OCTET_STRING_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int OCTET_STRING_per_get_characters( + asn_per_data_t *po, + uint8_t *buf, + size_t units, + unsigned int bpc, + unsigned int unit_bits, + long lb, + long ub, + const asn_per_constraints_t *pc); + +int OCTET_STRING_per_put_characters( + asn_per_outp_t *po, + const uint8_t *buf, + size_t units, + unsigned int bpc, + unsigned int unit_bits, + long lb, + long ub, + const asn_per_constraints_t *pc); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +/****************************** + * Handy conversion routines. * + ******************************/ + +/* + * This function clears the previous value of the OCTET STRING (if any) + * and then allocates a new memory with the specified content (str/size). + * If size = -1, the size of the original string will be determined + * using strlen(str). + * If str equals to NULL, the function will silently clear the + * current contents of the OCTET STRING. + * Returns 0 if it was possible to perform operation, -1 otherwise. + */ +int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); + +/* Handy conversion from the C string into the OCTET STRING. */ +#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) + +/* + * Allocate and fill the new OCTET STRING and return a pointer to the newly + * allocated object. NULL is permitted in str: the function will just allocate + * empty OCTET STRING. + */ +OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, + const char *str, int size); + +/**************************** + * Internally useful stuff. * + ****************************/ + +typedef struct asn_OCTET_STRING_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the structure */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + enum asn_OS_Subvariant { + ASN_OSUBV_ANY, /* The open type (ANY) */ + ASN_OSUBV_BIT, /* BIT STRING */ + ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ + ASN_OSUBV_U16, /* 16-bit character (BMPString) */ + ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ + } subvariant; +} asn_OCTET_STRING_specifics_t; + +extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; + +size_t OCTET_STRING_random_length_constrained( + const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, + size_t max_length); + +#if !defined(ASN_DISABLE_BER_SUPPORT) +struct _stack_el { + ber_tlv_len_t left; /* What's left to read (or -1) */ + ber_tlv_len_t got; /* What was actually processed */ + unsigned cont_level; /* Depth of subcontainment */ + int want_nulls; /* Want null "end of content" octets? */ + int bits_chopped; /* Flag in BIT STRING mode */ + ber_tlv_tag_t tag; /* For debugging purposes */ + struct _stack_el *prev; + struct _stack_el *next; +}; +struct _stack { + struct _stack_el *tail; + struct _stack_el *cur_ptr; +}; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _OCTET_STRING_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OPEN_TYPE.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OPEN_TYPE.h new file mode 100644 index 000000000..5e979773e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OPEN_TYPE.h @@ -0,0 +1,117 @@ +/*- + * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_OPEN_TYPE_H +#define ASN_OPEN_TYPE_H + +#include +///////////#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Decode an Open Type which is potentially constraiend + * by the other members of the parent structure. + */ + +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +#define OPEN_TYPE_free CHOICE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define OPEN_TYPE_print CHOICE_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define OPEN_TYPE_compare CHOICE_compare + +#define OPEN_TYPE_constraint CHOICE_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_ber_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); +#define OPEN_TYPE_decode_ber NULL +#define OPEN_TYPE_encode_der CHOICE_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_xer_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); +#define OPEN_TYPE_decode_xer NULL +#define OPEN_TYPE_encode_xer CHOICE_encode_xer +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define OPEN_TYPE_encode_jer CHOICE_encode_jer +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_oer_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + asn_TYPE_member_t *element, const void *ptr, + size_t size); +#define OPEN_TYPE_decode_oer NULL +#define OPEN_TYPE_encode_oer CHOICE_encode_oer +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_uper_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + asn_per_data_t *pd); +#define OPEN_TYPE_decode_uper NULL +asn_enc_rval_t OPEN_TYPE_encode_uper( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_aper_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + asn_per_data_t *pd); +#define OPEN_TYPE_decode_aper NULL +asn_enc_rval_t OPEN_TYPE_encode_aper( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +int OPEN_TYPE_aper_is_unknown_type( + const asn_TYPE_descriptor_t *td, + void *sptr, + const asn_TYPE_member_t *elm); + +asn_dec_rval_t OPEN_TYPE_aper_unknown_type_discard_bytes( + asn_per_data_t *pd); +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_OPEN_TYPE_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ObjectCount.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ObjectCount.h new file mode 100644 index 000000000..ca03080ea --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ObjectCount.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NMEAcorrections" + * found in "J2735-NMEAcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ObjectCount_H_ +#define _ObjectCount_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ObjectCount */ +typedef long ObjectCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ObjectCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ObjectCount; +asn_struct_free_f ObjectCount_free; +asn_struct_print_f ObjectCount_print; +asn_constr_check_f ObjectCount_constraint; +ber_type_decoder_f ObjectCount_decode_ber; +der_type_encoder_f ObjectCount_encode_der; +xer_type_decoder_f ObjectCount_decode_xer; +xer_type_encoder_f ObjectCount_encode_xer; +jer_type_encoder_f ObjectCount_encode_jer; +oer_type_decoder_f ObjectCount_decode_oer; +oer_type_encoder_f ObjectCount_encode_oer; +per_type_decoder_f ObjectCount_decode_uper; +per_type_encoder_f ObjectCount_encode_uper; +per_type_decoder_f ObjectCount_decode_aper; +per_type_encoder_f ObjectCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectCount_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ObjectDescriptor.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ObjectDescriptor.h new file mode 100644 index 000000000..852c45d03 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ObjectDescriptor.h @@ -0,0 +1,54 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _ObjectDescriptor_H_ +#define _ObjectDescriptor_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef GraphicString_t ObjectDescriptor_t; /* Implemented via GraphicString */ + +extern asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor; +extern asn_TYPE_operation_t asn_OP_ObjectDescriptor; + +#define ObjectDescriptor_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define ObjectDescriptor_print OCTET_STRING_print_utf8 +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define ObjectDescriptor_constraint asn_generic_unknown_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define ObjectDescriptor_decode_ber OCTET_STRING_decode_ber +#define ObjectDescriptor_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define ObjectDescriptor_decode_xer OCTET_STRING_decode_xer_utf8 +#define ObjectDescriptor_encode_xer OCTET_STRING_encode_xer_utf8 +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define ObjectDescriptor_encode_jer OCTET_STRING_encode_jer_utf8 +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define ObjectDescriptor_decode_uper OCTET_STRING_decode_uper +#define ObjectDescriptor_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define ObjectDescriptor_decode_aper OCTET_STRING_decode_aper +#define ObjectDescriptor_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectDescriptor_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDetection.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDetection.h new file mode 100644 index 000000000..c1f82ec7e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDetection.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ObstacleDetection_H_ +#define _ObstacleDetection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ObstacleDistance.h" +#include "ObstacleDirection.h" +#include "ITIScodes.h" +#include "GenericLocations.h" +#include "DDateTime.h" +#include "VerticalAccelerationThreshold.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ObstacleDetection */ +typedef struct ObstacleDetection { + ObstacleDistance_t obDist; + ObstacleDirection_t obDirect; + ITIScodes_t *description; /* OPTIONAL */ + GenericLocations_t *locationDetails; /* OPTIONAL */ + DDateTime_t dateTime; + VerticalAccelerationThreshold_t *vertEvent; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ObstacleDetection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ObstacleDetection; +extern asn_SEQUENCE_specifics_t asn_SPC_ObstacleDetection_specs_1; +extern asn_TYPE_member_t asn_MBR_ObstacleDetection_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObstacleDetection_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDirection.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDirection.h new file mode 100644 index 000000000..607fd2f8a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDirection.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ObstacleDirection_H_ +#define _ObstacleDirection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Common_Angle.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ObstacleDirection */ +typedef Common_Angle_t ObstacleDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ObstacleDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ObstacleDirection; +asn_struct_free_f ObstacleDirection_free; +asn_struct_print_f ObstacleDirection_print; +asn_constr_check_f ObstacleDirection_constraint; +ber_type_decoder_f ObstacleDirection_decode_ber; +der_type_encoder_f ObstacleDirection_encode_der; +xer_type_decoder_f ObstacleDirection_decode_xer; +xer_type_encoder_f ObstacleDirection_encode_xer; +jer_type_encoder_f ObstacleDirection_encode_jer; +oer_type_decoder_f ObstacleDirection_decode_oer; +oer_type_encoder_f ObstacleDirection_encode_oer; +per_type_decoder_f ObstacleDirection_decode_uper; +per_type_encoder_f ObstacleDirection_encode_uper; +per_type_decoder_f ObstacleDirection_decode_aper; +per_type_encoder_f ObstacleDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObstacleDirection_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDistance.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDistance.h new file mode 100644 index 000000000..64a7727a4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ObstacleDistance.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ObstacleDistance_H_ +#define _ObstacleDistance_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ObstacleDistance */ +typedef long ObstacleDistance_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ObstacleDistance_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ObstacleDistance; +asn_struct_free_f ObstacleDistance_free; +asn_struct_print_f ObstacleDistance_print; +asn_constr_check_f ObstacleDistance_constraint; +ber_type_decoder_f ObstacleDistance_decode_ber; +der_type_encoder_f ObstacleDistance_encode_der; +xer_type_decoder_f ObstacleDistance_decode_xer; +xer_type_encoder_f ObstacleDistance_encode_xer; +jer_type_encoder_f ObstacleDistance_encode_jer; +oer_type_decoder_f ObstacleDistance_decode_oer; +oer_type_encoder_f ObstacleDistance_encode_oer; +per_type_decoder_f ObstacleDistance_decode_uper; +per_type_encoder_f ObstacleDistance_encode_uper; +per_type_decoder_f ObstacleDistance_decode_aper; +per_type_encoder_f ObstacleDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ObstacleDistance_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B09.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B09.h new file mode 100644 index 000000000..a2a931cb8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B09.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Offset_B09_H_ +#define _Offset_B09_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B09 */ +typedef long Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B09; +asn_struct_free_f Offset_B09_free; +asn_struct_print_f Offset_B09_print; +asn_constr_check_f Offset_B09_constraint; +ber_type_decoder_f Offset_B09_decode_ber; +der_type_encoder_f Offset_B09_encode_der; +xer_type_decoder_f Offset_B09_decode_xer; +xer_type_encoder_f Offset_B09_encode_xer; +jer_type_encoder_f Offset_B09_encode_jer; +oer_type_decoder_f Offset_B09_decode_oer; +oer_type_encoder_f Offset_B09_encode_oer; +per_type_decoder_f Offset_B09_decode_uper; +per_type_encoder_f Offset_B09_encode_uper; +per_type_decoder_f Offset_B09_decode_aper; +per_type_encoder_f Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B09_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B10.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B10.h new file mode 100644 index 000000000..41c195daf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B10.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Offset_B10_H_ +#define _Offset_B10_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B10 */ +typedef long Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B10; +asn_struct_free_f Offset_B10_free; +asn_struct_print_f Offset_B10_print; +asn_constr_check_f Offset_B10_constraint; +ber_type_decoder_f Offset_B10_decode_ber; +der_type_encoder_f Offset_B10_encode_der; +xer_type_decoder_f Offset_B10_decode_xer; +xer_type_encoder_f Offset_B10_encode_xer; +jer_type_encoder_f Offset_B10_encode_jer; +oer_type_decoder_f Offset_B10_decode_oer; +oer_type_encoder_f Offset_B10_encode_oer; +per_type_decoder_f Offset_B10_decode_uper; +per_type_encoder_f Offset_B10_encode_uper; +per_type_decoder_f Offset_B10_decode_aper; +per_type_encoder_f Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B10_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B11.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B11.h new file mode 100644 index 000000000..d848a87d2 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B11.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Offset_B11_H_ +#define _Offset_B11_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B11 */ +typedef long Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B11; +asn_struct_free_f Offset_B11_free; +asn_struct_print_f Offset_B11_print; +asn_constr_check_f Offset_B11_constraint; +ber_type_decoder_f Offset_B11_decode_ber; +der_type_encoder_f Offset_B11_encode_der; +xer_type_decoder_f Offset_B11_decode_xer; +xer_type_encoder_f Offset_B11_encode_xer; +jer_type_encoder_f Offset_B11_encode_jer; +oer_type_decoder_f Offset_B11_decode_oer; +oer_type_encoder_f Offset_B11_encode_oer; +per_type_decoder_f Offset_B11_decode_uper; +per_type_encoder_f Offset_B11_encode_uper; +per_type_decoder_f Offset_B11_decode_aper; +per_type_encoder_f Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B11_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B12.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B12.h new file mode 100644 index 000000000..7452b84d6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B12.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Offset_B12_H_ +#define _Offset_B12_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B12 */ +typedef long Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B12; +asn_struct_free_f Offset_B12_free; +asn_struct_print_f Offset_B12_print; +asn_constr_check_f Offset_B12_constraint; +ber_type_decoder_f Offset_B12_decode_ber; +der_type_encoder_f Offset_B12_encode_der; +xer_type_decoder_f Offset_B12_decode_xer; +xer_type_encoder_f Offset_B12_encode_xer; +jer_type_encoder_f Offset_B12_encode_jer; +oer_type_decoder_f Offset_B12_decode_oer; +oer_type_encoder_f Offset_B12_encode_oer; +per_type_decoder_f Offset_B12_decode_uper; +per_type_encoder_f Offset_B12_encode_uper; +per_type_decoder_f Offset_B12_decode_aper; +per_type_encoder_f Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B12_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B13.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B13.h new file mode 100644 index 000000000..aea3d4dc7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B13.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Offset_B13_H_ +#define _Offset_B13_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B13 */ +typedef long Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B13; +asn_struct_free_f Offset_B13_free; +asn_struct_print_f Offset_B13_print; +asn_constr_check_f Offset_B13_constraint; +ber_type_decoder_f Offset_B13_decode_ber; +der_type_encoder_f Offset_B13_encode_der; +xer_type_decoder_f Offset_B13_decode_xer; +xer_type_encoder_f Offset_B13_encode_xer; +jer_type_encoder_f Offset_B13_encode_jer; +oer_type_decoder_f Offset_B13_decode_oer; +oer_type_encoder_f Offset_B13_encode_oer; +per_type_decoder_f Offset_B13_decode_uper; +per_type_encoder_f Offset_B13_encode_uper; +per_type_decoder_f Offset_B13_decode_aper; +per_type_encoder_f Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B13_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B14.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B14.h new file mode 100644 index 000000000..4374add10 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B14.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Offset_B14_H_ +#define _Offset_B14_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B14 */ +typedef long Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B14; +asn_struct_free_f Offset_B14_free; +asn_struct_print_f Offset_B14_print; +asn_constr_check_f Offset_B14_constraint; +ber_type_decoder_f Offset_B14_decode_ber; +der_type_encoder_f Offset_B14_encode_der; +xer_type_decoder_f Offset_B14_decode_xer; +xer_type_encoder_f Offset_B14_encode_xer; +jer_type_encoder_f Offset_B14_encode_jer; +oer_type_decoder_f Offset_B14_decode_oer; +oer_type_encoder_f Offset_B14_encode_oer; +per_type_decoder_f Offset_B14_decode_uper; +per_type_encoder_f Offset_B14_encode_uper; +per_type_decoder_f Offset_B14_decode_aper; +per_type_encoder_f Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B14_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B16.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B16.h new file mode 100644 index 000000000..e5b490ae3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Offset-B16.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Offset_B16_H_ +#define _Offset_B16_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Offset-B16 */ +typedef long Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Offset_B16; +asn_struct_free_f Offset_B16_free; +asn_struct_print_f Offset_B16_print; +asn_constr_check_f Offset_B16_constraint; +ber_type_decoder_f Offset_B16_decode_ber; +der_type_encoder_f Offset_B16_encode_der; +xer_type_decoder_f Offset_B16_decode_xer; +xer_type_encoder_f Offset_B16_encode_xer; +jer_type_encoder_f Offset_B16_encode_jer; +oer_type_decoder_f Offset_B16_decode_oer; +oer_type_encoder_f Offset_B16_encode_oer; +per_type_decoder_f Offset_B16_decode_uper; +per_type_encoder_f Offset_B16_encode_uper; +per_type_decoder_f Offset_B16_decode_aper; +per_type_encoder_f Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Offset_B16_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B12.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B12.h new file mode 100644 index 000000000..c556ad938 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B12.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _OffsetLL_B12_H_ +#define _OffsetLL_B12_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* OffsetLL-B12 */ +typedef long OffsetLL_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_OffsetLL_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_OffsetLL_B12; +asn_struct_free_f OffsetLL_B12_free; +asn_struct_print_f OffsetLL_B12_print; +asn_constr_check_f OffsetLL_B12_constraint; +ber_type_decoder_f OffsetLL_B12_decode_ber; +der_type_encoder_f OffsetLL_B12_encode_der; +xer_type_decoder_f OffsetLL_B12_decode_xer; +xer_type_encoder_f OffsetLL_B12_encode_xer; +jer_type_encoder_f OffsetLL_B12_encode_jer; +oer_type_decoder_f OffsetLL_B12_decode_oer; +oer_type_encoder_f OffsetLL_B12_encode_oer; +per_type_decoder_f OffsetLL_B12_decode_uper; +per_type_encoder_f OffsetLL_B12_encode_uper; +per_type_decoder_f OffsetLL_B12_decode_aper; +per_type_encoder_f OffsetLL_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OffsetLL_B12_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B14.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B14.h new file mode 100644 index 000000000..a3b4d197f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B14.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _OffsetLL_B14_H_ +#define _OffsetLL_B14_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* OffsetLL-B14 */ +typedef long OffsetLL_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_OffsetLL_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_OffsetLL_B14; +asn_struct_free_f OffsetLL_B14_free; +asn_struct_print_f OffsetLL_B14_print; +asn_constr_check_f OffsetLL_B14_constraint; +ber_type_decoder_f OffsetLL_B14_decode_ber; +der_type_encoder_f OffsetLL_B14_encode_der; +xer_type_decoder_f OffsetLL_B14_decode_xer; +xer_type_encoder_f OffsetLL_B14_encode_xer; +jer_type_encoder_f OffsetLL_B14_encode_jer; +oer_type_decoder_f OffsetLL_B14_decode_oer; +oer_type_encoder_f OffsetLL_B14_encode_oer; +per_type_decoder_f OffsetLL_B14_decode_uper; +per_type_encoder_f OffsetLL_B14_encode_uper; +per_type_decoder_f OffsetLL_B14_decode_aper; +per_type_encoder_f OffsetLL_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OffsetLL_B14_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B16.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B16.h new file mode 100644 index 000000000..5204b288a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B16.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _OffsetLL_B16_H_ +#define _OffsetLL_B16_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* OffsetLL-B16 */ +typedef long OffsetLL_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_OffsetLL_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_OffsetLL_B16; +asn_struct_free_f OffsetLL_B16_free; +asn_struct_print_f OffsetLL_B16_print; +asn_constr_check_f OffsetLL_B16_constraint; +ber_type_decoder_f OffsetLL_B16_decode_ber; +der_type_encoder_f OffsetLL_B16_encode_der; +xer_type_decoder_f OffsetLL_B16_decode_xer; +xer_type_encoder_f OffsetLL_B16_encode_xer; +jer_type_encoder_f OffsetLL_B16_encode_jer; +oer_type_decoder_f OffsetLL_B16_decode_oer; +oer_type_encoder_f OffsetLL_B16_encode_oer; +per_type_decoder_f OffsetLL_B16_decode_uper; +per_type_encoder_f OffsetLL_B16_encode_uper; +per_type_decoder_f OffsetLL_B16_decode_aper; +per_type_encoder_f OffsetLL_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OffsetLL_B16_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B18.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B18.h new file mode 100644 index 000000000..f973847ce --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B18.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _OffsetLL_B18_H_ +#define _OffsetLL_B18_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* OffsetLL-B18 */ +typedef long OffsetLL_B18_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_OffsetLL_B18_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_OffsetLL_B18; +asn_struct_free_f OffsetLL_B18_free; +asn_struct_print_f OffsetLL_B18_print; +asn_constr_check_f OffsetLL_B18_constraint; +ber_type_decoder_f OffsetLL_B18_decode_ber; +der_type_encoder_f OffsetLL_B18_encode_der; +xer_type_decoder_f OffsetLL_B18_decode_xer; +xer_type_encoder_f OffsetLL_B18_encode_xer; +jer_type_encoder_f OffsetLL_B18_encode_jer; +oer_type_decoder_f OffsetLL_B18_decode_oer; +oer_type_encoder_f OffsetLL_B18_encode_oer; +per_type_decoder_f OffsetLL_B18_decode_uper; +per_type_encoder_f OffsetLL_B18_encode_uper; +per_type_decoder_f OffsetLL_B18_decode_aper; +per_type_encoder_f OffsetLL_B18_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OffsetLL_B18_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B22.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B22.h new file mode 100644 index 000000000..aca729929 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B22.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _OffsetLL_B22_H_ +#define _OffsetLL_B22_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* OffsetLL-B22 */ +typedef long OffsetLL_B22_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_OffsetLL_B22_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_OffsetLL_B22; +asn_struct_free_f OffsetLL_B22_free; +asn_struct_print_f OffsetLL_B22_print; +asn_constr_check_f OffsetLL_B22_constraint; +ber_type_decoder_f OffsetLL_B22_decode_ber; +der_type_encoder_f OffsetLL_B22_encode_der; +xer_type_decoder_f OffsetLL_B22_decode_xer; +xer_type_encoder_f OffsetLL_B22_encode_xer; +jer_type_encoder_f OffsetLL_B22_encode_jer; +oer_type_decoder_f OffsetLL_B22_decode_oer; +oer_type_encoder_f OffsetLL_B22_encode_oer; +per_type_decoder_f OffsetLL_B22_decode_uper; +per_type_encoder_f OffsetLL_B22_encode_uper; +per_type_decoder_f OffsetLL_B22_decode_aper; +per_type_encoder_f OffsetLL_B22_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OffsetLL_B22_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B24.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B24.h new file mode 100644 index 000000000..486fbc757 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetLL-B24.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _OffsetLL_B24_H_ +#define _OffsetLL_B24_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* OffsetLL-B24 */ +typedef long OffsetLL_B24_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_OffsetLL_B24_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_OffsetLL_B24; +asn_struct_free_f OffsetLL_B24_free; +asn_struct_print_f OffsetLL_B24_print; +asn_constr_check_f OffsetLL_B24_constraint; +ber_type_decoder_f OffsetLL_B24_decode_ber; +der_type_encoder_f OffsetLL_B24_encode_der; +xer_type_decoder_f OffsetLL_B24_decode_xer; +xer_type_encoder_f OffsetLL_B24_encode_xer; +jer_type_encoder_f OffsetLL_B24_encode_jer; +oer_type_decoder_f OffsetLL_B24_decode_oer; +oer_type_encoder_f OffsetLL_B24_encode_oer; +per_type_decoder_f OffsetLL_B24_decode_uper; +per_type_encoder_f OffsetLL_B24_encode_uper; +per_type_decoder_f OffsetLL_B24_decode_aper; +per_type_encoder_f OffsetLL_B24_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OffsetLL_B24_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetSystem.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetSystem.h new file mode 100644 index 000000000..b1bcc6b86 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OffsetSystem.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _OffsetSystem_H_ +#define _OffsetSystem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Zoom.h" +#include "NodeListXY.h" +#include "NodeListLL.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum OffsetSystem__offset_PR { + OffsetSystem__offset_PR_NOTHING, /* No components present */ + OffsetSystem__offset_PR_xy, + OffsetSystem__offset_PR_ll +} OffsetSystem__offset_PR; + +/* OffsetSystem */ +typedef struct OffsetSystem { + Zoom_t *scale; /* OPTIONAL */ + struct OffsetSystem__offset { + OffsetSystem__offset_PR present; + union OffsetSystem__offset_u { + NodeListXY_t xy; + NodeListLL_t ll; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offset; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OffsetSystem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OffsetSystem; +extern asn_SEQUENCE_specifics_t asn_SPC_OffsetSystem_specs_1; +extern asn_TYPE_member_t asn_MBR_OffsetSystem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _OffsetSystem_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/OverlayLaneList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/OverlayLaneList.h new file mode 100644 index 000000000..b03fc5ccb --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/OverlayLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _OverlayLaneList_H_ +#define _OverlayLaneList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LaneID.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* OverlayLaneList */ +typedef struct OverlayLaneList { + A_SEQUENCE_OF(LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _OverlayLaneList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PartII-Id.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PartII-Id.h new file mode 100644 index 000000000..ebbe64ea4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PartII-Id.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PartII_Id_H_ +#define _PartII_Id_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PartII-Id */ +typedef long PartII_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PartII_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PartII_Id; +asn_struct_free_f PartII_Id_free; +asn_struct_print_f PartII_Id_print; +asn_constr_check_f PartII_Id_constraint; +ber_type_decoder_f PartII_Id_decode_ber; +der_type_encoder_f PartII_Id_encode_der; +xer_type_decoder_f PartII_Id_decode_xer; +xer_type_encoder_f PartII_Id_encode_xer; +jer_type_encoder_f PartII_Id_encode_jer; +oer_type_decoder_f PartII_Id_decode_oer; +oer_type_encoder_f PartII_Id_encode_oer; +per_type_decoder_f PartII_Id_decode_uper; +per_type_encoder_f PartII_Id_encode_uper; +per_type_decoder_f PartII_Id_decode_aper; +per_type_encoder_f PartII_Id_encode_aper; +#define PartII_Id_vehicleSafetyExt ((PartII_Id_t)0) +#define PartII_Id_specialVehicleExt ((PartII_Id_t)1) +#define PartII_Id_supplementalVehicleExt ((PartII_Id_t)2) + +#ifdef __cplusplus +} +#endif + +#endif /* _PartII_Id_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PartIIcontent.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PartIIcontent.h new file mode 100644 index 000000000..40ede0c9b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PartIIcontent.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PartIIcontent_H_ +#define _PartIIcontent_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PartII-Id.h" +#include "ANY.h" +#include "asn_ioc.h" +#include "VehicleSafetyExtensions.h" +#include "SpecialVehicleExtensions.h" +#include "SupplementalVehicleExtensions.h" +#include "OPEN_TYPE.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BSMpartIIExtension__partII_Value_PR { + BSMpartIIExtension__partII_Value_PR_NOTHING, /* No components present */ + BSMpartIIExtension__partII_Value_PR_VehicleSafetyExtensions, + BSMpartIIExtension__partII_Value_PR_SpecialVehicleExtensions, + BSMpartIIExtension__partII_Value_PR_SupplementalVehicleExtensions +} BSMpartIIExtension__partII_Value_PR; + +/* PartIIcontent */ +typedef struct BSMpartIIExtension { + PartII_Id_t partII_Id; + struct BSMpartIIExtension__partII_Value { + BSMpartIIExtension__partII_Value_PR present; + union BSMpartIIExtension__partII_Value_u { + VehicleSafetyExtensions_t VehicleSafetyExtensions; + SpecialVehicleExtensions_t SpecialVehicleExtensions; + SupplementalVehicleExtensions_t SupplementalVehicleExtensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } partII_Value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BSMpartIIExtension_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BSMpartIIExtension; +extern asn_SEQUENCE_specifics_t asn_SPC_BSMpartIIExtension_specs_1; +extern asn_TYPE_member_t asn_MBR_BSMpartIIExtension_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PartIIcontent_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistory.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistory.h new file mode 100644 index 000000000..074a39b8f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistory.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PathHistory_H_ +#define _PathHistory_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GNSSstatus.h" +#include "PathHistoryPointList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FullPositionVector; + +/* PathHistory */ +typedef struct PathHistory { + struct FullPositionVector *initialPosition; /* OPTIONAL */ + GNSSstatus_t *currGNSSstatus; /* OPTIONAL */ + PathHistoryPointList_t crumbData; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistory; +extern asn_SEQUENCE_specifics_t asn_SPC_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistory_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistory_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistoryPoint.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistoryPoint.h new file mode 100644 index 000000000..7d2fa7fad --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistoryPoint.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PathHistoryPoint_H_ +#define _PathHistoryPoint_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OffsetLL-B18.h" +#include "VertOffset-B12.h" +#include "TimeOffset.h" +#include "Speed.h" +#include "CoarseHeading.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PositionalAccuracy; + +/* PathHistoryPoint */ +typedef struct PathHistoryPoint { + OffsetLL_B18_t latOffset; + OffsetLL_B18_t lonOffset; + VertOffset_B12_t elevationOffset; + TimeOffset_t timeOffset; + Speed_t *speed; /* OPTIONAL */ + struct PositionalAccuracy *posAccuracy; /* OPTIONAL */ + CoarseHeading_t *heading; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistoryPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistoryPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_PathHistoryPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistoryPoint_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistoryPoint_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistoryPointList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistoryPointList.h new file mode 100644 index 000000000..f389a5c4c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PathHistoryPointList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PathHistoryPointList_H_ +#define _PathHistoryPointList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistoryPoint; + +/* PathHistoryPointList */ +typedef struct PathHistoryPointList { + A_SEQUENCE_OF(struct PathHistoryPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathHistoryPointList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathHistoryPointList; +extern asn_SET_OF_specifics_t asn_SPC_PathHistoryPointList_specs_1; +extern asn_TYPE_member_t asn_MBR_PathHistoryPointList_1[1]; +extern asn_per_constraints_t asn_PER_type_PathHistoryPointList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathHistoryPointList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PathPrediction.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PathPrediction.h new file mode 100644 index 000000000..e427042c1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PathPrediction.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PathPrediction_H_ +#define _PathPrediction_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RadiusOfCurvature.h" +#include "Confidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PathPrediction */ +typedef struct PathPrediction { + RadiusOfCurvature_t radiusOfCurve; + Confidence_t confidence; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PathPrediction_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PathPrediction; +extern asn_SEQUENCE_specifics_t asn_SPC_PathPrediction_specs_1; +extern asn_TYPE_member_t asn_MBR_PathPrediction_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PathPrediction_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PayloadData.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PayloadData.h new file mode 100644 index 000000000..d4ae0f597 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PayloadData.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PayloadData_H_ +#define _PayloadData_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PayloadData */ +typedef OCTET_STRING_t PayloadData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PayloadData; +asn_struct_free_f PayloadData_free; +asn_struct_print_f PayloadData_print; +asn_constr_check_f PayloadData_constraint; +ber_type_decoder_f PayloadData_decode_ber; +der_type_encoder_f PayloadData_encode_der; +xer_type_decoder_f PayloadData_decode_xer; +xer_type_encoder_f PayloadData_encode_xer; +jer_type_encoder_f PayloadData_encode_jer; +oer_type_decoder_f PayloadData_decode_oer; +oer_type_encoder_f PayloadData_encode_oer; +per_type_decoder_f PayloadData_decode_uper; +per_type_encoder_f PayloadData_encode_uper; +per_type_decoder_f PayloadData_decode_aper; +per_type_encoder_f PayloadData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PayloadData_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PedestrianBicycleDetect.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PedestrianBicycleDetect.h new file mode 100644 index 000000000..29c1f0104 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PedestrianBicycleDetect.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PedestrianBicycleDetect_H_ +#define _PedestrianBicycleDetect_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BOOLEAN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PedestrianBicycleDetect */ +typedef BOOLEAN_t PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect; +asn_struct_free_f PedestrianBicycleDetect_free; +asn_struct_print_f PedestrianBicycleDetect_print; +asn_constr_check_f PedestrianBicycleDetect_constraint; +ber_type_decoder_f PedestrianBicycleDetect_decode_ber; +der_type_encoder_f PedestrianBicycleDetect_encode_der; +xer_type_decoder_f PedestrianBicycleDetect_decode_xer; +xer_type_encoder_f PedestrianBicycleDetect_encode_xer; +jer_type_encoder_f PedestrianBicycleDetect_encode_jer; +oer_type_decoder_f PedestrianBicycleDetect_decode_oer; +oer_type_encoder_f PedestrianBicycleDetect_encode_oer; +per_type_decoder_f PedestrianBicycleDetect_decode_uper; +per_type_encoder_f PedestrianBicycleDetect_encode_uper; +per_type_decoder_f PedestrianBicycleDetect_decode_aper; +per_type_encoder_f PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PedestrianBicycleDetect_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalAssistive.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalAssistive.h new file mode 100644 index 000000000..5946fba2a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalAssistive.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PersonalAssistive_H_ +#define _PersonalAssistive_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PersonalAssistive { + PersonalAssistive_unavailable = 0, + PersonalAssistive_otherType = 1, + PersonalAssistive_vision = 2, + PersonalAssistive_hearing = 3, + PersonalAssistive_movement = 4, + PersonalAssistive_cognition = 5 +} e_PersonalAssistive; + +/* PersonalAssistive */ +typedef BIT_STRING_t PersonalAssistive_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PersonalAssistive_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PersonalAssistive; +asn_struct_free_f PersonalAssistive_free; +asn_struct_print_f PersonalAssistive_print; +asn_constr_check_f PersonalAssistive_constraint; +ber_type_decoder_f PersonalAssistive_decode_ber; +der_type_encoder_f PersonalAssistive_encode_der; +xer_type_decoder_f PersonalAssistive_decode_xer; +xer_type_encoder_f PersonalAssistive_encode_xer; +jer_type_encoder_f PersonalAssistive_encode_jer; +oer_type_decoder_f PersonalAssistive_decode_oer; +oer_type_encoder_f PersonalAssistive_encode_oer; +per_type_decoder_f PersonalAssistive_decode_uper; +per_type_encoder_f PersonalAssistive_encode_uper; +per_type_decoder_f PersonalAssistive_decode_aper; +per_type_encoder_f PersonalAssistive_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PersonalAssistive_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalClusterRadius.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalClusterRadius.h new file mode 100644 index 000000000..f0ea600bc --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalClusterRadius.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PersonalClusterRadius_H_ +#define _PersonalClusterRadius_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PersonalClusterRadius */ +typedef long PersonalClusterRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PersonalClusterRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PersonalClusterRadius; +asn_struct_free_f PersonalClusterRadius_free; +asn_struct_print_f PersonalClusterRadius_print; +asn_constr_check_f PersonalClusterRadius_constraint; +ber_type_decoder_f PersonalClusterRadius_decode_ber; +der_type_encoder_f PersonalClusterRadius_encode_der; +xer_type_decoder_f PersonalClusterRadius_decode_xer; +xer_type_encoder_f PersonalClusterRadius_encode_xer; +jer_type_encoder_f PersonalClusterRadius_encode_jer; +oer_type_decoder_f PersonalClusterRadius_decode_oer; +oer_type_encoder_f PersonalClusterRadius_encode_oer; +per_type_decoder_f PersonalClusterRadius_decode_uper; +per_type_encoder_f PersonalClusterRadius_encode_uper; +per_type_decoder_f PersonalClusterRadius_decode_aper; +per_type_encoder_f PersonalClusterRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PersonalClusterRadius_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalCrossingInProgress.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalCrossingInProgress.h new file mode 100644 index 000000000..50196af7b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalCrossingInProgress.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PersonalCrossingInProgress_H_ +#define _PersonalCrossingInProgress_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BOOLEAN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PersonalCrossingInProgress */ +typedef BOOLEAN_t PersonalCrossingInProgress_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PersonalCrossingInProgress; +asn_struct_free_f PersonalCrossingInProgress_free; +asn_struct_print_f PersonalCrossingInProgress_print; +asn_constr_check_f PersonalCrossingInProgress_constraint; +ber_type_decoder_f PersonalCrossingInProgress_decode_ber; +der_type_encoder_f PersonalCrossingInProgress_encode_der; +xer_type_decoder_f PersonalCrossingInProgress_decode_xer; +xer_type_encoder_f PersonalCrossingInProgress_encode_xer; +jer_type_encoder_f PersonalCrossingInProgress_encode_jer; +oer_type_decoder_f PersonalCrossingInProgress_decode_oer; +oer_type_encoder_f PersonalCrossingInProgress_encode_oer; +per_type_decoder_f PersonalCrossingInProgress_decode_uper; +per_type_encoder_f PersonalCrossingInProgress_encode_uper; +per_type_decoder_f PersonalCrossingInProgress_decode_aper; +per_type_encoder_f PersonalCrossingInProgress_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PersonalCrossingInProgress_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalCrossingRequest.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalCrossingRequest.h new file mode 100644 index 000000000..15896cb2f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalCrossingRequest.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PersonalCrossingRequest_H_ +#define _PersonalCrossingRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BOOLEAN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PersonalCrossingRequest */ +typedef BOOLEAN_t PersonalCrossingRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PersonalCrossingRequest; +asn_struct_free_f PersonalCrossingRequest_free; +asn_struct_print_f PersonalCrossingRequest_print; +asn_constr_check_f PersonalCrossingRequest_constraint; +ber_type_decoder_f PersonalCrossingRequest_decode_ber; +der_type_encoder_f PersonalCrossingRequest_encode_der; +xer_type_decoder_f PersonalCrossingRequest_decode_xer; +xer_type_encoder_f PersonalCrossingRequest_encode_xer; +jer_type_encoder_f PersonalCrossingRequest_encode_jer; +oer_type_decoder_f PersonalCrossingRequest_decode_oer; +oer_type_encoder_f PersonalCrossingRequest_encode_oer; +per_type_decoder_f PersonalCrossingRequest_decode_uper; +per_type_encoder_f PersonalCrossingRequest_encode_uper; +per_type_decoder_f PersonalCrossingRequest_decode_aper; +per_type_encoder_f PersonalCrossingRequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PersonalCrossingRequest_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalDeviceUsageState.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalDeviceUsageState.h new file mode 100644 index 000000000..008f9df06 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalDeviceUsageState.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PersonalDeviceUsageState_H_ +#define _PersonalDeviceUsageState_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PersonalDeviceUsageState { + PersonalDeviceUsageState_unavailable = 0, + PersonalDeviceUsageState_other = 1, + PersonalDeviceUsageState_idle = 2, + PersonalDeviceUsageState_listeningToAudio = 3, + PersonalDeviceUsageState_typing = 4, + PersonalDeviceUsageState_calling = 5, + PersonalDeviceUsageState_playingGames = 6, + PersonalDeviceUsageState_reading = 7, + PersonalDeviceUsageState_viewing = 8 +} e_PersonalDeviceUsageState; + +/* PersonalDeviceUsageState */ +typedef BIT_STRING_t PersonalDeviceUsageState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PersonalDeviceUsageState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PersonalDeviceUsageState; +asn_struct_free_f PersonalDeviceUsageState_free; +asn_struct_print_f PersonalDeviceUsageState_print; +asn_constr_check_f PersonalDeviceUsageState_constraint; +ber_type_decoder_f PersonalDeviceUsageState_decode_ber; +der_type_encoder_f PersonalDeviceUsageState_encode_der; +xer_type_decoder_f PersonalDeviceUsageState_decode_xer; +xer_type_encoder_f PersonalDeviceUsageState_encode_xer; +jer_type_encoder_f PersonalDeviceUsageState_encode_jer; +oer_type_decoder_f PersonalDeviceUsageState_decode_oer; +oer_type_encoder_f PersonalDeviceUsageState_encode_oer; +per_type_decoder_f PersonalDeviceUsageState_decode_uper; +per_type_encoder_f PersonalDeviceUsageState_encode_uper; +per_type_decoder_f PersonalDeviceUsageState_decode_aper; +per_type_encoder_f PersonalDeviceUsageState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PersonalDeviceUsageState_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalDeviceUserType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalDeviceUserType.h new file mode 100644 index 000000000..fea4a22e6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalDeviceUserType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PersonalDeviceUserType_H_ +#define _PersonalDeviceUserType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PersonalDeviceUserType { + PersonalDeviceUserType_unavailable = 0, + PersonalDeviceUserType_aPEDESTRIAN = 1, + PersonalDeviceUserType_aPEDALCYCLIST = 2, + PersonalDeviceUserType_aPUBLICSAFETYWORKER = 3, + PersonalDeviceUserType_anANIMAL = 4 + /* + * Enumeration is extensible + */ +} e_PersonalDeviceUserType; + +/* PersonalDeviceUserType */ +typedef long PersonalDeviceUserType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PersonalDeviceUserType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PersonalDeviceUserType; +extern const asn_INTEGER_specifics_t asn_SPC_PersonalDeviceUserType_specs_1; +asn_struct_free_f PersonalDeviceUserType_free; +asn_struct_print_f PersonalDeviceUserType_print; +asn_constr_check_f PersonalDeviceUserType_constraint; +ber_type_decoder_f PersonalDeviceUserType_decode_ber; +der_type_encoder_f PersonalDeviceUserType_encode_der; +xer_type_decoder_f PersonalDeviceUserType_decode_xer; +xer_type_encoder_f PersonalDeviceUserType_encode_xer; +jer_type_encoder_f PersonalDeviceUserType_encode_jer; +oer_type_decoder_f PersonalDeviceUserType_decode_oer; +oer_type_encoder_f PersonalDeviceUserType_encode_oer; +per_type_decoder_f PersonalDeviceUserType_decode_uper; +per_type_encoder_f PersonalDeviceUserType_encode_uper; +per_type_decoder_f PersonalDeviceUserType_decode_aper; +per_type_encoder_f PersonalDeviceUserType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PersonalDeviceUserType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalSafetyMessage.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalSafetyMessage.h new file mode 100644 index 000000000..f73291d57 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PersonalSafetyMessage.h @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PersonalSafetyMessage_H_ +#define _PersonalSafetyMessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PersonalDeviceUserType.h" +#include "DSecond.h" +#include "Common_MsgCount.h" +#include "TemporaryID.h" +#include "Position3D.h" +#include "PositionalAccuracy.h" +#include "Velocity.h" +#include "Heading.h" +#include "PersonalDeviceUsageState.h" +#include "PersonalCrossingRequest.h" +#include "PersonalCrossingInProgress.h" +#include "NumberOfParticipantsInCluster.h" +#include "PersonalClusterRadius.h" +#include "PublicSafetyEventResponderWorkerType.h" +#include "PublicSafetyAndRoadWorkerActivity.h" +#include "PublicSafetyDirectingTrafficSubType.h" +#include "PersonalAssistive.h" +#include "UserSizeAndBehaviour.h" +#include "Attachment.h" +#include "AttachmentRadius.h" +#include "AnimalType.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AccelerationSet4Way; +struct PathHistory; +struct PathPrediction; +struct PropelledInformation; +struct Reg_PersonalSafetyMessage; + +/* PersonalSafetyMessage */ +typedef struct PersonalSafetyMessage { + PersonalDeviceUserType_t basicType; + DSecond_t secMark; + Common_MsgCount_t msgCnt; + TemporaryID_t id; + Position3D_t position; + PositionalAccuracy_t accuracy; + Velocity_t speed; + Heading_t heading; + struct AccelerationSet4Way *accelSet; /* OPTIONAL */ + struct PathHistory *pathHistory; /* OPTIONAL */ + struct PathPrediction *pathPrediction; /* OPTIONAL */ + struct PropelledInformation *propulsion; /* OPTIONAL */ + PersonalDeviceUsageState_t *useState; /* OPTIONAL */ + PersonalCrossingRequest_t *crossRequest; /* OPTIONAL */ + PersonalCrossingInProgress_t *crossState; /* OPTIONAL */ + NumberOfParticipantsInCluster_t *clusterSize; /* OPTIONAL */ + PersonalClusterRadius_t *clusterRadius; /* OPTIONAL */ + PublicSafetyEventResponderWorkerType_t *eventResponderType; /* OPTIONAL */ + PublicSafetyAndRoadWorkerActivity_t *activityType; /* OPTIONAL */ + PublicSafetyDirectingTrafficSubType_t *activitySubType; /* OPTIONAL */ + PersonalAssistive_t *assistType; /* OPTIONAL */ + UserSizeAndBehaviour_t *sizing; /* OPTIONAL */ + Attachment_t *attachment; /* OPTIONAL */ + AttachmentRadius_t *attachmentRadius; /* OPTIONAL */ + AnimalType_t *animalType; /* OPTIONAL */ + struct PersonalSafetyMessage__regional { + A_SEQUENCE_OF(struct Reg_PersonalSafetyMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PersonalSafetyMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PersonalSafetyMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_PersonalSafetyMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_PersonalSafetyMessage_1[26]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PersonalSafetyMessage_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PivotPointDescription.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PivotPointDescription.h new file mode 100644 index 000000000..28bc15f9e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PivotPointDescription.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PivotPointDescription_H_ +#define _PivotPointDescription_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Offset-B11.h" +#include "Common_Angle.h" +#include "PivotingAllowed.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PivotPointDescription */ +typedef struct PivotPointDescription { + Offset_B11_t pivotOffset; + Common_Angle_t pivotAngle; + PivotingAllowed_t pivots; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PivotPointDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PivotPointDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_PivotPointDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_PivotPointDescription_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PivotPointDescription_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PivotingAllowed.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PivotingAllowed.h new file mode 100644 index 000000000..59147de2d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PivotingAllowed.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PivotingAllowed_H_ +#define _PivotingAllowed_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BOOLEAN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PivotingAllowed */ +typedef BOOLEAN_t PivotingAllowed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PivotingAllowed; +asn_struct_free_f PivotingAllowed_free; +asn_struct_print_f PivotingAllowed_print; +asn_constr_check_f PivotingAllowed_constraint; +ber_type_decoder_f PivotingAllowed_decode_ber; +der_type_encoder_f PivotingAllowed_encode_der; +xer_type_decoder_f PivotingAllowed_decode_xer; +xer_type_encoder_f PivotingAllowed_encode_xer; +jer_type_encoder_f PivotingAllowed_encode_jer; +oer_type_decoder_f PivotingAllowed_decode_oer; +oer_type_encoder_f PivotingAllowed_encode_oer; +per_type_decoder_f PivotingAllowed_decode_uper; +per_type_encoder_f PivotingAllowed_encode_uper; +per_type_decoder_f PivotingAllowed_decode_aper; +per_type_encoder_f PivotingAllowed_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PivotingAllowed_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D-addGrpB.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D-addGrpB.h new file mode 100644 index 000000000..e45b49c35 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D-addGrpB.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Position3D_addGrpB_H_ +#define _Position3D_addGrpB_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LatitudeDMS2.h" +#include "LongitudeDMS2.h" +#include "AddGrpB_Elevation.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Position3D-addGrpB */ +typedef struct Position3D_addGrpB { + LatitudeDMS2_t latitude; + LongitudeDMS2_t longitude; + AddGrpB_Elevation_t elevation; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_addGrpB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpB; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpB_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_addGrpB_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_addGrpB_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D-addGrpC.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D-addGrpC.h new file mode 100644 index 000000000..face236f8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Position3D_addGrpC_H_ +#define _Position3D_addGrpC_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Altitude.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Position3D-addGrpC */ +typedef struct Position3D_addGrpC { + Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_addGrpC_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D.h new file mode 100644 index 000000000..82f60bcc6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Position3D.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Position3D_H_ +#define _Position3D_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "Common_Elevation.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_Position3D; + +/* Position3D */ +typedef struct Position3D { + Latitude_t lat; + Longitude_t Long; + Common_Elevation_t *elevation; /* OPTIONAL */ + struct Position3D__regional { + A_SEQUENCE_OF(struct Reg_Position3D) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Position3D_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PositionConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PositionConfidence.h new file mode 100644 index 000000000..75239a186 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PositionConfidence.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PositionConfidence_H_ +#define _PositionConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PositionConfidence { + PositionConfidence_unavailable = 0, + PositionConfidence_a500m = 1, + PositionConfidence_a200m = 2, + PositionConfidence_a100m = 3, + PositionConfidence_a50m = 4, + PositionConfidence_a20m = 5, + PositionConfidence_a10m = 6, + PositionConfidence_a5m = 7, + PositionConfidence_a2m = 8, + PositionConfidence_a1m = 9, + PositionConfidence_a50cm = 10, + PositionConfidence_a20cm = 11, + PositionConfidence_a10cm = 12, + PositionConfidence_a5cm = 13, + PositionConfidence_a2cm = 14, + PositionConfidence_a1cm = 15 +} e_PositionConfidence; + +/* PositionConfidence */ +typedef long PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1; +asn_struct_free_f PositionConfidence_free; +asn_struct_print_f PositionConfidence_print; +asn_constr_check_f PositionConfidence_constraint; +ber_type_decoder_f PositionConfidence_decode_ber; +der_type_encoder_f PositionConfidence_encode_der; +xer_type_decoder_f PositionConfidence_decode_xer; +xer_type_encoder_f PositionConfidence_encode_xer; +jer_type_encoder_f PositionConfidence_encode_jer; +oer_type_decoder_f PositionConfidence_decode_oer; +oer_type_encoder_f PositionConfidence_encode_oer; +per_type_decoder_f PositionConfidence_decode_uper; +per_type_encoder_f PositionConfidence_encode_uper; +per_type_decoder_f PositionConfidence_decode_aper; +per_type_encoder_f PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PositionConfidenceSet.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PositionConfidenceSet.h new file mode 100644 index 000000000..22fbb9ef1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PositionConfidenceSet.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PositionConfidenceSet_H_ +#define _PositionConfidenceSet_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PositionConfidence.h" +#include "ElevationConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionConfidenceSet */ +typedef struct PositionConfidenceSet { + PositionConfidence_t pos; + ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionConfidenceSet_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PositionalAccuracy.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PositionalAccuracy.h new file mode 100644 index 000000000..82931469c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PositionalAccuracy.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PositionalAccuracy_H_ +#define _PositionalAccuracy_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SemiMajorAxisAccuracy.h" +#include "SemiMinorAxisAccuracy.h" +#include "SemiMajorAxisOrientation.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PositionalAccuracy */ +typedef struct PositionalAccuracy { + SemiMajorAxisAccuracy_t semiMajor; + SemiMinorAxisAccuracy_t semiMinor; + SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PositionalAccuracy_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PreemptPriorityList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PreemptPriorityList.h new file mode 100644 index 000000000..00724d458 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PreemptPriorityList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PreemptPriorityList_H_ +#define _PreemptPriorityList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalControlZone; + +/* PreemptPriorityList */ +typedef struct PreemptPriorityList { + A_SEQUENCE_OF(struct SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PreemptPriorityList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponse.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponse.h new file mode 100644 index 000000000..3a564a3a7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponse.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PrioritizationResponse_H_ +#define _PrioritizationResponse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StationID.h" +#include "PrioritizationResponseStatus.h" +#include "SignalGroupID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrioritizationResponse */ +typedef struct PrioritizationResponse { + StationID_t stationID; + PrioritizationResponseStatus_t priorState; + SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponse_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponseList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponseList.h new file mode 100644 index 000000000..61195562d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PrioritizationResponseList_H_ +#define _PrioritizationResponseList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrioritizationResponse; + +/* PrioritizationResponseList */ +typedef struct PrioritizationResponseList { + A_SEQUENCE_OF(struct PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponseStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponseStatus.h new file mode 100644 index 000000000..0fc8ca254 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PrioritizationResponseStatus.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PrioritizationResponseStatus_H_ +#define _PrioritizationResponseStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrioritizationResponseStatus { + PrioritizationResponseStatus_unknown = 0, + PrioritizationResponseStatus_requested = 1, + PrioritizationResponseStatus_processing = 2, + PrioritizationResponseStatus_watchOtherTraffic = 3, + PrioritizationResponseStatus_granted = 4, + PrioritizationResponseStatus_rejected = 5, + PrioritizationResponseStatus_maxPresence = 6, + PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_PrioritizationResponseStatus; + +/* PrioritizationResponseStatus */ +typedef long PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1; +asn_struct_free_f PrioritizationResponseStatus_free; +asn_struct_print_f PrioritizationResponseStatus_print; +asn_constr_check_f PrioritizationResponseStatus_constraint; +ber_type_decoder_f PrioritizationResponseStatus_decode_ber; +der_type_encoder_f PrioritizationResponseStatus_encode_der; +xer_type_decoder_f PrioritizationResponseStatus_decode_xer; +xer_type_encoder_f PrioritizationResponseStatus_encode_xer; +jer_type_encoder_f PrioritizationResponseStatus_encode_jer; +oer_type_decoder_f PrioritizationResponseStatus_decode_oer; +oer_type_encoder_f PrioritizationResponseStatus_encode_oer; +per_type_decoder_f PrioritizationResponseStatus_decode_uper; +per_type_encoder_f PrioritizationResponseStatus_encode_uper; +per_type_decoder_f PrioritizationResponseStatus_decode_aper; +per_type_encoder_f PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrioritizationResponseStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Priority.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Priority.h new file mode 100644 index 000000000..983b43f42 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Priority.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Priority_H_ +#define _Priority_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Priority */ +typedef OCTET_STRING_t Priority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Priority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Priority; +asn_struct_free_f Priority_free; +asn_struct_print_f Priority_print; +asn_constr_check_f Priority_constraint; +ber_type_decoder_f Priority_decode_ber; +der_type_encoder_f Priority_encode_der; +xer_type_decoder_f Priority_decode_xer; +xer_type_encoder_f Priority_encode_xer; +jer_type_encoder_f Priority_encode_jer; +oer_type_decoder_f Priority_decode_oer; +oer_type_encoder_f Priority_encode_oer; +per_type_decoder_f Priority_decode_uper; +per_type_encoder_f Priority_encode_uper; +per_type_decoder_f Priority_decode_aper; +per_type_encoder_f Priority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Priority_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PriorityRequestType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PriorityRequestType.h new file mode 100644 index 000000000..bc8c5f06f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PriorityRequestType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PriorityRequestType_H_ +#define _PriorityRequestType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PriorityRequestType { + PriorityRequestType_priorityRequestTypeReserved = 0, + PriorityRequestType_priorityRequest = 1, + PriorityRequestType_priorityRequestUpdate = 2, + PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_PriorityRequestType; + +/* PriorityRequestType */ +typedef long PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1; +asn_struct_free_f PriorityRequestType_free; +asn_struct_print_f PriorityRequestType_print; +asn_constr_check_f PriorityRequestType_constraint; +ber_type_decoder_f PriorityRequestType_decode_ber; +der_type_encoder_f PriorityRequestType_encode_der; +xer_type_decoder_f PriorityRequestType_decode_xer; +xer_type_encoder_f PriorityRequestType_encode_xer; +jer_type_encoder_f PriorityRequestType_encode_jer; +oer_type_decoder_f PriorityRequestType_decode_oer; +oer_type_encoder_f PriorityRequestType_encode_oer; +per_type_decoder_f PriorityRequestType_decode_uper; +per_type_encoder_f PriorityRequestType_encode_uper; +per_type_decoder_f PriorityRequestType_decode_aper; +per_type_encoder_f PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PriorityRequestType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PrivilegedEventFlags.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PrivilegedEventFlags.h new file mode 100644 index 000000000..7c82834a4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PrivilegedEventFlags.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PrivilegedEventFlags_H_ +#define _PrivilegedEventFlags_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrivilegedEventFlags { + PrivilegedEventFlags_peUnavailable = 0, + PrivilegedEventFlags_peEmergencyResponse = 1, + PrivilegedEventFlags_peEmergencyLightsActive = 2, + PrivilegedEventFlags_peEmergencySoundActive = 3, + PrivilegedEventFlags_peNonEmergencyLightsActive = 4, + PrivilegedEventFlags_peNonEmergencySoundActive = 5 +} e_PrivilegedEventFlags; + +/* PrivilegedEventFlags */ +typedef BIT_STRING_t PrivilegedEventFlags_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PrivilegedEventFlags_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PrivilegedEventFlags; +asn_struct_free_f PrivilegedEventFlags_free; +asn_struct_print_f PrivilegedEventFlags_print; +asn_constr_check_f PrivilegedEventFlags_constraint; +ber_type_decoder_f PrivilegedEventFlags_decode_ber; +der_type_encoder_f PrivilegedEventFlags_encode_der; +xer_type_decoder_f PrivilegedEventFlags_decode_xer; +xer_type_encoder_f PrivilegedEventFlags_encode_xer; +jer_type_encoder_f PrivilegedEventFlags_encode_jer; +oer_type_decoder_f PrivilegedEventFlags_decode_oer; +oer_type_encoder_f PrivilegedEventFlags_encode_oer; +per_type_decoder_f PrivilegedEventFlags_decode_uper; +per_type_encoder_f PrivilegedEventFlags_encode_uper; +per_type_decoder_f PrivilegedEventFlags_decode_aper; +per_type_encoder_f PrivilegedEventFlags_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrivilegedEventFlags_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PrivilegedEvents.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PrivilegedEvents.h new file mode 100644 index 000000000..fd863a18c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PrivilegedEvents.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PrivilegedEvents_H_ +#define _PrivilegedEvents_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SSPindex.h" +#include "PrivilegedEventFlags.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrivilegedEvents */ +typedef struct PrivilegedEvents { + SSPindex_t notUsed; + PrivilegedEventFlags_t event; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrivilegedEvents_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrivilegedEvents; +extern asn_SEQUENCE_specifics_t asn_SPC_PrivilegedEvents_specs_1; +extern asn_TYPE_member_t asn_MBR_PrivilegedEvents_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrivilegedEvents_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeDataManagement.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeDataManagement.h new file mode 100644 index 000000000..d89525be5 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeDataManagement.h @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ProbeDataManagement_H_ +#define _ProbeDataManagement_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "Sample.h" +#include "HeadingSlice.h" +#include "SecondOfTime.h" +#include "TermTime.h" +#include "TermDistance.h" +#include "constr_CHOICE.h" +#include "SnapshotTime.h" +#include "SnapshotDistance.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ProbeDataManagement__term_PR { + ProbeDataManagement__term_PR_NOTHING, /* No components present */ + ProbeDataManagement__term_PR_termtime, + ProbeDataManagement__term_PR_termDistance +} ProbeDataManagement__term_PR; +typedef enum ProbeDataManagement__snapshot_PR { + ProbeDataManagement__snapshot_PR_NOTHING, /* No components present */ + ProbeDataManagement__snapshot_PR_snapshotTime, + ProbeDataManagement__snapshot_PR_snapshotDistance +} ProbeDataManagement__snapshot_PR; + +/* Forward declarations */ +struct VehicleStatusRequestList; +struct Reg_ProbeDataManagement; + +/* ProbeDataManagement */ +typedef struct ProbeDataManagement { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + Sample_t sample; + HeadingSlice_t directions; + struct ProbeDataManagement__term { + ProbeDataManagement__term_PR present; + union ProbeDataManagement__term_u { + TermTime_t termtime; + TermDistance_t termDistance; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } term; + struct ProbeDataManagement__snapshot { + ProbeDataManagement__snapshot_PR present; + union ProbeDataManagement__snapshot_u { + SnapshotTime_t snapshotTime; + SnapshotDistance_t snapshotDistance; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } snapshot; + SecondOfTime_t txInterval; + struct VehicleStatusRequestList *dataElements; /* OPTIONAL */ + struct ProbeDataManagement__regional { + A_SEQUENCE_OF(struct Reg_ProbeDataManagement) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProbeDataManagement_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProbeDataManagement; +extern asn_SEQUENCE_specifics_t asn_SPC_ProbeDataManagement_specs_1; +extern asn_TYPE_member_t asn_MBR_ProbeDataManagement_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProbeDataManagement_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeSegmentNumber.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeSegmentNumber.h new file mode 100644 index 000000000..bc7464dea --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeSegmentNumber.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ProbeSegmentNumber_H_ +#define _ProbeSegmentNumber_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProbeSegmentNumber */ +typedef long ProbeSegmentNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProbeSegmentNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProbeSegmentNumber; +asn_struct_free_f ProbeSegmentNumber_free; +asn_struct_print_f ProbeSegmentNumber_print; +asn_constr_check_f ProbeSegmentNumber_constraint; +ber_type_decoder_f ProbeSegmentNumber_decode_ber; +der_type_encoder_f ProbeSegmentNumber_encode_der; +xer_type_decoder_f ProbeSegmentNumber_decode_xer; +xer_type_encoder_f ProbeSegmentNumber_encode_xer; +jer_type_encoder_f ProbeSegmentNumber_encode_jer; +oer_type_decoder_f ProbeSegmentNumber_decode_oer; +oer_type_encoder_f ProbeSegmentNumber_encode_oer; +per_type_decoder_f ProbeSegmentNumber_decode_uper; +per_type_encoder_f ProbeSegmentNumber_encode_uper; +per_type_decoder_f ProbeSegmentNumber_decode_aper; +per_type_encoder_f ProbeSegmentNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProbeSegmentNumber_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeVehicleData.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeVehicleData.h new file mode 100644 index 000000000..6323acbb9 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ProbeVehicleData.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ProbeVehicleData_H_ +#define _ProbeVehicleData_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "ProbeSegmentNumber.h" +#include "FullPositionVector.h" +#include "VehicleClassification.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleIdent; +struct Snapshot; +struct Reg_ProbeVehicleData; + +/* ProbeVehicleData */ +typedef struct ProbeVehicleData { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + ProbeSegmentNumber_t *segNum; /* OPTIONAL */ + struct VehicleIdent *probeID; /* OPTIONAL */ + FullPositionVector_t startVector; + VehicleClassification_t vehicleType; + struct ProbeVehicleData__snapshots { + A_SEQUENCE_OF(struct Snapshot) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } snapshots; + struct ProbeVehicleData__regional { + A_SEQUENCE_OF(struct Reg_ProbeVehicleData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProbeVehicleData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProbeVehicleData; +extern asn_SEQUENCE_specifics_t asn_SPC_ProbeVehicleData_specs_1; +extern asn_TYPE_member_t asn_MBR_ProbeVehicleData_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProbeVehicleData_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PropelledInformation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PropelledInformation.h new file mode 100644 index 000000000..772efb148 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PropelledInformation.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PropelledInformation_H_ +#define _PropelledInformation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "HumanPropelledType.h" +#include "AnimalPropelledType.h" +#include "MotorizedPropelledType.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PropelledInformation_PR { + PropelledInformation_PR_NOTHING, /* No components present */ + PropelledInformation_PR_human, + PropelledInformation_PR_animal, + PropelledInformation_PR_motor + /* Extensions may appear below */ + +} PropelledInformation_PR; + +/* PropelledInformation */ +typedef struct PropelledInformation { + PropelledInformation_PR present; + union PropelledInformation_u { + HumanPropelledType_t human; + AnimalPropelledType_t animal; + MotorizedPropelledType_t motor; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PropelledInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PropelledInformation; +extern asn_CHOICE_specifics_t asn_SPC_PropelledInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_PropelledInformation_1[3]; +extern asn_per_constraints_t asn_PER_type_PropelledInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PropelledInformation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyAndRoadWorkerActivity.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyAndRoadWorkerActivity.h new file mode 100644 index 000000000..fe22fa36d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyAndRoadWorkerActivity.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PublicSafetyAndRoadWorkerActivity_H_ +#define _PublicSafetyAndRoadWorkerActivity_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PublicSafetyAndRoadWorkerActivity { + PublicSafetyAndRoadWorkerActivity_unavailable = 0, + PublicSafetyAndRoadWorkerActivity_workingOnRoad = 1, + PublicSafetyAndRoadWorkerActivity_settingUpClosures = 2, + PublicSafetyAndRoadWorkerActivity_respondingToEvents = 3, + PublicSafetyAndRoadWorkerActivity_directingTraffic = 4, + PublicSafetyAndRoadWorkerActivity_otherActivities = 5 +} e_PublicSafetyAndRoadWorkerActivity; + +/* PublicSafetyAndRoadWorkerActivity */ +typedef BIT_STRING_t PublicSafetyAndRoadWorkerActivity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PublicSafetyAndRoadWorkerActivity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PublicSafetyAndRoadWorkerActivity; +asn_struct_free_f PublicSafetyAndRoadWorkerActivity_free; +asn_struct_print_f PublicSafetyAndRoadWorkerActivity_print; +asn_constr_check_f PublicSafetyAndRoadWorkerActivity_constraint; +ber_type_decoder_f PublicSafetyAndRoadWorkerActivity_decode_ber; +der_type_encoder_f PublicSafetyAndRoadWorkerActivity_encode_der; +xer_type_decoder_f PublicSafetyAndRoadWorkerActivity_decode_xer; +xer_type_encoder_f PublicSafetyAndRoadWorkerActivity_encode_xer; +jer_type_encoder_f PublicSafetyAndRoadWorkerActivity_encode_jer; +oer_type_decoder_f PublicSafetyAndRoadWorkerActivity_decode_oer; +oer_type_encoder_f PublicSafetyAndRoadWorkerActivity_encode_oer; +per_type_decoder_f PublicSafetyAndRoadWorkerActivity_decode_uper; +per_type_encoder_f PublicSafetyAndRoadWorkerActivity_encode_uper; +per_type_decoder_f PublicSafetyAndRoadWorkerActivity_decode_aper; +per_type_encoder_f PublicSafetyAndRoadWorkerActivity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PublicSafetyAndRoadWorkerActivity_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyDirectingTrafficSubType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyDirectingTrafficSubType.h new file mode 100644 index 000000000..e28e7e95b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyDirectingTrafficSubType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PublicSafetyDirectingTrafficSubType_H_ +#define _PublicSafetyDirectingTrafficSubType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PublicSafetyDirectingTrafficSubType { + PublicSafetyDirectingTrafficSubType_unavailable = 0, + PublicSafetyDirectingTrafficSubType_policeAndTrafficOfficers = 1, + PublicSafetyDirectingTrafficSubType_trafficControlPersons = 2, + PublicSafetyDirectingTrafficSubType_railroadCrossingGuards = 3, + PublicSafetyDirectingTrafficSubType_civilDefenseNationalGuardMilitaryPolice = 4, + PublicSafetyDirectingTrafficSubType_emergencyOrganizationPersonnel = 5, + PublicSafetyDirectingTrafficSubType_highwayServiceVehiclePersonnel = 6 +} e_PublicSafetyDirectingTrafficSubType; + +/* PublicSafetyDirectingTrafficSubType */ +typedef BIT_STRING_t PublicSafetyDirectingTrafficSubType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PublicSafetyDirectingTrafficSubType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PublicSafetyDirectingTrafficSubType; +asn_struct_free_f PublicSafetyDirectingTrafficSubType_free; +asn_struct_print_f PublicSafetyDirectingTrafficSubType_print; +asn_constr_check_f PublicSafetyDirectingTrafficSubType_constraint; +ber_type_decoder_f PublicSafetyDirectingTrafficSubType_decode_ber; +der_type_encoder_f PublicSafetyDirectingTrafficSubType_encode_der; +xer_type_decoder_f PublicSafetyDirectingTrafficSubType_decode_xer; +xer_type_encoder_f PublicSafetyDirectingTrafficSubType_encode_xer; +jer_type_encoder_f PublicSafetyDirectingTrafficSubType_encode_jer; +oer_type_decoder_f PublicSafetyDirectingTrafficSubType_decode_oer; +oer_type_encoder_f PublicSafetyDirectingTrafficSubType_encode_oer; +per_type_decoder_f PublicSafetyDirectingTrafficSubType_decode_uper; +per_type_encoder_f PublicSafetyDirectingTrafficSubType_encode_uper; +per_type_decoder_f PublicSafetyDirectingTrafficSubType_decode_aper; +per_type_encoder_f PublicSafetyDirectingTrafficSubType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PublicSafetyDirectingTrafficSubType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyEventResponderWorkerType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyEventResponderWorkerType.h new file mode 100644 index 000000000..cea1ebe44 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/PublicSafetyEventResponderWorkerType.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _PublicSafetyEventResponderWorkerType_H_ +#define _PublicSafetyEventResponderWorkerType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PublicSafetyEventResponderWorkerType { + PublicSafetyEventResponderWorkerType_unavailable = 0, + PublicSafetyEventResponderWorkerType_towOperater = 1, + PublicSafetyEventResponderWorkerType_fireAndEMSWorker = 2, + PublicSafetyEventResponderWorkerType_aDOTWorker = 3, + PublicSafetyEventResponderWorkerType_lawEnforcement = 4, + PublicSafetyEventResponderWorkerType_hazmatResponder = 5, + PublicSafetyEventResponderWorkerType_animalControlWorker = 6, + PublicSafetyEventResponderWorkerType_otherPersonnel = 7 + /* + * Enumeration is extensible + */ +} e_PublicSafetyEventResponderWorkerType; + +/* PublicSafetyEventResponderWorkerType */ +typedef long PublicSafetyEventResponderWorkerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PublicSafetyEventResponderWorkerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PublicSafetyEventResponderWorkerType; +extern const asn_INTEGER_specifics_t asn_SPC_PublicSafetyEventResponderWorkerType_specs_1; +asn_struct_free_f PublicSafetyEventResponderWorkerType_free; +asn_struct_print_f PublicSafetyEventResponderWorkerType_print; +asn_constr_check_f PublicSafetyEventResponderWorkerType_constraint; +ber_type_decoder_f PublicSafetyEventResponderWorkerType_decode_ber; +der_type_encoder_f PublicSafetyEventResponderWorkerType_encode_der; +xer_type_decoder_f PublicSafetyEventResponderWorkerType_decode_xer; +xer_type_encoder_f PublicSafetyEventResponderWorkerType_encode_xer; +jer_type_encoder_f PublicSafetyEventResponderWorkerType_encode_jer; +oer_type_decoder_f PublicSafetyEventResponderWorkerType_decode_oer; +oer_type_encoder_f PublicSafetyEventResponderWorkerType_encode_oer; +per_type_decoder_f PublicSafetyEventResponderWorkerType_decode_uper; +per_type_encoder_f PublicSafetyEventResponderWorkerType_encode_uper; +per_type_decoder_f PublicSafetyEventResponderWorkerType_decode_aper; +per_type_encoder_f PublicSafetyEventResponderWorkerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PublicSafetyEventResponderWorkerType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCM-Revision.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCM-Revision.h new file mode 100644 index 000000000..19961578c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCM-Revision.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "RTCMcorrections" + * found in "J2735-RTCMcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RTCM_Revision_H_ +#define _RTCM_Revision_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RTCM_Revision { + RTCM_Revision_unknown = 0, + RTCM_Revision_rtcmRev2 = 1, + RTCM_Revision_rtcmRev3 = 2, + RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_RTCM_Revision; + +/* RTCM-Revision */ +typedef long RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1; +asn_struct_free_f RTCM_Revision_free; +asn_struct_print_f RTCM_Revision_print; +asn_constr_check_f RTCM_Revision_constraint; +ber_type_decoder_f RTCM_Revision_decode_ber; +der_type_encoder_f RTCM_Revision_encode_der; +xer_type_decoder_f RTCM_Revision_decode_xer; +xer_type_encoder_f RTCM_Revision_encode_xer; +jer_type_encoder_f RTCM_Revision_encode_jer; +oer_type_decoder_f RTCM_Revision_decode_oer; +oer_type_encoder_f RTCM_Revision_encode_oer; +per_type_decoder_f RTCM_Revision_decode_uper; +per_type_encoder_f RTCM_Revision_encode_uper; +per_type_decoder_f RTCM_Revision_decode_aper; +per_type_encoder_f RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCM_Revision_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMPackage.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMPackage.h new file mode 100644 index 000000000..21516a2af --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMPackage.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RTCMPackage_H_ +#define _RTCMPackage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RTCMmessageList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RTCMheader; + +/* RTCMPackage */ +typedef struct RTCMPackage { + struct RTCMheader *rtcmHeader; /* OPTIONAL */ + RTCMmessageList_t msgs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMPackage_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMPackage_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMcorrections.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMcorrections.h new file mode 100644 index 000000000..49d93aaac --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMcorrections.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "RTCMcorrections" + * found in "J2735-RTCMcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RTCMcorrections_H_ +#define _RTCMcorrections_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Common_MsgCount.h" +#include "RTCM-Revision.h" +#include "MinuteOfTheYear.h" +#include "RTCMmessageList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FullPositionVector; +struct RTCMheader; +struct Reg_RTCMcorrections; + +/* RTCMcorrections */ +typedef struct RTCMcorrections { + Common_MsgCount_t msgCnt; + RTCM_Revision_t rev; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct FullPositionVector *anchorPoint; /* OPTIONAL */ + struct RTCMheader *rtcmHeader; /* OPTIONAL */ + RTCMmessageList_t msgs; + struct RTCMcorrections__regional { + A_SEQUENCE_OF(struct Reg_RTCMcorrections) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMcorrections_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMcorrections_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMcorrections_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMheader.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMheader.h new file mode 100644 index 000000000..4dcd9bc4d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMheader.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RTCMheader_H_ +#define _RTCMheader_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GNSSstatus.h" +#include "AntennaOffsetSet.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMheader */ +typedef struct RTCMheader { + GNSSstatus_t status; + AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMheader_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMmessage.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMmessage.h new file mode 100644 index 000000000..ab015abd9 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMmessage.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RTCMmessage_H_ +#define _RTCMmessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessage */ +typedef OCTET_STRING_t RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessage; +asn_struct_free_f RTCMmessage_free; +asn_struct_print_f RTCMmessage_print; +asn_constr_check_f RTCMmessage_constraint; +ber_type_decoder_f RTCMmessage_decode_ber; +der_type_encoder_f RTCMmessage_encode_der; +xer_type_decoder_f RTCMmessage_decode_xer; +xer_type_encoder_f RTCMmessage_encode_xer; +jer_type_encoder_f RTCMmessage_encode_jer; +oer_type_decoder_f RTCMmessage_decode_oer; +oer_type_encoder_f RTCMmessage_encode_oer; +per_type_decoder_f RTCMmessage_decode_uper; +per_type_encoder_f RTCMmessage_encode_uper; +per_type_decoder_f RTCMmessage_decode_aper; +per_type_encoder_f RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessage_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMmessageList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMmessageList.h new file mode 100644 index 000000000..adb065744 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RTCMmessageList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RTCMmessageList_H_ +#define _RTCMmessageList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RTCMmessage.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RTCMmessageList */ +typedef struct RTCMmessageList { + A_SEQUENCE_OF(RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RTCMmessageList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Radius-B12.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Radius-B12.h new file mode 100644 index 000000000..e8c9d9c78 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Radius-B12.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Radius_B12_H_ +#define _Radius_B12_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Radius-B12 */ +typedef long Radius_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Radius_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Radius_B12; +asn_struct_free_f Radius_B12_free; +asn_struct_print_f Radius_B12_print; +asn_constr_check_f Radius_B12_constraint; +ber_type_decoder_f Radius_B12_decode_ber; +der_type_encoder_f Radius_B12_encode_der; +xer_type_decoder_f Radius_B12_decode_xer; +xer_type_encoder_f Radius_B12_encode_xer; +jer_type_encoder_f Radius_B12_encode_jer; +oer_type_decoder_f Radius_B12_decode_oer; +oer_type_encoder_f Radius_B12_encode_oer; +per_type_decoder_f Radius_B12_decode_uper; +per_type_encoder_f Radius_B12_encode_uper; +per_type_decoder_f Radius_B12_decode_aper; +per_type_encoder_f Radius_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Radius_B12_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RadiusOfCurvature.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RadiusOfCurvature.h new file mode 100644 index 000000000..a7f996ff3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RadiusOfCurvature.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RadiusOfCurvature_H_ +#define _RadiusOfCurvature_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RadiusOfCurvature */ +typedef long RadiusOfCurvature_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RadiusOfCurvature_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RadiusOfCurvature; +asn_struct_free_f RadiusOfCurvature_free; +asn_struct_print_f RadiusOfCurvature_print; +asn_constr_check_f RadiusOfCurvature_constraint; +ber_type_decoder_f RadiusOfCurvature_decode_ber; +der_type_encoder_f RadiusOfCurvature_encode_der; +xer_type_decoder_f RadiusOfCurvature_decode_xer; +xer_type_encoder_f RadiusOfCurvature_encode_xer; +jer_type_encoder_f RadiusOfCurvature_encode_jer; +oer_type_decoder_f RadiusOfCurvature_decode_oer; +oer_type_encoder_f RadiusOfCurvature_encode_oer; +per_type_decoder_f RadiusOfCurvature_decode_uper; +per_type_encoder_f RadiusOfCurvature_encode_uper; +per_type_decoder_f RadiusOfCurvature_decode_aper; +per_type_encoder_f RadiusOfCurvature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RadiusOfCurvature_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RainSensor.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RainSensor.h new file mode 100644 index 000000000..6adcdfe68 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RainSensor.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RainSensor_H_ +#define _RainSensor_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RainSensor { + RainSensor_none = 0, + RainSensor_lightMist = 1, + RainSensor_heavyMist = 2, + RainSensor_lightRainOrDrizzle = 3, + RainSensor_rain = 4, + RainSensor_moderateRain = 5, + RainSensor_heavyRain = 6, + RainSensor_heavyDownpour = 7 +} e_RainSensor; + +/* RainSensor */ +typedef long RainSensor_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RainSensor_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RainSensor; +extern const asn_INTEGER_specifics_t asn_SPC_RainSensor_specs_1; +asn_struct_free_f RainSensor_free; +asn_struct_print_f RainSensor_print; +asn_constr_check_f RainSensor_constraint; +ber_type_decoder_f RainSensor_decode_ber; +der_type_encoder_f RainSensor_encode_der; +xer_type_decoder_f RainSensor_decode_xer; +xer_type_encoder_f RainSensor_encode_xer; +jer_type_encoder_f RainSensor_encode_jer; +oer_type_decoder_f RainSensor_decode_oer; +oer_type_encoder_f RainSensor_encode_oer; +per_type_decoder_f RainSensor_decode_uper; +per_type_encoder_f RainSensor_encode_uper; +per_type_decoder_f RainSensor_decode_aper; +per_type_encoder_f RainSensor_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RainSensor_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionId.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionId.h new file mode 100644 index 000000000..0fb282aab --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionId.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RegionId_H_ +#define _RegionId_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegionId */ +typedef long RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RegionId; +asn_struct_free_f RegionId_free; +asn_struct_print_f RegionId_print; +asn_constr_check_f RegionId_constraint; +ber_type_decoder_f RegionId_decode_ber; +der_type_encoder_f RegionId_encode_der; +xer_type_decoder_f RegionId_decode_xer; +xer_type_encoder_f RegionId_encode_xer; +jer_type_encoder_f RegionId_encode_jer; +oer_type_decoder_f RegionId_decode_oer; +oer_type_encoder_f RegionId_encode_oer; +per_type_decoder_f RegionId_decode_uper; +per_type_encoder_f RegionId_encode_uper; +per_type_decoder_f RegionId_decode_aper; +per_type_encoder_f RegionId_encode_aper; +#define RegionId_noRegion ((RegionId_t)0) +#define RegionId_addGrpA ((RegionId_t)1) +#define RegionId_addGrpB ((RegionId_t)2) +#define RegionId_addGrpC ((RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionId_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionList.h new file mode 100644 index 000000000..50d145cf7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RegionList_H_ +#define _RegionList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RegionOffsets; + +/* RegionList */ +typedef struct RegionList { + A_SEQUENCE_OF(struct RegionOffsets) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegionList; +extern asn_SET_OF_specifics_t asn_SPC_RegionList_specs_1; +extern asn_TYPE_member_t asn_MBR_RegionList_1[1]; +extern asn_per_constraints_t asn_PER_type_RegionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionOffsets.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionOffsets.h new file mode 100644 index 000000000..0c6835963 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionOffsets.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RegionOffsets_H_ +#define _RegionOffsets_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OffsetLL-B16.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegionOffsets */ +typedef struct RegionOffsets { + OffsetLL_B16_t xOffset; + OffsetLL_B16_t yOffset; + OffsetLL_B16_t *zOffset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegionOffsets_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegionOffsets; +extern asn_SEQUENCE_specifics_t asn_SPC_RegionOffsets_specs_1; +extern asn_TYPE_member_t asn_MBR_RegionOffsets_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionOffsets_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionPointSet.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionPointSet.h new file mode 100644 index 000000000..4245466f9 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionPointSet.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RegionPointSet_H_ +#define _RegionPointSet_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Zoom.h" +#include "RegionList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Position3D; + +/* RegionPointSet */ +typedef struct RegionPointSet { + struct Position3D *anchor; /* OPTIONAL */ + Zoom_t *scale; /* OPTIONAL */ + RegionList_t nodeList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegionPointSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegionPointSet; +extern asn_SEQUENCE_specifics_t asn_SPC_RegionPointSet_specs_1; +extern asn_TYPE_member_t asn_MBR_RegionPointSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionPointSet_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionalExtension.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionalExtension.h new file mode 100644 index 000000000..a981d7f10 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegionalExtension.h @@ -0,0 +1,1337 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RegionalExtension_H_ +#define _RegionalExtension_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RegionId.h" +#include "ANY.h" +#include "asn_ioc.h" +#include "OPEN_TYPE.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" +#include "LaneDataAttribute-addGrpB.h" +#include "NodeOffsetPointXY-addGrpB.h" +#include "Position3D-addGrpB.h" +#include "Position3D-addGrpC.h" +#include "MapData-addGrpC.h" +#include "RestrictionUserType-addGrpC.h" +#include "ConnectionManeuverAssist-addGrpC.h" +#include "IntersectionState-addGrpC.h" +#include "MovementEvent-addGrpB.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Reg_BasicSafetyMessage__regExtValue_PR { + Reg_BasicSafetyMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_BasicSafetyMessage__regExtValue_PR; +typedef enum Reg_EventDescription__regExtValue_PR { + Reg_EventDescription__regExtValue_PR_NOTHING /* No components present */ + +} Reg_EventDescription__regExtValue_PR; +typedef enum Reg_SupplementalVehicleExtensions__regExtValue_PR { + Reg_SupplementalVehicleExtensions__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SupplementalVehicleExtensions__regExtValue_PR; +typedef enum Reg_ComputedLane__regExtValue_PR { + Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} Reg_ComputedLane__regExtValue_PR; +typedef enum Reg_LaneDataAttribute__regExtValue_PR { + Reg_LaneDataAttribute__regExtValue_PR_NOTHING, /* No components present */ + Reg_LaneDataAttribute__regExtValue_PR_LaneDataAttribute_addGrpB +} Reg_LaneDataAttribute__regExtValue_PR; +typedef enum Reg_NodeAttributeSetXY__regExtValue_PR { + Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum Reg_NodeOffsetPointXY__regExtValue_PR { + Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING, /* No components present */ + Reg_NodeOffsetPointXY__regExtValue_PR_NodeOffsetPointXY_addGrpB +} Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum Reg_Position3D__regExtValue_PR { + Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + Reg_Position3D__regExtValue_PR_Position3D_addGrpB, + Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} Reg_Position3D__regExtValue_PR; +typedef enum Reg_RequestorType__regExtValue_PR { + Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RequestorType__regExtValue_PR; +typedef enum Reg_VehicleClassification__regExtValue_PR { + Reg_VehicleClassification__regExtValue_PR_NOTHING /* No components present */ + +} Reg_VehicleClassification__regExtValue_PR; +typedef enum Reg_VerticalOffset__regExtValue_PR { + Reg_VerticalOffset__regExtValue_PR_NOTHING /* No components present */ + +} Reg_VerticalOffset__regExtValue_PR; +typedef enum Reg_CommonSafetyRequest__regExtValue_PR { + Reg_CommonSafetyRequest__regExtValue_PR_NOTHING /* No components present */ + +} Reg_CommonSafetyRequest__regExtValue_PR; +typedef enum Reg_EmergencyVehicleAlert__regExtValue_PR { + Reg_EmergencyVehicleAlert__regExtValue_PR_NOTHING /* No components present */ + +} Reg_EmergencyVehicleAlert__regExtValue_PR; +typedef enum Reg_IntersectionCollision__regExtValue_PR { + Reg_IntersectionCollision__regExtValue_PR_NOTHING /* No components present */ + +} Reg_IntersectionCollision__regExtValue_PR; +typedef enum Reg_MapData__regExtValue_PR { + Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + Reg_MapData__regExtValue_PR_MapData_addGrpC +} Reg_MapData__regExtValue_PR; +typedef enum Reg_GenericLane__regExtValue_PR { + Reg_GenericLane__regExtValue_PR_NOTHING /* No components present */ + +} Reg_GenericLane__regExtValue_PR; +typedef enum Reg_IntersectionGeometry__regExtValue_PR { + Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} Reg_IntersectionGeometry__regExtValue_PR; +typedef enum Reg_LaneAttributes__regExtValue_PR { + Reg_LaneAttributes__regExtValue_PR_NOTHING /* No components present */ + +} Reg_LaneAttributes__regExtValue_PR; +typedef enum Reg_SignalControlZone__regExtValue_PR { + Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalControlZone__regExtValue_PR; +typedef enum Reg_RestrictionUserType__regExtValue_PR { + Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} Reg_RestrictionUserType__regExtValue_PR; +typedef enum Reg_RoadSegment__regExtValue_PR { + Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RoadSegment__regExtValue_PR; +typedef enum Reg_NMEAcorrections__regExtValue_PR { + Reg_NMEAcorrections__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NMEAcorrections__regExtValue_PR; +typedef enum Reg_PersonalSafetyMessage__regExtValue_PR { + Reg_PersonalSafetyMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_PersonalSafetyMessage__regExtValue_PR; +typedef enum Reg_ProbeDataManagement__regExtValue_PR { + Reg_ProbeDataManagement__regExtValue_PR_NOTHING /* No components present */ + +} Reg_ProbeDataManagement__regExtValue_PR; +typedef enum Reg_ProbeVehicleData__regExtValue_PR { + Reg_ProbeVehicleData__regExtValue_PR_NOTHING /* No components present */ + +} Reg_ProbeVehicleData__regExtValue_PR; +typedef enum Reg_RoadSideAlert__regExtValue_PR { + Reg_RoadSideAlert__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RoadSideAlert__regExtValue_PR; +typedef enum Reg_RTCMcorrections__regExtValue_PR { + Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RTCMcorrections__regExtValue_PR; +typedef enum Reg_SignalRequestMessage__regExtValue_PR { + Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestMessage__regExtValue_PR; +typedef enum Reg_RequestorDescription__regExtValue_PR { + Reg_RequestorDescription__regExtValue_PR_NOTHING /* No components present */ + +} Reg_RequestorDescription__regExtValue_PR; +typedef enum Reg_SignalRequestPackage__regExtValue_PR { + Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequestPackage__regExtValue_PR; +typedef enum Reg_SignalRequest__regExtValue_PR { + Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalRequest__regExtValue_PR; +typedef enum Reg_SignalStatusMessage__regExtValue_PR { + Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatusMessage__regExtValue_PR; +typedef enum Reg_SignalStatusPackage__regExtValue_PR { + Reg_SignalStatusPackage__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatusPackage__regExtValue_PR; +typedef enum Reg_SignalStatus__regExtValue_PR { + Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SignalStatus__regExtValue_PR; +typedef enum Reg_SPAT__regExtValue_PR { + Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} Reg_SPAT__regExtValue_PR; +typedef enum Reg_AdvisorySpeed__regExtValue_PR { + Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} Reg_AdvisorySpeed__regExtValue_PR; +typedef enum Reg_ConnectionManeuverAssist__regExtValue_PR { + Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum Reg_IntersectionState__regExtValue_PR { + Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} Reg_IntersectionState__regExtValue_PR; +typedef enum Reg_MovementEvent__regExtValue_PR { + Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpB +} Reg_MovementEvent__regExtValue_PR; +typedef enum Reg_MovementState__regExtValue_PR { + Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} Reg_MovementState__regExtValue_PR; +typedef enum Reg_TestMessage00__regExtValue_PR { + Reg_TestMessage00__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage00__regExtValue_PR; +typedef enum Reg_TestMessage01__regExtValue_PR { + Reg_TestMessage01__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage01__regExtValue_PR; +typedef enum Reg_TestMessage02__regExtValue_PR { + Reg_TestMessage02__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage02__regExtValue_PR; +typedef enum Reg_TestMessage03__regExtValue_PR { + Reg_TestMessage03__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage03__regExtValue_PR; +typedef enum Reg_TestMessage04__regExtValue_PR { + Reg_TestMessage04__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage04__regExtValue_PR; +typedef enum Reg_TestMessage05__regExtValue_PR { + Reg_TestMessage05__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage05__regExtValue_PR; +typedef enum Reg_TestMessage06__regExtValue_PR { + Reg_TestMessage06__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage06__regExtValue_PR; +typedef enum Reg_TestMessage07__regExtValue_PR { + Reg_TestMessage07__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage07__regExtValue_PR; +typedef enum Reg_TestMessage08__regExtValue_PR { + Reg_TestMessage08__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage08__regExtValue_PR; +typedef enum Reg_TestMessage09__regExtValue_PR { + Reg_TestMessage09__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage09__regExtValue_PR; +typedef enum Reg_TestMessage10__regExtValue_PR { + Reg_TestMessage10__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage10__regExtValue_PR; +typedef enum Reg_TestMessage11__regExtValue_PR { + Reg_TestMessage11__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage11__regExtValue_PR; +typedef enum Reg_TestMessage12__regExtValue_PR { + Reg_TestMessage12__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage12__regExtValue_PR; +typedef enum Reg_TestMessage13__regExtValue_PR { + Reg_TestMessage13__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage13__regExtValue_PR; +typedef enum Reg_TestMessage14__regExtValue_PR { + Reg_TestMessage14__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage14__regExtValue_PR; +typedef enum Reg_TestMessage15__regExtValue_PR { + Reg_TestMessage15__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TestMessage15__regExtValue_PR; +typedef enum Reg_TravelerInformation__regExtValue_PR { + Reg_TravelerInformation__regExtValue_PR_NOTHING /* No components present */ + +} Reg_TravelerInformation__regExtValue_PR; +typedef enum Reg_GeographicalPath__regExtValue_PR { + Reg_GeographicalPath__regExtValue_PR_NOTHING /* No components present */ + +} Reg_GeographicalPath__regExtValue_PR; +typedef enum Reg_GeometricProjection__regExtValue_PR { + Reg_GeometricProjection__regExtValue_PR_NOTHING /* No components present */ + +} Reg_GeometricProjection__regExtValue_PR; +typedef enum Reg_NodeAttributeSetLL__regExtValue_PR { + Reg_NodeAttributeSetLL__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NodeAttributeSetLL__regExtValue_PR; +typedef enum Reg_NodeOffsetPointLL__regExtValue_PR { + Reg_NodeOffsetPointLL__regExtValue_PR_NOTHING /* No components present */ + +} Reg_NodeOffsetPointLL__regExtValue_PR; + +/* RegionalExtension */ +typedef struct Reg_BasicSafetyMessage { + RegionId_t regionId; + struct Reg_BasicSafetyMessage__regExtValue { + Reg_BasicSafetyMessage__regExtValue_PR present; + union Reg_BasicSafetyMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_BasicSafetyMessage_t; +typedef struct Reg_EventDescription { + RegionId_t regionId; + struct Reg_EventDescription__regExtValue { + Reg_EventDescription__regExtValue_PR present; + union Reg_EventDescription__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_EventDescription_t; +typedef struct Reg_SupplementalVehicleExtensions { + RegionId_t regionId; + struct Reg_SupplementalVehicleExtensions__regExtValue { + Reg_SupplementalVehicleExtensions__regExtValue_PR present; + union Reg_SupplementalVehicleExtensions__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SupplementalVehicleExtensions_t; +typedef struct Reg_ComputedLane { + RegionId_t regionId; + struct Reg_ComputedLane__regExtValue { + Reg_ComputedLane__regExtValue_PR present; + union Reg_ComputedLane__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ComputedLane_t; +typedef struct Reg_LaneDataAttribute { + RegionId_t regionId; + struct Reg_LaneDataAttribute__regExtValue { + Reg_LaneDataAttribute__regExtValue_PR present; + union Reg_LaneDataAttribute__regExtValue_u { + LaneDataAttribute_addGrpB_t LaneDataAttribute_addGrpB; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneDataAttribute_t; +typedef struct Reg_NodeAttributeSetXY { + RegionId_t regionId; + struct Reg_NodeAttributeSetXY__regExtValue { + Reg_NodeAttributeSetXY__regExtValue_PR present; + union Reg_NodeAttributeSetXY__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeAttributeSetXY_t; +typedef struct Reg_NodeOffsetPointXY { + RegionId_t regionId; + struct Reg_NodeOffsetPointXY__regExtValue { + Reg_NodeOffsetPointXY__regExtValue_PR present; + union Reg_NodeOffsetPointXY__regExtValue_u { + NodeOffsetPointXY_addGrpB_t NodeOffsetPointXY_addGrpB; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeOffsetPointXY_t; +typedef struct Reg_Position3D { + RegionId_t regionId; + struct Reg_Position3D__regExtValue { + Reg_Position3D__regExtValue_PR present; + union Reg_Position3D__regExtValue_u { + Position3D_addGrpB_t Position3D_addGrpB; + Position3D_addGrpC_t Position3D_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_Position3D_t; +typedef struct Reg_RequestorType { + RegionId_t regionId; + struct Reg_RequestorType__regExtValue { + Reg_RequestorType__regExtValue_PR present; + union Reg_RequestorType__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorType_t; +typedef struct Reg_VehicleClassification { + RegionId_t regionId; + struct Reg_VehicleClassification__regExtValue { + Reg_VehicleClassification__regExtValue_PR present; + union Reg_VehicleClassification__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_VehicleClassification_t; +typedef struct Reg_VerticalOffset { + RegionId_t regionId; + struct Reg_VerticalOffset__regExtValue { + Reg_VerticalOffset__regExtValue_PR present; + union Reg_VerticalOffset__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_VerticalOffset_t; +typedef struct Reg_CommonSafetyRequest { + RegionId_t regionId; + struct Reg_CommonSafetyRequest__regExtValue { + Reg_CommonSafetyRequest__regExtValue_PR present; + union Reg_CommonSafetyRequest__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_CommonSafetyRequest_t; +typedef struct Reg_EmergencyVehicleAlert { + RegionId_t regionId; + struct Reg_EmergencyVehicleAlert__regExtValue { + Reg_EmergencyVehicleAlert__regExtValue_PR present; + union Reg_EmergencyVehicleAlert__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_EmergencyVehicleAlert_t; +typedef struct Reg_IntersectionCollision { + RegionId_t regionId; + struct Reg_IntersectionCollision__regExtValue { + Reg_IntersectionCollision__regExtValue_PR present; + union Reg_IntersectionCollision__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionCollision_t; +typedef struct Reg_MapData { + RegionId_t regionId; + struct Reg_MapData__regExtValue { + Reg_MapData__regExtValue_PR present; + union Reg_MapData__regExtValue_u { + MapData_addGrpC_t MapData_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MapData_t; +typedef struct Reg_GenericLane { + RegionId_t regionId; + struct Reg_GenericLane__regExtValue { + Reg_GenericLane__regExtValue_PR present; + union Reg_GenericLane__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_GenericLane_t; +typedef struct Reg_IntersectionGeometry { + RegionId_t regionId; + struct Reg_IntersectionGeometry__regExtValue { + Reg_IntersectionGeometry__regExtValue_PR present; + union Reg_IntersectionGeometry__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionGeometry_t; +typedef struct Reg_LaneAttributes { + RegionId_t regionId; + struct Reg_LaneAttributes__regExtValue { + Reg_LaneAttributes__regExtValue_PR present; + union Reg_LaneAttributes__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_LaneAttributes_t; +typedef struct Reg_SignalControlZone { + RegionId_t regionId; + struct Reg_SignalControlZone__regExtValue { + Reg_SignalControlZone__regExtValue_PR present; + union Reg_SignalControlZone__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalControlZone_t; +typedef struct Reg_RestrictionUserType { + RegionId_t regionId; + struct Reg_RestrictionUserType__regExtValue { + Reg_RestrictionUserType__regExtValue_PR present; + union Reg_RestrictionUserType__regExtValue_u { + RestrictionUserType_addGrpC_t RestrictionUserType_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RestrictionUserType_t; +typedef struct Reg_RoadSegment { + RegionId_t regionId; + struct Reg_RoadSegment__regExtValue { + Reg_RoadSegment__regExtValue_PR present; + union Reg_RoadSegment__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RoadSegment_t; +typedef struct Reg_NMEAcorrections { + RegionId_t regionId; + struct Reg_NMEAcorrections__regExtValue { + Reg_NMEAcorrections__regExtValue_PR present; + union Reg_NMEAcorrections__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NMEAcorrections_t; +typedef struct Reg_PersonalSafetyMessage { + RegionId_t regionId; + struct Reg_PersonalSafetyMessage__regExtValue { + Reg_PersonalSafetyMessage__regExtValue_PR present; + union Reg_PersonalSafetyMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_PersonalSafetyMessage_t; +typedef struct Reg_ProbeDataManagement { + RegionId_t regionId; + struct Reg_ProbeDataManagement__regExtValue { + Reg_ProbeDataManagement__regExtValue_PR present; + union Reg_ProbeDataManagement__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ProbeDataManagement_t; +typedef struct Reg_ProbeVehicleData { + RegionId_t regionId; + struct Reg_ProbeVehicleData__regExtValue { + Reg_ProbeVehicleData__regExtValue_PR present; + union Reg_ProbeVehicleData__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ProbeVehicleData_t; +typedef struct Reg_RoadSideAlert { + RegionId_t regionId; + struct Reg_RoadSideAlert__regExtValue { + Reg_RoadSideAlert__regExtValue_PR present; + union Reg_RoadSideAlert__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RoadSideAlert_t; +typedef struct Reg_RTCMcorrections { + RegionId_t regionId; + struct Reg_RTCMcorrections__regExtValue { + Reg_RTCMcorrections__regExtValue_PR present; + union Reg_RTCMcorrections__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RTCMcorrections_t; +typedef struct Reg_SignalRequestMessage { + RegionId_t regionId; + struct Reg_SignalRequestMessage__regExtValue { + Reg_SignalRequestMessage__regExtValue_PR present; + union Reg_SignalRequestMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestMessage_t; +typedef struct Reg_RequestorDescription { + RegionId_t regionId; + struct Reg_RequestorDescription__regExtValue { + Reg_RequestorDescription__regExtValue_PR present; + union Reg_RequestorDescription__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_RequestorDescription_t; +typedef struct Reg_SignalRequestPackage { + RegionId_t regionId; + struct Reg_SignalRequestPackage__regExtValue { + Reg_SignalRequestPackage__regExtValue_PR present; + union Reg_SignalRequestPackage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequestPackage_t; +typedef struct Reg_SignalRequest { + RegionId_t regionId; + struct Reg_SignalRequest__regExtValue { + Reg_SignalRequest__regExtValue_PR present; + union Reg_SignalRequest__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalRequest_t; +typedef struct Reg_SignalStatusMessage { + RegionId_t regionId; + struct Reg_SignalStatusMessage__regExtValue { + Reg_SignalStatusMessage__regExtValue_PR present; + union Reg_SignalStatusMessage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusMessage_t; +typedef struct Reg_SignalStatusPackage { + RegionId_t regionId; + struct Reg_SignalStatusPackage__regExtValue { + Reg_SignalStatusPackage__regExtValue_PR present; + union Reg_SignalStatusPackage__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatusPackage_t; +typedef struct Reg_SignalStatus { + RegionId_t regionId; + struct Reg_SignalStatus__regExtValue { + Reg_SignalStatus__regExtValue_PR present; + union Reg_SignalStatus__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SignalStatus_t; +typedef struct Reg_SPAT { + RegionId_t regionId; + struct Reg_SPAT__regExtValue { + Reg_SPAT__regExtValue_PR present; + union Reg_SPAT__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_SPAT_t; +typedef struct Reg_AdvisorySpeed { + RegionId_t regionId; + struct Reg_AdvisorySpeed__regExtValue { + Reg_AdvisorySpeed__regExtValue_PR present; + union Reg_AdvisorySpeed__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_AdvisorySpeed_t; +typedef struct Reg_ConnectionManeuverAssist { + RegionId_t regionId; + struct Reg_ConnectionManeuverAssist__regExtValue { + Reg_ConnectionManeuverAssist__regExtValue_PR present; + union Reg_ConnectionManeuverAssist__regExtValue_u { + ConnectionManeuverAssist_addGrpC_t ConnectionManeuverAssist_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_ConnectionManeuverAssist_t; +typedef struct Reg_IntersectionState { + RegionId_t regionId; + struct Reg_IntersectionState__regExtValue { + Reg_IntersectionState__regExtValue_PR present; + union Reg_IntersectionState__regExtValue_u { + IntersectionState_addGrpC_t IntersectionState_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_IntersectionState_t; +typedef struct Reg_MovementEvent { + RegionId_t regionId; + struct Reg_MovementEvent__regExtValue { + Reg_MovementEvent__regExtValue_PR present; + union Reg_MovementEvent__regExtValue_u { + MovementEvent_addGrpB_t MovementEvent_addGrpB; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementEvent_t; +typedef struct Reg_MovementState { + RegionId_t regionId; + struct Reg_MovementState__regExtValue { + Reg_MovementState__regExtValue_PR present; + union Reg_MovementState__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_MovementState_t; +typedef struct Reg_TestMessage00 { + RegionId_t regionId; + struct Reg_TestMessage00__regExtValue { + Reg_TestMessage00__regExtValue_PR present; + union Reg_TestMessage00__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage00_t; +typedef struct Reg_TestMessage01 { + RegionId_t regionId; + struct Reg_TestMessage01__regExtValue { + Reg_TestMessage01__regExtValue_PR present; + union Reg_TestMessage01__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage01_t; +typedef struct Reg_TestMessage02 { + RegionId_t regionId; + struct Reg_TestMessage02__regExtValue { + Reg_TestMessage02__regExtValue_PR present; + union Reg_TestMessage02__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage02_t; +typedef struct Reg_TestMessage03 { + RegionId_t regionId; + struct Reg_TestMessage03__regExtValue { + Reg_TestMessage03__regExtValue_PR present; + union Reg_TestMessage03__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage03_t; +typedef struct Reg_TestMessage04 { + RegionId_t regionId; + struct Reg_TestMessage04__regExtValue { + Reg_TestMessage04__regExtValue_PR present; + union Reg_TestMessage04__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage04_t; +typedef struct Reg_TestMessage05 { + RegionId_t regionId; + struct Reg_TestMessage05__regExtValue { + Reg_TestMessage05__regExtValue_PR present; + union Reg_TestMessage05__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage05_t; +typedef struct Reg_TestMessage06 { + RegionId_t regionId; + struct Reg_TestMessage06__regExtValue { + Reg_TestMessage06__regExtValue_PR present; + union Reg_TestMessage06__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage06_t; +typedef struct Reg_TestMessage07 { + RegionId_t regionId; + struct Reg_TestMessage07__regExtValue { + Reg_TestMessage07__regExtValue_PR present; + union Reg_TestMessage07__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage07_t; +typedef struct Reg_TestMessage08 { + RegionId_t regionId; + struct Reg_TestMessage08__regExtValue { + Reg_TestMessage08__regExtValue_PR present; + union Reg_TestMessage08__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage08_t; +typedef struct Reg_TestMessage09 { + RegionId_t regionId; + struct Reg_TestMessage09__regExtValue { + Reg_TestMessage09__regExtValue_PR present; + union Reg_TestMessage09__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage09_t; +typedef struct Reg_TestMessage10 { + RegionId_t regionId; + struct Reg_TestMessage10__regExtValue { + Reg_TestMessage10__regExtValue_PR present; + union Reg_TestMessage10__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage10_t; +typedef struct Reg_TestMessage11 { + RegionId_t regionId; + struct Reg_TestMessage11__regExtValue { + Reg_TestMessage11__regExtValue_PR present; + union Reg_TestMessage11__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage11_t; +typedef struct Reg_TestMessage12 { + RegionId_t regionId; + struct Reg_TestMessage12__regExtValue { + Reg_TestMessage12__regExtValue_PR present; + union Reg_TestMessage12__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage12_t; +typedef struct Reg_TestMessage13 { + RegionId_t regionId; + struct Reg_TestMessage13__regExtValue { + Reg_TestMessage13__regExtValue_PR present; + union Reg_TestMessage13__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage13_t; +typedef struct Reg_TestMessage14 { + RegionId_t regionId; + struct Reg_TestMessage14__regExtValue { + Reg_TestMessage14__regExtValue_PR present; + union Reg_TestMessage14__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage14_t; +typedef struct Reg_TestMessage15 { + RegionId_t regionId; + struct Reg_TestMessage15__regExtValue { + Reg_TestMessage15__regExtValue_PR present; + union Reg_TestMessage15__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TestMessage15_t; +typedef struct Reg_TravelerInformation { + RegionId_t regionId; + struct Reg_TravelerInformation__regExtValue { + Reg_TravelerInformation__regExtValue_PR present; + union Reg_TravelerInformation__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_TravelerInformation_t; +typedef struct Reg_GeographicalPath { + RegionId_t regionId; + struct Reg_GeographicalPath__regExtValue { + Reg_GeographicalPath__regExtValue_PR present; + union Reg_GeographicalPath__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_GeographicalPath_t; +typedef struct Reg_GeometricProjection { + RegionId_t regionId; + struct Reg_GeometricProjection__regExtValue { + Reg_GeometricProjection__regExtValue_PR present; + union Reg_GeometricProjection__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_GeometricProjection_t; +typedef struct Reg_NodeAttributeSetLL { + RegionId_t regionId; + struct Reg_NodeAttributeSetLL__regExtValue { + Reg_NodeAttributeSetLL__regExtValue_PR present; + union Reg_NodeAttributeSetLL__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeAttributeSetLL_t; +typedef struct Reg_NodeOffsetPointLL { + RegionId_t regionId; + struct Reg_NodeOffsetPointLL__regExtValue { + Reg_NodeOffsetPointLL__regExtValue_PR present; + union Reg_NodeOffsetPointLL__regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reg_NodeOffsetPointLL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Reg_BasicSafetyMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_BasicSafetyMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_Reg_BasicSafetyMessage_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_EventDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_EventDescription_specs_4; +extern asn_TYPE_member_t asn_MBR_Reg_EventDescription_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SupplementalVehicleExtensions; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SupplementalVehicleExtensions_specs_7; +extern asn_TYPE_member_t asn_MBR_Reg_SupplementalVehicleExtensions_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_10; +extern asn_TYPE_member_t asn_MBR_Reg_ComputedLane_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_13; +extern asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_16; +extern asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_19; +extern asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_22; +extern asn_TYPE_member_t asn_MBR_Reg_Position3D_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_25; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorType_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_VehicleClassification; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_VehicleClassification_specs_28; +extern asn_TYPE_member_t asn_MBR_Reg_VehicleClassification_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_VerticalOffset; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_VerticalOffset_specs_31; +extern asn_TYPE_member_t asn_MBR_Reg_VerticalOffset_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_CommonSafetyRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_CommonSafetyRequest_specs_34; +extern asn_TYPE_member_t asn_MBR_Reg_CommonSafetyRequest_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_EmergencyVehicleAlert; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_EmergencyVehicleAlert_specs_37; +extern asn_TYPE_member_t asn_MBR_Reg_EmergencyVehicleAlert_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionCollision; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionCollision_specs_40; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionCollision_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_43; +extern asn_TYPE_member_t asn_MBR_Reg_MapData_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_46; +extern asn_TYPE_member_t asn_MBR_Reg_GenericLane_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_49; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_52; +extern asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_55; +extern asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_58; +extern asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_61; +extern asn_TYPE_member_t asn_MBR_Reg_RoadSegment_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NMEAcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NMEAcorrections_specs_64; +extern asn_TYPE_member_t asn_MBR_Reg_NMEAcorrections_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_PersonalSafetyMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_PersonalSafetyMessage_specs_67; +extern asn_TYPE_member_t asn_MBR_Reg_PersonalSafetyMessage_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ProbeDataManagement; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ProbeDataManagement_specs_70; +extern asn_TYPE_member_t asn_MBR_Reg_ProbeDataManagement_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ProbeVehicleData; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ProbeVehicleData_specs_73; +extern asn_TYPE_member_t asn_MBR_Reg_ProbeVehicleData_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RoadSideAlert; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSideAlert_specs_76; +extern asn_TYPE_member_t asn_MBR_Reg_RoadSideAlert_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_79; +extern asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_79[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_82; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_82[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_85; +extern asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_85[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_88; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_88[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_91; +extern asn_TYPE_member_t asn_MBR_Reg_SignalRequest_91[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_94; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_94[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_97; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_97[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_100; +extern asn_TYPE_member_t asn_MBR_Reg_SignalStatus_100[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_103; +extern asn_TYPE_member_t asn_MBR_Reg_SPAT_103[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_106; +extern asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_106[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_109; +extern asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_109[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_112; +extern asn_TYPE_member_t asn_MBR_Reg_IntersectionState_112[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_115; +extern asn_TYPE_member_t asn_MBR_Reg_MovementEvent_115[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_118; +extern asn_TYPE_member_t asn_MBR_Reg_MovementState_118[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage00; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage00_specs_121; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage00_121[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage01; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage01_specs_124; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage01_124[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage02; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage02_specs_127; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage02_127[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage03; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage03_specs_130; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage03_130[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage04; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage04_specs_133; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage04_133[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage05; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage05_specs_136; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage05_136[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage06; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage06_specs_139; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage06_139[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage07; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage07_specs_142; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage07_142[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage08; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage08_specs_145; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage08_145[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage09; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage09_specs_148; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage09_148[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage10; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage10_specs_151; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage10_151[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage11; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage11_specs_154; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage11_154[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage12; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage12_specs_157; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage12_157[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage13; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage13_specs_160; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage13_160[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage14; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage14_specs_163; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage14_163[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage15; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage15_specs_166; +extern asn_TYPE_member_t asn_MBR_Reg_TestMessage15_166[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_TravelerInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_TravelerInformation_specs_169; +extern asn_TYPE_member_t asn_MBR_Reg_TravelerInformation_169[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_GeographicalPath; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_GeographicalPath_specs_172; +extern asn_TYPE_member_t asn_MBR_Reg_GeographicalPath_172[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_GeometricProjection; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_GeometricProjection_specs_175; +extern asn_TYPE_member_t asn_MBR_Reg_GeometricProjection_175[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetLL; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetLL_specs_178; +extern asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetLL_178[2]; +extern asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointLL; +extern asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointLL_specs_181; +extern asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointLL_181[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegionalExtension_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RegulatorySpeedLimit.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegulatorySpeedLimit.h new file mode 100644 index 000000000..8a461d2ae --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RegulatorySpeedLimit.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RegulatorySpeedLimit_H_ +#define _RegulatorySpeedLimit_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SpeedLimitType.h" +#include "Velocity.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RegulatorySpeedLimit */ +typedef struct RegulatorySpeedLimit { + SpeedLimitType_t type; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegulatorySpeedLimit_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestID.h new file mode 100644 index 000000000..4b19a8aaf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RequestID_H_ +#define _RequestID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestID */ +typedef long RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestID; +asn_struct_free_f RequestID_free; +asn_struct_print_f RequestID_print; +asn_constr_check_f RequestID_constraint; +ber_type_decoder_f RequestID_decode_ber; +der_type_encoder_f RequestID_encode_der; +xer_type_decoder_f RequestID_decode_xer; +xer_type_encoder_f RequestID_encode_xer; +jer_type_encoder_f RequestID_encode_jer; +oer_type_decoder_f RequestID_decode_oer; +oer_type_encoder_f RequestID_encode_oer; +per_type_decoder_f RequestID_decode_uper; +per_type_encoder_f RequestID_encode_uper; +per_type_decoder_f RequestID_decode_aper; +per_type_encoder_f RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestImportanceLevel.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestImportanceLevel.h new file mode 100644 index 000000000..7ef476dd8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestImportanceLevel.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RequestImportanceLevel_H_ +#define _RequestImportanceLevel_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestImportanceLevel { + RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + RequestImportanceLevel_requestImportanceLevel1 = 1, + RequestImportanceLevel_requestImportanceLevel2 = 2, + RequestImportanceLevel_requestImportanceLevel3 = 3, + RequestImportanceLevel_requestImportanceLevel4 = 4, + RequestImportanceLevel_requestImportanceLevel5 = 5, + RequestImportanceLevel_requestImportanceLevel6 = 6, + RequestImportanceLevel_requestImportanceLevel7 = 7, + RequestImportanceLevel_requestImportanceLevel8 = 8, + RequestImportanceLevel_requestImportanceLevel9 = 9, + RequestImportanceLevel_requestImportanceLevel10 = 10, + RequestImportanceLevel_requestImportanceLevel11 = 11, + RequestImportanceLevel_requestImportanceLevel12 = 12, + RequestImportanceLevel_requestImportanceLevel13 = 13, + RequestImportanceLevel_requestImportanceLevel14 = 14, + RequestImportanceLevel_requestImportanceReserved = 15 +} e_RequestImportanceLevel; + +/* RequestImportanceLevel */ +typedef long RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1; +asn_struct_free_f RequestImportanceLevel_free; +asn_struct_print_f RequestImportanceLevel_print; +asn_constr_check_f RequestImportanceLevel_constraint; +ber_type_decoder_f RequestImportanceLevel_decode_ber; +der_type_encoder_f RequestImportanceLevel_encode_der; +xer_type_decoder_f RequestImportanceLevel_decode_xer; +xer_type_encoder_f RequestImportanceLevel_encode_xer; +jer_type_encoder_f RequestImportanceLevel_encode_jer; +oer_type_decoder_f RequestImportanceLevel_decode_oer; +oer_type_encoder_f RequestImportanceLevel_encode_oer; +per_type_decoder_f RequestImportanceLevel_decode_uper; +per_type_encoder_f RequestImportanceLevel_encode_uper; +per_type_decoder_f RequestImportanceLevel_decode_aper; +per_type_encoder_f RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestImportanceLevel_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestSubRole.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestSubRole.h new file mode 100644 index 000000000..337c3962c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestSubRole.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RequestSubRole_H_ +#define _RequestSubRole_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestSubRole { + RequestSubRole_requestSubRoleUnKnown = 0, + RequestSubRole_requestSubRole1 = 1, + RequestSubRole_requestSubRole2 = 2, + RequestSubRole_requestSubRole3 = 3, + RequestSubRole_requestSubRole4 = 4, + RequestSubRole_requestSubRole5 = 5, + RequestSubRole_requestSubRole6 = 6, + RequestSubRole_requestSubRole7 = 7, + RequestSubRole_requestSubRole8 = 8, + RequestSubRole_requestSubRole9 = 9, + RequestSubRole_requestSubRole10 = 10, + RequestSubRole_requestSubRole11 = 11, + RequestSubRole_requestSubRole12 = 12, + RequestSubRole_requestSubRole13 = 13, + RequestSubRole_requestSubRole14 = 14, + RequestSubRole_requestSubRoleReserved = 15 +} e_RequestSubRole; + +/* RequestSubRole */ +typedef long RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1; +asn_struct_free_f RequestSubRole_free; +asn_struct_print_f RequestSubRole_print; +asn_constr_check_f RequestSubRole_constraint; +ber_type_decoder_f RequestSubRole_decode_ber; +der_type_encoder_f RequestSubRole_encode_der; +xer_type_decoder_f RequestSubRole_decode_xer; +xer_type_encoder_f RequestSubRole_encode_xer; +jer_type_encoder_f RequestSubRole_encode_jer; +oer_type_decoder_f RequestSubRole_decode_oer; +oer_type_encoder_f RequestSubRole_encode_oer; +per_type_decoder_f RequestSubRole_decode_uper; +per_type_encoder_f RequestSubRole_encode_uper; +per_type_decoder_f RequestSubRole_decode_aper; +per_type_encoder_f RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestSubRole_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestedItem.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestedItem.h new file mode 100644 index 000000000..ee05f077b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestedItem.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CommonSafetyRequest" + * found in "J2735-CommonSafetyRequest.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RequestedItem_H_ +#define _RequestedItem_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestedItem { + RequestedItem_reserved = 0, + RequestedItem_itemA = 1, + RequestedItem_itemB = 2, + RequestedItem_itemC = 3, + RequestedItem_itemD = 4, + RequestedItem_itemE = 5, + RequestedItem_itemF = 6, + RequestedItem_itemG = 7, + RequestedItem_itemI = 8, + RequestedItem_itemJ = 9, + RequestedItem_itemK = 10, + RequestedItem_itemL = 11, + RequestedItem_itemM = 12, + RequestedItem_itemN = 13, + RequestedItem_itemO = 14, + RequestedItem_itemP = 15, + RequestedItem_itemQ = 16 + /* + * Enumeration is extensible + */ +} e_RequestedItem; + +/* RequestedItem */ +typedef long RequestedItem_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RequestedItem_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RequestedItem; +extern const asn_INTEGER_specifics_t asn_SPC_RequestedItem_specs_1; +asn_struct_free_f RequestedItem_free; +asn_struct_print_f RequestedItem_print; +asn_constr_check_f RequestedItem_constraint; +ber_type_decoder_f RequestedItem_decode_ber; +der_type_encoder_f RequestedItem_encode_der; +xer_type_decoder_f RequestedItem_decode_xer; +xer_type_encoder_f RequestedItem_encode_xer; +jer_type_encoder_f RequestedItem_encode_jer; +oer_type_decoder_f RequestedItem_decode_oer; +oer_type_encoder_f RequestedItem_encode_oer; +per_type_decoder_f RequestedItem_decode_uper; +per_type_encoder_f RequestedItem_encode_uper; +per_type_decoder_f RequestedItem_decode_aper; +per_type_encoder_f RequestedItem_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestedItem_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestedItemList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestedItemList.h new file mode 100644 index 000000000..9dd2a0774 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestedItemList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CommonSafetyRequest" + * found in "J2735-CommonSafetyRequest.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RequestedItemList_H_ +#define _RequestedItemList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RequestedItem.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestedItemList */ +typedef struct RequestedItemList { + A_SEQUENCE_OF(RequestedItem_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestedItemList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestedItemList; +extern asn_SET_OF_specifics_t asn_SPC_RequestedItemList_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestedItemList_1[1]; +extern asn_per_constraints_t asn_PER_type_RequestedItemList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestedItemList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorDescription.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorDescription.h new file mode 100644 index 000000000..ba1b69234 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorDescription.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RequestorDescription_H_ +#define _RequestorDescription_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VehicleID.h" +#include "DescriptiveName.h" +#include "TransitVehicleStatus.h" +#include "TransitVehicleOccupancy.h" +#include "DeltaTime.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; +struct RequestorPositionVector; +struct Reg_RequestorDescription; + +/* RequestorDescription */ +typedef struct RequestorDescription { + VehicleID_t id; + struct RequestorType *type; /* OPTIONAL */ + struct RequestorPositionVector *position; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + DescriptiveName_t *routeName; /* OPTIONAL */ + TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct RequestorDescription__regional { + A_SEQUENCE_OF(struct Reg_RequestorDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorDescription_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorPositionVector.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorPositionVector.h new file mode 100644 index 000000000..a507b821b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorPositionVector.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RequestorPositionVector_H_ +#define _RequestorPositionVector_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Position3D.h" +#include "Common_Angle.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TransmissionAndSpeed; + +/* RequestorPositionVector */ +typedef struct RequestorPositionVector { + Position3D_t position; + Common_Angle_t *heading; /* OPTIONAL */ + struct TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorPositionVector_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorType.h new file mode 100644 index 000000000..44f832599 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RequestorType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RequestorType_H_ +#define _RequestorType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BasicVehicleRole.h" +#include "RequestSubRole.h" +#include "RequestImportanceLevel.h" +#include "Iso3833VehicleType.h" +#include "VehicleType.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_RequestorType; + +/* RequestorType */ +typedef struct RequestorType { + BasicVehicleRole_t role; + RequestSubRole_t *subrole; /* OPTIONAL */ + RequestImportanceLevel_t *request; /* OPTIONAL */ + Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + VehicleType_t *hpmsType; /* OPTIONAL */ + struct Reg_RequestorType *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestorType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ResponderGroupAffected.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ResponderGroupAffected.h new file mode 100644 index 000000000..ff471f2d4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ResponderGroupAffected.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ResponderGroupAffected_H_ +#define _ResponderGroupAffected_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ResponderGroupAffected { + ResponderGroupAffected_emergency_vehicle_units = 9729, + ResponderGroupAffected_federal_law_enforcement_units = 9730, + ResponderGroupAffected_state_police_units = 9731, + ResponderGroupAffected_county_police_units = 9732, + ResponderGroupAffected_local_police_units = 9733, + ResponderGroupAffected_ambulance_units = 9734, + ResponderGroupAffected_rescue_units = 9735, + ResponderGroupAffected_fire_units = 9736, + ResponderGroupAffected_hAZMAT_units = 9737, + ResponderGroupAffected_light_tow_unit = 9738, + ResponderGroupAffected_heavy_tow_unit = 9739, + ResponderGroupAffected_freeway_service_patrols = 9740, + ResponderGroupAffected_transportation_response_units = 9741, + ResponderGroupAffected_private_contractor_response_units = 9742 + /* + * Enumeration is extensible + */ +} e_ResponderGroupAffected; + +/* ResponderGroupAffected */ +typedef long ResponderGroupAffected_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ResponderGroupAffected_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ResponderGroupAffected; +extern const asn_INTEGER_specifics_t asn_SPC_ResponderGroupAffected_specs_1; +asn_struct_free_f ResponderGroupAffected_free; +asn_struct_print_f ResponderGroupAffected_print; +asn_constr_check_f ResponderGroupAffected_constraint; +ber_type_decoder_f ResponderGroupAffected_decode_ber; +der_type_encoder_f ResponderGroupAffected_encode_der; +xer_type_decoder_f ResponderGroupAffected_decode_xer; +xer_type_encoder_f ResponderGroupAffected_encode_xer; +jer_type_encoder_f ResponderGroupAffected_encode_jer; +oer_type_decoder_f ResponderGroupAffected_decode_oer; +oer_type_encoder_f ResponderGroupAffected_encode_oer; +per_type_decoder_f ResponderGroupAffected_decode_uper; +per_type_encoder_f ResponderGroupAffected_encode_uper; +per_type_decoder_f ResponderGroupAffected_decode_aper; +per_type_encoder_f ResponderGroupAffected_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResponderGroupAffected_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ResponseType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ResponseType.h new file mode 100644 index 000000000..0789df901 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ResponseType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ResponseType_H_ +#define _ResponseType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ResponseType { + ResponseType_notInUseOrNotEquipped = 0, + ResponseType_emergency = 1, + ResponseType_nonEmergency = 2, + ResponseType_pursuit = 3, + ResponseType_stationary = 4, + ResponseType_slowMoving = 5, + ResponseType_stopAndGoMovement = 6 + /* + * Enumeration is extensible + */ +} e_ResponseType; + +/* ResponseType */ +typedef long ResponseType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ResponseType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ResponseType; +extern const asn_INTEGER_specifics_t asn_SPC_ResponseType_specs_1; +asn_struct_free_f ResponseType_free; +asn_struct_print_f ResponseType_print; +asn_constr_check_f ResponseType_constraint; +ber_type_decoder_f ResponseType_decode_ber; +der_type_encoder_f ResponseType_encode_der; +xer_type_decoder_f ResponseType_decode_xer; +xer_type_encoder_f ResponseType_encode_xer; +jer_type_encoder_f ResponseType_encode_jer; +oer_type_decoder_f ResponseType_decode_oer; +oer_type_encoder_f ResponseType_encode_oer; +per_type_decoder_f ResponseType_decode_uper; +per_type_encoder_f ResponseType_encode_uper; +per_type_decoder_f ResponseType_decode_aper; +per_type_encoder_f ResponseType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResponseType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionAppliesTo.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionAppliesTo.h new file mode 100644 index 000000000..df72ab00b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionAppliesTo.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RestrictionAppliesTo_H_ +#define _RestrictionAppliesTo_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionAppliesTo { + RestrictionAppliesTo_none = 0, + RestrictionAppliesTo_equippedTransit = 1, + RestrictionAppliesTo_equippedTaxis = 2, + RestrictionAppliesTo_equippedOther = 3, + RestrictionAppliesTo_emissionCompliant = 4, + RestrictionAppliesTo_equippedBicycle = 5, + RestrictionAppliesTo_weightCompliant = 6, + RestrictionAppliesTo_heightCompliant = 7, + RestrictionAppliesTo_pedestrians = 8, + RestrictionAppliesTo_slowMovingPersons = 9, + RestrictionAppliesTo_wheelchairUsers = 10, + RestrictionAppliesTo_visualDisabilities = 11, + RestrictionAppliesTo_audioDisabilities = 12, + RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_RestrictionAppliesTo; + +/* RestrictionAppliesTo */ +typedef long RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1; +asn_struct_free_f RestrictionAppliesTo_free; +asn_struct_print_f RestrictionAppliesTo_print; +asn_constr_check_f RestrictionAppliesTo_constraint; +ber_type_decoder_f RestrictionAppliesTo_decode_ber; +der_type_encoder_f RestrictionAppliesTo_encode_der; +xer_type_decoder_f RestrictionAppliesTo_decode_xer; +xer_type_encoder_f RestrictionAppliesTo_encode_xer; +jer_type_encoder_f RestrictionAppliesTo_encode_jer; +oer_type_decoder_f RestrictionAppliesTo_decode_oer; +oer_type_encoder_f RestrictionAppliesTo_encode_oer; +per_type_decoder_f RestrictionAppliesTo_decode_uper; +per_type_encoder_f RestrictionAppliesTo_encode_uper; +per_type_decoder_f RestrictionAppliesTo_decode_aper; +per_type_encoder_f RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionAppliesTo_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassAssignment.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassAssignment.h new file mode 100644 index 000000000..a88bc7fce --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassAssignment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RestrictionClassAssignment_H_ +#define _RestrictionClassAssignment_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RestrictionClassID.h" +#include "RestrictionUserTypeList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassAssignment */ +typedef struct RestrictionClassAssignment { + RestrictionClassID_t id; + RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassAssignment_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassID.h new file mode 100644 index 000000000..0a2c49ff1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RestrictionClassID_H_ +#define _RestrictionClassID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionClassID */ +typedef long RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassID; +asn_struct_free_f RestrictionClassID_free; +asn_struct_print_f RestrictionClassID_print; +asn_constr_check_f RestrictionClassID_constraint; +ber_type_decoder_f RestrictionClassID_decode_ber; +der_type_encoder_f RestrictionClassID_encode_der; +xer_type_decoder_f RestrictionClassID_decode_xer; +xer_type_encoder_f RestrictionClassID_encode_xer; +jer_type_encoder_f RestrictionClassID_encode_jer; +oer_type_decoder_f RestrictionClassID_decode_oer; +oer_type_encoder_f RestrictionClassID_encode_oer; +per_type_decoder_f RestrictionClassID_decode_uper; +per_type_encoder_f RestrictionClassID_encode_uper; +per_type_decoder_f RestrictionClassID_decode_aper; +per_type_encoder_f RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassList.h new file mode 100644 index 000000000..16a6a9d70 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionClassList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RestrictionClassList_H_ +#define _RestrictionClassList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionClassAssignment; + +/* RestrictionClassList */ +typedef struct RestrictionClassList { + A_SEQUENCE_OF(struct RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionClassList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserType-addGrpC.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserType-addGrpC.h new file mode 100644 index 000000000..fbb9638eb --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserType-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RestrictionUserType_addGrpC_H_ +#define _RestrictionUserType_addGrpC_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "EmissionType.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RestrictionUserType-addGrpC */ +typedef struct RestrictionUserType_addGrpC { + EmissionType_t *emission; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_addGrpC_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserType.h new file mode 100644 index 000000000..0a054aab7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserType.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RestrictionUserType_H_ +#define _RestrictionUserType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RestrictionAppliesTo.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RestrictionUserType_PR { + RestrictionUserType_PR_NOTHING, /* No components present */ + RestrictionUserType_PR_basicType, + RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} RestrictionUserType_PR; + +/* Forward declarations */ +struct Reg_RestrictionUserType; + +/* RestrictionUserType */ +typedef struct RestrictionUserType { + RestrictionUserType_PR present; + union RestrictionUserType_u { + RestrictionAppliesTo_t basicType; + struct RestrictionUserType__regional { + A_SEQUENCE_OF(struct Reg_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserTypeList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserTypeList.h new file mode 100644 index 000000000..987db4cd7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RestrictionUserTypeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RestrictionUserTypeList_H_ +#define _RestrictionUserTypeList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RestrictionUserType; + +/* RestrictionUserTypeList */ +typedef struct RestrictionUserTypeList { + A_SEQUENCE_OF(struct RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RestrictionUserTypeList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadLaneSetList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadLaneSetList.h new file mode 100644 index 000000000..891d89115 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadLaneSetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RoadLaneSetList_H_ +#define _RoadLaneSetList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GenericLane; + +/* RoadLaneSetList */ +typedef struct RoadLaneSetList { + A_SEQUENCE_OF(struct GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadLaneSetList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadRegulatorID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadRegulatorID.h new file mode 100644 index 000000000..bd52cf99c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadRegulatorID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RoadRegulatorID_H_ +#define _RoadRegulatorID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadRegulatorID */ +typedef long RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID; +asn_struct_free_f RoadRegulatorID_free; +asn_struct_print_f RoadRegulatorID_print; +asn_constr_check_f RoadRegulatorID_constraint; +ber_type_decoder_f RoadRegulatorID_decode_ber; +der_type_encoder_f RoadRegulatorID_encode_der; +xer_type_decoder_f RoadRegulatorID_decode_xer; +xer_type_encoder_f RoadRegulatorID_encode_xer; +jer_type_encoder_f RoadRegulatorID_encode_jer; +oer_type_decoder_f RoadRegulatorID_decode_oer; +oer_type_encoder_f RoadRegulatorID_encode_oer; +per_type_decoder_f RoadRegulatorID_decode_uper; +per_type_encoder_f RoadRegulatorID_encode_uper; +per_type_decoder_f RoadRegulatorID_decode_aper; +per_type_encoder_f RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadRegulatorID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegment.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegment.h new file mode 100644 index 000000000..de3176cce --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegment.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RoadSegment_H_ +#define _RoadSegment_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "RoadSegmentReferenceID.h" +#include "Common_MsgCount.h" +#include "Position3D.h" +#include "LaneWidth.h" +#include "RoadLaneSetList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SpeedLimitList; +struct Reg_RoadSegment; + +/* RoadSegment */ +typedef struct RoadSegment { + DescriptiveName_t *name; /* OPTIONAL */ + RoadSegmentReferenceID_t id; + Common_MsgCount_t revision; + Position3D_t refPoint; + LaneWidth_t *laneWidth; /* OPTIONAL */ + struct SpeedLimitList *speedLimits; /* OPTIONAL */ + RoadLaneSetList_t roadLaneSet; + struct RoadSegment__regional { + A_SEQUENCE_OF(struct Reg_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegment_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentID.h new file mode 100644 index 000000000..011edaabe --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RoadSegmentID_H_ +#define _RoadSegmentID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentID */ +typedef long RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentID; +asn_struct_free_f RoadSegmentID_free; +asn_struct_print_f RoadSegmentID_print; +asn_constr_check_f RoadSegmentID_constraint; +ber_type_decoder_f RoadSegmentID_decode_ber; +der_type_encoder_f RoadSegmentID_encode_der; +xer_type_decoder_f RoadSegmentID_decode_xer; +xer_type_encoder_f RoadSegmentID_encode_xer; +jer_type_encoder_f RoadSegmentID_encode_jer; +oer_type_decoder_f RoadSegmentID_decode_oer; +oer_type_encoder_f RoadSegmentID_encode_oer; +per_type_decoder_f RoadSegmentID_decode_uper; +per_type_encoder_f RoadSegmentID_encode_uper; +per_type_decoder_f RoadSegmentID_decode_aper; +per_type_encoder_f RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentList.h new file mode 100644 index 000000000..32afed22e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RoadSegmentList_H_ +#define _RoadSegmentList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RoadSegment; + +/* RoadSegmentList */ +typedef struct RoadSegmentList { + A_SEQUENCE_OF(struct RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentReferenceID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentReferenceID.h new file mode 100644 index 000000000..90311f564 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSegmentReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RoadSegmentReferenceID_H_ +#define _RoadSegmentReferenceID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RoadRegulatorID.h" +#include "RoadSegmentID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSegmentReferenceID */ +typedef struct RoadSegmentReferenceID { + RoadRegulatorID_t *region; /* OPTIONAL */ + RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSegmentReferenceID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSideAlert.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSideAlert.h new file mode 100644 index 000000000..bf4ff9e61 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSideAlert.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "RoadSideAlert" + * found in "J2735-RoadSideAlert.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RoadSideAlert_H_ +#define _RoadSideAlert_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Common_MsgCount.h" +#include "MinuteOfTheYear.h" +#include "ITIScodes.h" +#include "Priority.h" +#include "HeadingSlice.h" +#include "Extent.h" +#include "FurtherInfoID.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FullPositionVector; +struct Reg_RoadSideAlert; + +/* RoadSideAlert */ +typedef struct RoadSideAlert { + Common_MsgCount_t msgCnt; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + ITIScodes_t typeEvent; + struct RoadSideAlert__description { + A_SEQUENCE_OF(ITIScodes_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *description; + Priority_t *priority; /* OPTIONAL */ + HeadingSlice_t *heading; /* OPTIONAL */ + Extent_t *extent; /* OPTIONAL */ + struct FullPositionVector *position; /* OPTIONAL */ + FurtherInfoID_t *furtherInfoID; /* OPTIONAL */ + struct RoadSideAlert__regional { + A_SEQUENCE_OF(struct Reg_RoadSideAlert) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSideAlert_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSideAlert; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSideAlert_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSideAlert_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSideAlert_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSignID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSignID.h new file mode 100644 index 000000000..2215220f5 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadSignID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RoadSignID_H_ +#define _RoadSignID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Position3D.h" +#include "HeadingSlice.h" +#include "MUTCDCode.h" +#include "MsgCRC.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadSignID */ +typedef struct RoadSignID { + Position3D_t position; + HeadingSlice_t viewAngle; + MUTCDCode_t *mutcdCode; /* OPTIONAL */ + MsgCRC_t *crc; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RoadSignID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RoadSignID; +extern asn_SEQUENCE_specifics_t asn_SPC_RoadSignID_specs_1; +extern asn_TYPE_member_t asn_MBR_RoadSignID_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadSignID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadwayCrownAngle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadwayCrownAngle.h new file mode 100644 index 000000000..d38be1eed --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/RoadwayCrownAngle.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _RoadwayCrownAngle_H_ +#define _RoadwayCrownAngle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RoadwayCrownAngle */ +typedef long RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle; +asn_struct_free_f RoadwayCrownAngle_free; +asn_struct_print_f RoadwayCrownAngle_print; +asn_constr_check_f RoadwayCrownAngle_constraint; +ber_type_decoder_f RoadwayCrownAngle_decode_ber; +der_type_encoder_f RoadwayCrownAngle_encode_der; +xer_type_decoder_f RoadwayCrownAngle_decode_xer; +xer_type_encoder_f RoadwayCrownAngle_encode_xer; +jer_type_encoder_f RoadwayCrownAngle_encode_jer; +oer_type_decoder_f RoadwayCrownAngle_decode_oer; +oer_type_encoder_f RoadwayCrownAngle_encode_oer; +per_type_decoder_f RoadwayCrownAngle_decode_uper; +per_type_encoder_f RoadwayCrownAngle_encode_uper; +per_type_decoder_f RoadwayCrownAngle_decode_aper; +per_type_encoder_f RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RoadwayCrownAngle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SPAT.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SPAT.h new file mode 100644 index 000000000..5c2f0145e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SPAT.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SPAT_H_ +#define _SPAT_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DescriptiveName.h" +#include "IntersectionStateList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SPAT; + +/* SPAT */ +typedef struct SPAT { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DescriptiveName_t *name; /* OPTIONAL */ + IntersectionStateList_t intersections; + struct SPAT__regional { + A_SEQUENCE_OF(struct Reg_SPAT) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_SPAT_specs_1; +extern asn_TYPE_member_t asn_MBR_SPAT_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPAT_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SPAT_TimeMark.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SPAT_TimeMark.h new file mode 100644 index 000000000..021a5c2cf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SPAT_TimeMark.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SPAT_TimeMark_H_ +#define _SPAT_TimeMark_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SPAT_TimeMark */ +typedef long SPAT_TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SPAT_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SPAT_TimeMark; +asn_struct_free_f SPAT_TimeMark_free; +asn_struct_print_f SPAT_TimeMark_print; +asn_constr_check_f SPAT_TimeMark_constraint; +ber_type_decoder_f SPAT_TimeMark_decode_ber; +der_type_encoder_f SPAT_TimeMark_encode_der; +xer_type_decoder_f SPAT_TimeMark_decode_xer; +xer_type_encoder_f SPAT_TimeMark_encode_xer; +jer_type_encoder_f SPAT_TimeMark_encode_jer; +oer_type_decoder_f SPAT_TimeMark_decode_oer; +oer_type_encoder_f SPAT_TimeMark_encode_oer; +per_type_decoder_f SPAT_TimeMark_decode_uper; +per_type_encoder_f SPAT_TimeMark_encode_uper; +per_type_decoder_f SPAT_TimeMark_decode_aper; +per_type_encoder_f SPAT_TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPAT_TimeMark_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SSPindex.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SSPindex.h new file mode 100644 index 000000000..81eb2cb3f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SSPindex.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SSPindex_H_ +#define _SSPindex_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SSPindex */ +typedef long SSPindex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SSPindex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SSPindex; +asn_struct_free_f SSPindex_free; +asn_struct_print_f SSPindex_print; +asn_constr_check_f SSPindex_constraint; +ber_type_decoder_f SSPindex_decode_ber; +der_type_encoder_f SSPindex_encode_der; +xer_type_decoder_f SSPindex_decode_xer; +xer_type_encoder_f SSPindex_encode_xer; +jer_type_encoder_f SSPindex_encode_jer; +oer_type_decoder_f SSPindex_decode_oer; +oer_type_encoder_f SSPindex_encode_oer; +per_type_decoder_f SSPindex_decode_uper; +per_type_encoder_f SSPindex_encode_uper; +per_type_decoder_f SSPindex_decode_aper; +per_type_encoder_f SSPindex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SSPindex_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Sample.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Sample.h new file mode 100644 index 000000000..3afe1b9da --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Sample.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Sample_H_ +#define _Sample_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Sample */ +typedef struct Sample { + long sampleStart; + long sampleEnd; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Sample_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Sample; +extern asn_SEQUENCE_specifics_t asn_SPC_Sample_specs_1; +extern asn_TYPE_member_t asn_MBR_Sample_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Sample_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Scale-B12.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Scale-B12.h new file mode 100644 index 000000000..5b3502eb6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Scale-B12.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Scale_B12_H_ +#define _Scale_B12_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Scale-B12 */ +typedef long Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Scale_B12; +asn_struct_free_f Scale_B12_free; +asn_struct_print_f Scale_B12_print; +asn_constr_check_f Scale_B12_constraint; +ber_type_decoder_f Scale_B12_decode_ber; +der_type_encoder_f Scale_B12_encode_der; +xer_type_decoder_f Scale_B12_decode_xer; +xer_type_encoder_f Scale_B12_encode_xer; +jer_type_encoder_f Scale_B12_encode_jer; +oer_type_decoder_f Scale_B12_decode_oer; +oer_type_encoder_f Scale_B12_encode_oer; +per_type_decoder_f Scale_B12_decode_uper; +per_type_encoder_f Scale_B12_encode_uper; +per_type_decoder_f Scale_B12_decode_aper; +per_type_encoder_f Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Scale_B12_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Second.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Second.h new file mode 100644 index 000000000..4f2b7ef9e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Second.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Second_H_ +#define _Second_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Second */ +typedef long Second_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Second_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Second; +asn_struct_free_f Second_free; +asn_struct_print_f Second_print; +asn_constr_check_f Second_constraint; +ber_type_decoder_f Second_decode_ber; +der_type_encoder_f Second_encode_der; +xer_type_decoder_f Second_decode_xer; +xer_type_encoder_f Second_encode_xer; +jer_type_encoder_f Second_encode_jer; +oer_type_decoder_f Second_decode_oer; +oer_type_encoder_f Second_encode_oer; +per_type_decoder_f Second_decode_uper; +per_type_encoder_f Second_encode_uper; +per_type_decoder_f Second_decode_aper; +per_type_encoder_f Second_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Second_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SecondOfTime.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SecondOfTime.h new file mode 100644 index 000000000..d6ebce972 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SecondOfTime.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SecondOfTime_H_ +#define _SecondOfTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SecondOfTime */ +typedef long SecondOfTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SecondOfTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SecondOfTime; +asn_struct_free_f SecondOfTime_free; +asn_struct_print_f SecondOfTime_print; +asn_constr_check_f SecondOfTime_constraint; +ber_type_decoder_f SecondOfTime_decode_ber; +der_type_encoder_f SecondOfTime_encode_der; +xer_type_decoder_f SecondOfTime_decode_xer; +xer_type_encoder_f SecondOfTime_encode_xer; +jer_type_encoder_f SecondOfTime_encode_jer; +oer_type_decoder_f SecondOfTime_decode_oer; +oer_type_encoder_f SecondOfTime_encode_oer; +per_type_decoder_f SecondOfTime_decode_uper; +per_type_encoder_f SecondOfTime_encode_uper; +per_type_decoder_f SecondOfTime_decode_aper; +per_type_encoder_f SecondOfTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecondOfTime_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SecondsAngle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SecondsAngle.h new file mode 100644 index 000000000..0aa500f44 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SecondsAngle.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SecondsAngle_H_ +#define _SecondsAngle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SecondsAngle */ +typedef long SecondsAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SecondsAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SecondsAngle; +asn_struct_free_f SecondsAngle_free; +asn_struct_print_f SecondsAngle_print; +asn_constr_check_f SecondsAngle_constraint; +ber_type_decoder_f SecondsAngle_decode_ber; +der_type_encoder_f SecondsAngle_encode_der; +xer_type_decoder_f SecondsAngle_decode_xer; +xer_type_encoder_f SecondsAngle_encode_xer; +jer_type_encoder_f SecondsAngle_encode_jer; +oer_type_decoder_f SecondsAngle_decode_oer; +oer_type_encoder_f SecondsAngle_encode_oer; +per_type_decoder_f SecondsAngle_decode_uper; +per_type_encoder_f SecondsAngle_encode_uper; +per_type_decoder_f SecondsAngle_decode_aper; +per_type_encoder_f SecondsAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecondsAngle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeLL.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeLL.h new file mode 100644 index 000000000..7cf1048d3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeLL.h @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SegmentAttributeLL_H_ +#define _SegmentAttributeLL_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SegmentAttributeLL { + SegmentAttributeLL_reserved = 0, + SegmentAttributeLL_doNotBlock = 1, + SegmentAttributeLL_whiteLine = 2, + SegmentAttributeLL_mergingLaneLeft = 3, + SegmentAttributeLL_mergingLaneRight = 4, + SegmentAttributeLL_curbOnLeft = 5, + SegmentAttributeLL_curbOnRight = 6, + SegmentAttributeLL_loadingzoneOnLeft = 7, + SegmentAttributeLL_loadingzoneOnRight = 8, + SegmentAttributeLL_turnOutPointOnLeft = 9, + SegmentAttributeLL_turnOutPointOnRight = 10, + SegmentAttributeLL_adjacentParkingOnLeft = 11, + SegmentAttributeLL_adjacentParkingOnRight = 12, + SegmentAttributeLL_adjacentBikeLaneOnLeft = 13, + SegmentAttributeLL_adjacentBikeLaneOnRight = 14, + SegmentAttributeLL_sharedBikeLane = 15, + SegmentAttributeLL_bikeBoxInFront = 16, + SegmentAttributeLL_transitStopOnLeft = 17, + SegmentAttributeLL_transitStopOnRight = 18, + SegmentAttributeLL_transitStopInLane = 19, + SegmentAttributeLL_sharedWithTrackedVehicle = 20, + SegmentAttributeLL_safeIsland = 21, + SegmentAttributeLL_lowCurbsPresent = 22, + SegmentAttributeLL_rumbleStripPresent = 23, + SegmentAttributeLL_audibleSignalingPresent = 24, + SegmentAttributeLL_adaptiveTimingPresent = 25, + SegmentAttributeLL_rfSignalRequestPresent = 26, + SegmentAttributeLL_partialCurbIntrusion = 27, + SegmentAttributeLL_taperToLeft = 28, + SegmentAttributeLL_taperToRight = 29, + SegmentAttributeLL_taperToCenterLine = 30, + SegmentAttributeLL_parallelParking = 31, + SegmentAttributeLL_headInParking = 32, + SegmentAttributeLL_freeParking = 33, + SegmentAttributeLL_timeRestrictionsOnParking = 34, + SegmentAttributeLL_costToPark = 35, + SegmentAttributeLL_midBlockCurbPresent = 36, + SegmentAttributeLL_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_SegmentAttributeLL; + +/* SegmentAttributeLL */ +typedef long SegmentAttributeLL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SegmentAttributeLL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeLL; +extern const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeLL_specs_1; +asn_struct_free_f SegmentAttributeLL_free; +asn_struct_print_f SegmentAttributeLL_print; +asn_constr_check_f SegmentAttributeLL_constraint; +ber_type_decoder_f SegmentAttributeLL_decode_ber; +der_type_encoder_f SegmentAttributeLL_encode_der; +xer_type_decoder_f SegmentAttributeLL_decode_xer; +xer_type_encoder_f SegmentAttributeLL_encode_xer; +jer_type_encoder_f SegmentAttributeLL_encode_jer; +oer_type_decoder_f SegmentAttributeLL_decode_oer; +oer_type_encoder_f SegmentAttributeLL_encode_oer; +per_type_decoder_f SegmentAttributeLL_decode_uper; +per_type_encoder_f SegmentAttributeLL_encode_uper; +per_type_decoder_f SegmentAttributeLL_decode_aper; +per_type_encoder_f SegmentAttributeLL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeLL_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeLLList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeLLList.h new file mode 100644 index 000000000..9218d9ada --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeLLList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SegmentAttributeLLList_H_ +#define _SegmentAttributeLLList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SegmentAttributeLL.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SegmentAttributeLLList */ +typedef struct SegmentAttributeLLList { + A_SEQUENCE_OF(SegmentAttributeLL_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SegmentAttributeLLList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeLLList; +extern asn_SET_OF_specifics_t asn_SPC_SegmentAttributeLLList_specs_1; +extern asn_TYPE_member_t asn_MBR_SegmentAttributeLLList_1[1]; +extern asn_per_constraints_t asn_PER_type_SegmentAttributeLLList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeLLList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeXY.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeXY.h new file mode 100644 index 000000000..1185eb5ab --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeXY.h @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SegmentAttributeXY_H_ +#define _SegmentAttributeXY_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SegmentAttributeXY { + SegmentAttributeXY_reserved = 0, + SegmentAttributeXY_doNotBlock = 1, + SegmentAttributeXY_whiteLine = 2, + SegmentAttributeXY_mergingLaneLeft = 3, + SegmentAttributeXY_mergingLaneRight = 4, + SegmentAttributeXY_curbOnLeft = 5, + SegmentAttributeXY_curbOnRight = 6, + SegmentAttributeXY_loadingzoneOnLeft = 7, + SegmentAttributeXY_loadingzoneOnRight = 8, + SegmentAttributeXY_turnOutPointOnLeft = 9, + SegmentAttributeXY_turnOutPointOnRight = 10, + SegmentAttributeXY_adjacentParkingOnLeft = 11, + SegmentAttributeXY_adjacentParkingOnRight = 12, + SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + SegmentAttributeXY_sharedBikeLane = 15, + SegmentAttributeXY_bikeBoxInFront = 16, + SegmentAttributeXY_transitStopOnLeft = 17, + SegmentAttributeXY_transitStopOnRight = 18, + SegmentAttributeXY_transitStopInLane = 19, + SegmentAttributeXY_sharedWithTrackedVehicle = 20, + SegmentAttributeXY_safeIsland = 21, + SegmentAttributeXY_lowCurbsPresent = 22, + SegmentAttributeXY_rumbleStripPresent = 23, + SegmentAttributeXY_audibleSignalingPresent = 24, + SegmentAttributeXY_adaptiveTimingPresent = 25, + SegmentAttributeXY_rfSignalRequestPresent = 26, + SegmentAttributeXY_partialCurbIntrusion = 27, + SegmentAttributeXY_taperToLeft = 28, + SegmentAttributeXY_taperToRight = 29, + SegmentAttributeXY_taperToCenterLine = 30, + SegmentAttributeXY_parallelParking = 31, + SegmentAttributeXY_headInParking = 32, + SegmentAttributeXY_freeParking = 33, + SegmentAttributeXY_timeRestrictionsOnParking = 34, + SegmentAttributeXY_costToPark = 35, + SegmentAttributeXY_midBlockCurbPresent = 36, + SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_SegmentAttributeXY; + +/* SegmentAttributeXY */ +typedef long SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1; +asn_struct_free_f SegmentAttributeXY_free; +asn_struct_print_f SegmentAttributeXY_print; +asn_constr_check_f SegmentAttributeXY_constraint; +ber_type_decoder_f SegmentAttributeXY_decode_ber; +der_type_encoder_f SegmentAttributeXY_encode_der; +xer_type_decoder_f SegmentAttributeXY_decode_xer; +xer_type_encoder_f SegmentAttributeXY_encode_xer; +jer_type_encoder_f SegmentAttributeXY_encode_jer; +oer_type_decoder_f SegmentAttributeXY_decode_oer; +oer_type_encoder_f SegmentAttributeXY_encode_oer; +per_type_decoder_f SegmentAttributeXY_decode_uper; +per_type_encoder_f SegmentAttributeXY_encode_uper; +per_type_decoder_f SegmentAttributeXY_decode_aper; +per_type_encoder_f SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXY_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeXYList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeXYList.h new file mode 100644 index 000000000..5f7852d90 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SegmentAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SegmentAttributeXYList_H_ +#define _SegmentAttributeXYList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SegmentAttributeXY.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SegmentAttributeXYList */ +typedef struct SegmentAttributeXYList { + A_SEQUENCE_OF(SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SegmentAttributeXYList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMajorAxisAccuracy.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMajorAxisAccuracy.h new file mode 100644 index 000000000..1e3602025 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMajorAxisAccuracy.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SemiMajorAxisAccuracy_H_ +#define _SemiMajorAxisAccuracy_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisAccuracy */ +typedef long SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy; +asn_struct_free_f SemiMajorAxisAccuracy_free; +asn_struct_print_f SemiMajorAxisAccuracy_print; +asn_constr_check_f SemiMajorAxisAccuracy_constraint; +ber_type_decoder_f SemiMajorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMajorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMajorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMajorAxisAccuracy_encode_xer; +jer_type_encoder_f SemiMajorAxisAccuracy_encode_jer; +oer_type_decoder_f SemiMajorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMajorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisAccuracy_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMajorAxisOrientation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMajorAxisOrientation.h new file mode 100644 index 000000000..a4da71f26 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMajorAxisOrientation.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SemiMajorAxisOrientation_H_ +#define _SemiMajorAxisOrientation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMajorAxisOrientation */ +typedef long SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation; +asn_struct_free_f SemiMajorAxisOrientation_free; +asn_struct_print_f SemiMajorAxisOrientation_print; +asn_constr_check_f SemiMajorAxisOrientation_constraint; +ber_type_decoder_f SemiMajorAxisOrientation_decode_ber; +der_type_encoder_f SemiMajorAxisOrientation_encode_der; +xer_type_decoder_f SemiMajorAxisOrientation_decode_xer; +xer_type_encoder_f SemiMajorAxisOrientation_encode_xer; +jer_type_encoder_f SemiMajorAxisOrientation_encode_jer; +oer_type_decoder_f SemiMajorAxisOrientation_decode_oer; +oer_type_encoder_f SemiMajorAxisOrientation_encode_oer; +per_type_decoder_f SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMajorAxisOrientation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMinorAxisAccuracy.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMinorAxisAccuracy.h new file mode 100644 index 000000000..1e1aeae65 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SemiMinorAxisAccuracy.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SemiMinorAxisAccuracy_H_ +#define _SemiMinorAxisAccuracy_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SemiMinorAxisAccuracy */ +typedef long SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy; +asn_struct_free_f SemiMinorAxisAccuracy_free; +asn_struct_print_f SemiMinorAxisAccuracy_print; +asn_constr_check_f SemiMinorAxisAccuracy_constraint; +ber_type_decoder_f SemiMinorAxisAccuracy_decode_ber; +der_type_encoder_f SemiMinorAxisAccuracy_encode_der; +xer_type_decoder_f SemiMinorAxisAccuracy_decode_xer; +xer_type_encoder_f SemiMinorAxisAccuracy_encode_xer; +jer_type_encoder_f SemiMinorAxisAccuracy_encode_jer; +oer_type_decoder_f SemiMinorAxisAccuracy_decode_oer; +oer_type_encoder_f SemiMinorAxisAccuracy_encode_oer; +per_type_decoder_f SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SemiMinorAxisAccuracy_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ShapePointSet.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ShapePointSet.h new file mode 100644 index 000000000..3c99479f5 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ShapePointSet.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ShapePointSet_H_ +#define _ShapePointSet_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LaneWidth.h" +#include "DirectionOfUse.h" +#include "NodeListXY.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Position3D; + +/* ShapePointSet */ +typedef struct ShapePointSet { + struct Position3D *anchor; /* OPTIONAL */ + LaneWidth_t *laneWidth; /* OPTIONAL */ + DirectionOfUse_t *directionality; /* OPTIONAL */ + NodeListXY_t nodeList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ShapePointSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ShapePointSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ShapePointSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ShapePointSet_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ShapePointSet_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignPrority.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignPrority.h new file mode 100644 index 000000000..c02578caf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignPrority.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignPrority_H_ +#define _SignPrority_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignPrority */ +typedef long SignPrority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SignPrority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SignPrority; +asn_struct_free_f SignPrority_free; +asn_struct_print_f SignPrority_print; +asn_constr_check_f SignPrority_constraint; +ber_type_decoder_f SignPrority_decode_ber; +der_type_encoder_f SignPrority_encode_der; +xer_type_decoder_f SignPrority_decode_xer; +xer_type_encoder_f SignPrority_encode_xer; +jer_type_encoder_f SignPrority_encode_jer; +oer_type_decoder_f SignPrority_decode_oer; +oer_type_encoder_f SignPrority_encode_oer; +per_type_decoder_f SignPrority_decode_uper; +per_type_encoder_f SignPrority_encode_uper; +per_type_decoder_f SignPrority_decode_aper; +per_type_encoder_f SignPrority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignPrority_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalControlZone.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalControlZone.h new file mode 100644 index 000000000..5308c92b7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalControlZone.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalControlZone_H_ +#define _SignalControlZone_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RegionalExtension.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalControlZone */ +typedef struct SignalControlZone { + Reg_SignalControlZone_t zone; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalControlZone_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalGroupID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalGroupID.h new file mode 100644 index 000000000..0f5ea9eef --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalGroupID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalGroupID_H_ +#define _SignalGroupID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalGroupID */ +typedef long SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SignalGroupID; +asn_struct_free_f SignalGroupID_free; +asn_struct_print_f SignalGroupID_print; +asn_constr_check_f SignalGroupID_constraint; +ber_type_decoder_f SignalGroupID_decode_ber; +der_type_encoder_f SignalGroupID_encode_der; +xer_type_decoder_f SignalGroupID_decode_xer; +xer_type_encoder_f SignalGroupID_encode_xer; +jer_type_encoder_f SignalGroupID_encode_jer; +oer_type_decoder_f SignalGroupID_decode_oer; +oer_type_encoder_f SignalGroupID_encode_oer; +per_type_decoder_f SignalGroupID_decode_uper; +per_type_encoder_f SignalGroupID_encode_uper; +per_type_decoder_f SignalGroupID_decode_aper; +per_type_encoder_f SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalGroupID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalHeadLocation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalHeadLocation.h new file mode 100644 index 000000000..063808245 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalHeadLocation.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalHeadLocation_H_ +#define _SignalHeadLocation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NodeOffsetPointXY.h" +#include "SignalGroupID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalHeadLocation */ +typedef struct SignalHeadLocation { + NodeOffsetPointXY_t node; + SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalHeadLocationList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalHeadLocationList.h new file mode 100644 index 000000000..7f827c8fc --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalHeadLocationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalHeadLocationList_H_ +#define _SignalHeadLocationList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalHeadLocation; + +/* SignalHeadLocationList */ +typedef struct SignalHeadLocationList { + A_SEQUENCE_OF(struct SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalHeadLocationList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalReqScheme.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalReqScheme.h new file mode 100644 index 000000000..af28c49eb --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalReqScheme.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalReqScheme_H_ +#define _SignalReqScheme_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SignalReqScheme */ +typedef OCTET_STRING_t SignalReqScheme_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalReqScheme; +asn_struct_free_f SignalReqScheme_free; +asn_struct_print_f SignalReqScheme_print; +asn_constr_check_f SignalReqScheme_constraint; +ber_type_decoder_f SignalReqScheme_decode_ber; +der_type_encoder_f SignalReqScheme_encode_der; +xer_type_decoder_f SignalReqScheme_decode_xer; +xer_type_encoder_f SignalReqScheme_encode_xer; +jer_type_encoder_f SignalReqScheme_encode_jer; +oer_type_decoder_f SignalReqScheme_decode_oer; +oer_type_encoder_f SignalReqScheme_encode_oer; +per_type_decoder_f SignalReqScheme_decode_uper; +per_type_encoder_f SignalReqScheme_encode_uper; +per_type_decoder_f SignalReqScheme_decode_aper; +per_type_encoder_f SignalReqScheme_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalReqScheme_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequest.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequest.h new file mode 100644 index 000000000..5d984ae13 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequest.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalRequest_H_ +#define _SignalRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IntersectionReferenceID.h" +#include "RequestID.h" +#include "PriorityRequestType.h" +#include "IntersectionAccessPoint.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntersectionAccessPoint; +struct Reg_SignalRequest; + +/* SignalRequest */ +typedef struct SignalRequest { + IntersectionReferenceID_t id; + RequestID_t requestID; + PriorityRequestType_t requestType; + IntersectionAccessPoint_t inBoundLane; + struct IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct SignalRequest__regional { + A_SEQUENCE_OF(struct Reg_SignalRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequest_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestList.h new file mode 100644 index 000000000..845632c1c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalRequestList_H_ +#define _SignalRequestList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestPackage; + +/* SignalRequestList */ +typedef struct SignalRequestList { + A_SEQUENCE_OF(struct SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestMessage.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestMessage.h new file mode 100644 index 000000000..fbf2bc7ed --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestMessage.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalRequestMessage_H_ +#define _SignalRequestMessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "Common_MsgCount.h" +#include "RequestorDescription.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequestList; +struct Reg_SignalRequestMessage; + +/* SignalRequestMessage */ +typedef struct SignalRequestMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + Common_MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct SignalRequestList *requests; /* OPTIONAL */ + RequestorDescription_t requestor; + struct SignalRequestMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequestMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestMessage_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestMessage_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestPackage.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestPackage.h new file mode 100644 index 000000000..01d2d3ed8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequestPackage.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalRequestPackage_H_ +#define _SignalRequestPackage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SignalRequest.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalRequestPackage; + +/* SignalRequestPackage */ +typedef struct SignalRequestPackage { + SignalRequest_t request; + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + struct SignalRequestPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequestPackage_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequesterInfo.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequesterInfo.h new file mode 100644 index 000000000..9d05a6752 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalRequesterInfo.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalRequesterInfo_H_ +#define _SignalRequesterInfo_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VehicleID.h" +#include "RequestID.h" +#include "Common_MsgCount.h" +#include "BasicVehicleRole.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RequestorType; + +/* SignalRequesterInfo */ +typedef struct SignalRequesterInfo { + VehicleID_t id; + RequestID_t request; + Common_MsgCount_t sequenceNumber; + BasicVehicleRole_t *role; /* OPTIONAL */ + struct RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalRequesterInfo_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatus.h new file mode 100644 index 000000000..814eedd4a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatus.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalStatus_H_ +#define _SignalStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Common_MsgCount.h" +#include "IntersectionReferenceID.h" +#include "SignalStatusPackageList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatus; + +/* SignalStatus */ +typedef struct SignalStatus { + Common_MsgCount_t sequenceNumber; + IntersectionReferenceID_t id; + SignalStatusPackageList_t sigStatus; + struct SignalStatus__regional { + A_SEQUENCE_OF(struct Reg_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusList.h new file mode 100644 index 000000000..10e86d63a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalStatusList_H_ +#define _SignalStatusList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatus; + +/* SignalStatusList */ +typedef struct SignalStatusList { + A_SEQUENCE_OF(struct SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusMessage.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusMessage.h new file mode 100644 index 000000000..ea87e3ce7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusMessage.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalStatusMessage_H_ +#define _SignalStatusMessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "Common_MsgCount.h" +#include "SignalStatusList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_SignalStatusMessage; + +/* SignalStatusMessage */ +typedef struct SignalStatusMessage { + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + DSecond_t second; + Common_MsgCount_t *sequenceNumber; /* OPTIONAL */ + SignalStatusList_t status; + struct SignalStatusMessage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusMessage_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusMessage_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusPackage.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusPackage.h new file mode 100644 index 000000000..9351d7de5 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusPackage.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalStatusPackage_H_ +#define _SignalStatusPackage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IntersectionAccessPoint.h" +#include "MinuteOfTheYear.h" +#include "DSecond.h" +#include "PrioritizationResponseStatus.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalRequesterInfo; +struct IntersectionAccessPoint; +struct Reg_SignalStatusPackage; + +/* SignalStatusPackage */ +typedef struct SignalStatusPackage { + struct SignalRequesterInfo *requester; /* OPTIONAL */ + IntersectionAccessPoint_t inboundOn; + struct IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + MinuteOfTheYear_t *minute; /* OPTIONAL */ + DSecond_t *second; /* OPTIONAL */ + DSecond_t *duration; /* OPTIONAL */ + PrioritizationResponseStatus_t status; + struct SignalStatusPackage__regional { + A_SEQUENCE_OF(struct Reg_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackage_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusPackageList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusPackageList.h new file mode 100644 index 000000000..043cbe1df --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SignalStatusPackageList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SignalStatusPackageList_H_ +#define _SignalStatusPackageList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SignalStatusPackage; + +/* SignalStatusPackageList */ +typedef struct SignalStatusPackageList { + A_SEQUENCE_OF(struct SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SignalStatusPackageList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SirenInUse.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SirenInUse.h new file mode 100644 index 000000000..d24a8bcaa --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SirenInUse.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SirenInUse_H_ +#define _SirenInUse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SirenInUse { + SirenInUse_unavailable = 0, + SirenInUse_notInUse = 1, + SirenInUse_inUse = 2, + SirenInUse_reserved = 3 +} e_SirenInUse; + +/* SirenInUse */ +typedef long SirenInUse_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SirenInUse_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SirenInUse; +extern const asn_INTEGER_specifics_t asn_SPC_SirenInUse_specs_1; +asn_struct_free_f SirenInUse_free; +asn_struct_print_f SirenInUse_print; +asn_constr_check_f SirenInUse_constraint; +ber_type_decoder_f SirenInUse_decode_ber; +der_type_encoder_f SirenInUse_encode_der; +xer_type_decoder_f SirenInUse_decode_xer; +xer_type_encoder_f SirenInUse_encode_xer; +jer_type_encoder_f SirenInUse_encode_jer; +oer_type_decoder_f SirenInUse_decode_oer; +oer_type_encoder_f SirenInUse_encode_oer; +per_type_decoder_f SirenInUse_decode_uper; +per_type_encoder_f SirenInUse_encode_uper; +per_type_decoder_f SirenInUse_decode_aper; +per_type_encoder_f SirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SirenInUse_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Snapshot.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Snapshot.h new file mode 100644 index 000000000..26723318d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Snapshot.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Snapshot_H_ +#define _Snapshot_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "FullPositionVector.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleSafetyExtensions; +struct VehicleStatus; + +/* Snapshot */ +typedef struct Snapshot { + FullPositionVector_t thePosition; + struct VehicleSafetyExtensions *safetyExt; /* OPTIONAL */ + struct VehicleStatus *dataSet; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Snapshot_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Snapshot; +extern asn_SEQUENCE_specifics_t asn_SPC_Snapshot_specs_1; +extern asn_TYPE_member_t asn_MBR_Snapshot_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Snapshot_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SnapshotDistance.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SnapshotDistance.h new file mode 100644 index 000000000..b6371ef0c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SnapshotDistance.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SnapshotDistance_H_ +#define _SnapshotDistance_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GrossDistance.h" +#include "GrossSpeed.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SnapshotDistance */ +typedef struct SnapshotDistance { + GrossDistance_t distance1; + GrossSpeed_t speed1; + GrossDistance_t distance2; + GrossSpeed_t speed2; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SnapshotDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SnapshotDistance; +extern asn_SEQUENCE_specifics_t asn_SPC_SnapshotDistance_specs_1; +extern asn_TYPE_member_t asn_MBR_SnapshotDistance_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SnapshotDistance_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SnapshotTime.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SnapshotTime.h new file mode 100644 index 000000000..fa8e83995 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SnapshotTime.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SnapshotTime_H_ +#define _SnapshotTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GrossSpeed.h" +#include "SecondOfTime.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SnapshotTime */ +typedef struct SnapshotTime { + GrossSpeed_t speed1; + SecondOfTime_t time1; + GrossSpeed_t speed2; + SecondOfTime_t time2; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SnapshotTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SnapshotTime; +extern asn_SEQUENCE_specifics_t asn_SPC_SnapshotTime_specs_1; +extern asn_TYPE_member_t asn_MBR_SnapshotTime_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SnapshotTime_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SpecialVehicleExtensions.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpecialVehicleExtensions.h new file mode 100644 index 000000000..a2083c435 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpecialVehicleExtensions.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SpecialVehicleExtensions_H_ +#define _SpecialVehicleExtensions_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EmergencyDetails; +struct EventDescription; +struct TrailerData; + +/* SpecialVehicleExtensions */ +typedef struct SpecialVehicleExtensions { + struct EmergencyDetails *vehicleAlerts; /* OPTIONAL */ + struct EventDescription *description; /* OPTIONAL */ + struct TrailerData *trailers; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpecialVehicleExtensions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpecialVehicleExtensions; +extern asn_SEQUENCE_specifics_t asn_SPC_SpecialVehicleExtensions_specs_1; +extern asn_TYPE_member_t asn_MBR_SpecialVehicleExtensions_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpecialVehicleExtensions_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Speed.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Speed.h new file mode 100644 index 000000000..e1e794315 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Speed.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Speed_H_ +#define _Speed_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Speed */ +typedef long Speed_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Speed_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Speed; +asn_struct_free_f Speed_free; +asn_struct_print_f Speed_print; +asn_constr_check_f Speed_constraint; +ber_type_decoder_f Speed_decode_ber; +der_type_encoder_f Speed_encode_der; +xer_type_decoder_f Speed_decode_xer; +xer_type_encoder_f Speed_encode_xer; +jer_type_encoder_f Speed_encode_jer; +oer_type_decoder_f Speed_decode_oer; +oer_type_encoder_f Speed_encode_oer; +per_type_decoder_f Speed_decode_uper; +per_type_encoder_f Speed_encode_uper; +per_type_decoder_f Speed_decode_aper; +per_type_encoder_f Speed_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Speed_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedAdvice.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedAdvice.h new file mode 100644 index 000000000..762d8fb46 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedAdvice.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SpeedAdvice_H_ +#define _SpeedAdvice_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedAdvice */ +typedef long SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedAdvice; +asn_struct_free_f SpeedAdvice_free; +asn_struct_print_f SpeedAdvice_print; +asn_constr_check_f SpeedAdvice_constraint; +ber_type_decoder_f SpeedAdvice_decode_ber; +der_type_encoder_f SpeedAdvice_encode_der; +xer_type_decoder_f SpeedAdvice_decode_xer; +xer_type_encoder_f SpeedAdvice_encode_xer; +jer_type_encoder_f SpeedAdvice_encode_jer; +oer_type_decoder_f SpeedAdvice_decode_oer; +oer_type_encoder_f SpeedAdvice_encode_oer; +per_type_decoder_f SpeedAdvice_decode_uper; +per_type_encoder_f SpeedAdvice_encode_uper; +per_type_decoder_f SpeedAdvice_decode_aper; +per_type_encoder_f SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedAdvice_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedConfidence.h new file mode 100644 index 000000000..afeef9708 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SpeedConfidence_H_ +#define _SpeedConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedConfidence { + SpeedConfidence_unavailable = 0, + SpeedConfidence_prec100ms = 1, + SpeedConfidence_prec10ms = 2, + SpeedConfidence_prec5ms = 3, + SpeedConfidence_prec1ms = 4, + SpeedConfidence_prec0_1ms = 5, + SpeedConfidence_prec0_05ms = 6, + SpeedConfidence_prec0_01ms = 7 +} e_SpeedConfidence; + +/* SpeedConfidence */ +typedef long SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedConfidence_specs_1; +asn_struct_free_f SpeedConfidence_free; +asn_struct_print_f SpeedConfidence_print; +asn_constr_check_f SpeedConfidence_constraint; +ber_type_decoder_f SpeedConfidence_decode_ber; +der_type_encoder_f SpeedConfidence_encode_der; +xer_type_decoder_f SpeedConfidence_decode_xer; +xer_type_encoder_f SpeedConfidence_encode_xer; +jer_type_encoder_f SpeedConfidence_encode_jer; +oer_type_decoder_f SpeedConfidence_decode_oer; +oer_type_encoder_f SpeedConfidence_encode_oer; +per_type_decoder_f SpeedConfidence_decode_uper; +per_type_encoder_f SpeedConfidence_encode_uper; +per_type_decoder_f SpeedConfidence_decode_aper; +per_type_encoder_f SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimit.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimit.h new file mode 100644 index 000000000..092cda89d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimit.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SpeedLimit_H_ +#define _SpeedLimit_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "ITIScodes.h" +#include "ITIStextPhrase.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimit__Member__item_PR { + SpeedLimit__Member__item_PR_NOTHING, /* No components present */ + SpeedLimit__Member__item_PR_itis, + SpeedLimit__Member__item_PR_text +} SpeedLimit__Member__item_PR; + +/* Forward definitions */ +typedef struct SpeedLimit__Member { + struct SpeedLimit__Member__item { + SpeedLimit__Member__item_PR present; + union SpeedLimit__Member__item_u { + ITIScodes_t itis; + ITIStextPhrase_t text; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } item; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedLimit__Member; + +/* SpeedLimit */ +typedef struct SpeedLimit { + A_SEQUENCE_OF(SpeedLimit__Member) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimit; +extern asn_SET_OF_specifics_t asn_SPC_SpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedLimit_1[1]; +extern asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimit_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimitList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimitList.h new file mode 100644 index 000000000..50be68c00 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimitList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SpeedLimitList_H_ +#define _SpeedLimitList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RegulatorySpeedLimit; + +/* SpeedLimitList */ +typedef struct SpeedLimitList { + A_SEQUENCE_OF(struct RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimitType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimitType.h new file mode 100644 index 000000000..3ecede65d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedLimitType.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SpeedLimitType_H_ +#define _SpeedLimitType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedLimitType { + SpeedLimitType_unknown = 0, + SpeedLimitType_maxSpeedInSchoolZone = 1, + SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + SpeedLimitType_maxSpeedInConstructionZone = 3, + SpeedLimitType_vehicleMinSpeed = 4, + SpeedLimitType_vehicleMaxSpeed = 5, + SpeedLimitType_vehicleNightMaxSpeed = 6, + SpeedLimitType_truckMinSpeed = 7, + SpeedLimitType_truckMaxSpeed = 8, + SpeedLimitType_truckNightMaxSpeed = 9, + SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_SpeedLimitType; + +/* SpeedLimitType */ +typedef long SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1; +asn_struct_free_f SpeedLimitType_free; +asn_struct_print_f SpeedLimitType_print; +asn_constr_check_f SpeedLimitType_constraint; +ber_type_decoder_f SpeedLimitType_decode_ber; +der_type_encoder_f SpeedLimitType_encode_der; +xer_type_decoder_f SpeedLimitType_decode_xer; +xer_type_encoder_f SpeedLimitType_encode_xer; +jer_type_encoder_f SpeedLimitType_encode_jer; +oer_type_decoder_f SpeedLimitType_decode_oer; +oer_type_encoder_f SpeedLimitType_encode_oer; +per_type_decoder_f SpeedLimitType_decode_uper; +per_type_encoder_f SpeedLimitType_encode_uper; +per_type_decoder_f SpeedLimitType_decode_aper; +per_type_encoder_f SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedLimitType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfile.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfile.h new file mode 100644 index 000000000..4c4c122ad --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfile.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SpeedProfile_H_ +#define _SpeedProfile_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SpeedProfileMeasurementList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedProfile */ +typedef struct SpeedProfile { + SpeedProfileMeasurementList_t speedReports; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedProfile_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedProfile; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedProfile_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedProfile_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedProfile_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfileMeasurement.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfileMeasurement.h new file mode 100644 index 000000000..df04dbca0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfileMeasurement.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SpeedProfileMeasurement_H_ +#define _SpeedProfileMeasurement_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GrossSpeed.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedProfileMeasurement */ +typedef GrossSpeed_t SpeedProfileMeasurement_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpeedProfileMeasurement_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpeedProfileMeasurement; +asn_struct_free_f SpeedProfileMeasurement_free; +asn_struct_print_f SpeedProfileMeasurement_print; +asn_constr_check_f SpeedProfileMeasurement_constraint; +ber_type_decoder_f SpeedProfileMeasurement_decode_ber; +der_type_encoder_f SpeedProfileMeasurement_encode_der; +xer_type_decoder_f SpeedProfileMeasurement_decode_xer; +xer_type_encoder_f SpeedProfileMeasurement_encode_xer; +jer_type_encoder_f SpeedProfileMeasurement_encode_jer; +oer_type_decoder_f SpeedProfileMeasurement_decode_oer; +oer_type_encoder_f SpeedProfileMeasurement_encode_oer; +per_type_decoder_f SpeedProfileMeasurement_decode_uper; +per_type_encoder_f SpeedProfileMeasurement_encode_uper; +per_type_decoder_f SpeedProfileMeasurement_decode_aper; +per_type_encoder_f SpeedProfileMeasurement_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedProfileMeasurement_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfileMeasurementList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfileMeasurementList.h new file mode 100644 index 000000000..7586f003b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedProfileMeasurementList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SpeedProfileMeasurementList_H_ +#define _SpeedProfileMeasurementList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SpeedProfileMeasurement.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedProfileMeasurementList */ +typedef struct SpeedProfileMeasurementList { + A_SEQUENCE_OF(SpeedProfileMeasurement_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedProfileMeasurementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedProfileMeasurementList; +extern asn_SET_OF_specifics_t asn_SPC_SpeedProfileMeasurementList_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedProfileMeasurementList_1[1]; +extern asn_per_constraints_t asn_PER_type_SpeedProfileMeasurementList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedProfileMeasurementList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedandHeadingandThrottleConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 000000000..4b0667a37 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SpeedandHeadingandThrottleConfidence.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SpeedandHeadingandThrottleConfidence_H_ +#define _SpeedandHeadingandThrottleConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "HeadingConfidence.h" +#include "SpeedConfidence.h" +#include "ThrottleConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpeedandHeadingandThrottleConfidence */ +typedef struct SpeedandHeadingandThrottleConfidence { + HeadingConfidence_t heading; + SpeedConfidence_t speed; + ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedandHeadingandThrottleConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/StabilityControlStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/StabilityControlStatus.h new file mode 100644 index 000000000..b9f90c5bf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/StabilityControlStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _StabilityControlStatus_H_ +#define _StabilityControlStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum StabilityControlStatus { + StabilityControlStatus_unavailable = 0, + StabilityControlStatus_off = 1, + StabilityControlStatus_on = 2, + StabilityControlStatus_engaged = 3 +} e_StabilityControlStatus; + +/* StabilityControlStatus */ +typedef long StabilityControlStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StabilityControlStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StabilityControlStatus; +extern const asn_INTEGER_specifics_t asn_SPC_StabilityControlStatus_specs_1; +asn_struct_free_f StabilityControlStatus_free; +asn_struct_print_f StabilityControlStatus_print; +asn_constr_check_f StabilityControlStatus_constraint; +ber_type_decoder_f StabilityControlStatus_decode_ber; +der_type_encoder_f StabilityControlStatus_encode_der; +xer_type_decoder_f StabilityControlStatus_decode_xer; +xer_type_encoder_f StabilityControlStatus_encode_xer; +jer_type_encoder_f StabilityControlStatus_encode_jer; +oer_type_decoder_f StabilityControlStatus_decode_oer; +oer_type_encoder_f StabilityControlStatus_encode_oer; +per_type_decoder_f StabilityControlStatus_decode_uper; +per_type_encoder_f StabilityControlStatus_encode_uper; +per_type_decoder_f StabilityControlStatus_decode_aper; +per_type_encoder_f StabilityControlStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StabilityControlStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/StationID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/StationID.h new file mode 100644 index 000000000..df8faaa6b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/StationID.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _StationID_H_ +#define _StationID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* StationID */ +typedef unsigned long StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1; +asn_struct_free_f StationID_free; +asn_struct_print_f StationID_print; +asn_constr_check_f StationID_constraint; +ber_type_decoder_f StationID_decode_ber; +der_type_encoder_f StationID_encode_der; +xer_type_decoder_f StationID_decode_xer; +xer_type_encoder_f StationID_encode_xer; +jer_type_encoder_f StationID_encode_jer; +oer_type_decoder_f StationID_decode_oer; +oer_type_encoder_f StationID_encode_oer; +per_type_decoder_f StationID_decode_uper; +per_type_encoder_f StationID_encode_uper; +per_type_decoder_f StationID_decode_aper; +per_type_encoder_f StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _StationID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringAxleLubePressure.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringAxleLubePressure.h new file mode 100644 index 000000000..7e0886bd5 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringAxleLubePressure.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SteeringAxleLubePressure_H_ +#define _SteeringAxleLubePressure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringAxleLubePressure */ +typedef long SteeringAxleLubePressure_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringAxleLubePressure_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringAxleLubePressure; +asn_struct_free_f SteeringAxleLubePressure_free; +asn_struct_print_f SteeringAxleLubePressure_print; +asn_constr_check_f SteeringAxleLubePressure_constraint; +ber_type_decoder_f SteeringAxleLubePressure_decode_ber; +der_type_encoder_f SteeringAxleLubePressure_encode_der; +xer_type_decoder_f SteeringAxleLubePressure_decode_xer; +xer_type_encoder_f SteeringAxleLubePressure_encode_xer; +jer_type_encoder_f SteeringAxleLubePressure_encode_jer; +oer_type_decoder_f SteeringAxleLubePressure_decode_oer; +oer_type_encoder_f SteeringAxleLubePressure_encode_oer; +per_type_decoder_f SteeringAxleLubePressure_decode_uper; +per_type_encoder_f SteeringAxleLubePressure_encode_uper; +per_type_decoder_f SteeringAxleLubePressure_decode_aper; +per_type_encoder_f SteeringAxleLubePressure_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringAxleLubePressure_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringAxleTemperature.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringAxleTemperature.h new file mode 100644 index 000000000..b3af8f6b0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringAxleTemperature.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SteeringAxleTemperature_H_ +#define _SteeringAxleTemperature_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringAxleTemperature */ +typedef long SteeringAxleTemperature_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringAxleTemperature_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringAxleTemperature; +asn_struct_free_f SteeringAxleTemperature_free; +asn_struct_print_f SteeringAxleTemperature_print; +asn_constr_check_f SteeringAxleTemperature_constraint; +ber_type_decoder_f SteeringAxleTemperature_decode_ber; +der_type_encoder_f SteeringAxleTemperature_encode_der; +xer_type_decoder_f SteeringAxleTemperature_decode_xer; +xer_type_encoder_f SteeringAxleTemperature_encode_xer; +jer_type_encoder_f SteeringAxleTemperature_encode_jer; +oer_type_decoder_f SteeringAxleTemperature_decode_oer; +oer_type_encoder_f SteeringAxleTemperature_encode_oer; +per_type_decoder_f SteeringAxleTemperature_decode_uper; +per_type_encoder_f SteeringAxleTemperature_encode_uper; +per_type_decoder_f SteeringAxleTemperature_decode_aper; +per_type_encoder_f SteeringAxleTemperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringAxleTemperature_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngle.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngle.h new file mode 100644 index 000000000..7e5f3e453 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngle.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SteeringWheelAngle_H_ +#define _SteeringWheelAngle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngle */ +typedef long SteeringWheelAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle; +asn_struct_free_f SteeringWheelAngle_free; +asn_struct_print_f SteeringWheelAngle_print; +asn_constr_check_f SteeringWheelAngle_constraint; +ber_type_decoder_f SteeringWheelAngle_decode_ber; +der_type_encoder_f SteeringWheelAngle_encode_der; +xer_type_decoder_f SteeringWheelAngle_decode_xer; +xer_type_encoder_f SteeringWheelAngle_encode_xer; +jer_type_encoder_f SteeringWheelAngle_encode_jer; +oer_type_decoder_f SteeringWheelAngle_decode_oer; +oer_type_encoder_f SteeringWheelAngle_encode_oer; +per_type_decoder_f SteeringWheelAngle_decode_uper; +per_type_encoder_f SteeringWheelAngle_encode_uper; +per_type_decoder_f SteeringWheelAngle_decode_aper; +per_type_encoder_f SteeringWheelAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngle_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngleConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngleConfidence.h new file mode 100644 index 000000000..649017014 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngleConfidence.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SteeringWheelAngleConfidence_H_ +#define _SteeringWheelAngleConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SteeringWheelAngleConfidence { + SteeringWheelAngleConfidence_unavailable = 0, + SteeringWheelAngleConfidence_prec2deg = 1, + SteeringWheelAngleConfidence_prec1deg = 2, + SteeringWheelAngleConfidence_prec0_02deg = 3 +} e_SteeringWheelAngleConfidence; + +/* SteeringWheelAngleConfidence */ +typedef long SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_SteeringWheelAngleConfidence_specs_1; +asn_struct_free_f SteeringWheelAngleConfidence_free; +asn_struct_print_f SteeringWheelAngleConfidence_print; +asn_constr_check_f SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f SteeringWheelAngleConfidence_encode_xer; +jer_type_encoder_f SteeringWheelAngleConfidence_encode_jer; +oer_type_decoder_f SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngleRateOfChange.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngleRateOfChange.h new file mode 100644 index 000000000..675477136 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SteeringWheelAngleRateOfChange.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SteeringWheelAngleRateOfChange_H_ +#define _SteeringWheelAngleRateOfChange_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SteeringWheelAngleRateOfChange */ +typedef long SteeringWheelAngleRateOfChange_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SteeringWheelAngleRateOfChange_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleRateOfChange; +asn_struct_free_f SteeringWheelAngleRateOfChange_free; +asn_struct_print_f SteeringWheelAngleRateOfChange_print; +asn_constr_check_f SteeringWheelAngleRateOfChange_constraint; +ber_type_decoder_f SteeringWheelAngleRateOfChange_decode_ber; +der_type_encoder_f SteeringWheelAngleRateOfChange_encode_der; +xer_type_decoder_f SteeringWheelAngleRateOfChange_decode_xer; +xer_type_encoder_f SteeringWheelAngleRateOfChange_encode_xer; +jer_type_encoder_f SteeringWheelAngleRateOfChange_encode_jer; +oer_type_decoder_f SteeringWheelAngleRateOfChange_decode_oer; +oer_type_encoder_f SteeringWheelAngleRateOfChange_encode_oer; +per_type_decoder_f SteeringWheelAngleRateOfChange_decode_uper; +per_type_encoder_f SteeringWheelAngleRateOfChange_encode_uper; +per_type_decoder_f SteeringWheelAngleRateOfChange_decode_aper; +per_type_encoder_f SteeringWheelAngleRateOfChange_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SteeringWheelAngleRateOfChange_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SummerTime.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SummerTime.h new file mode 100644 index 000000000..2ffb2313e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SummerTime.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SummerTime_H_ +#define _SummerTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SummerTime { + SummerTime_notInSummerTime = 0, + SummerTime_inSummerTime = 1 +} e_SummerTime; + +/* SummerTime */ +typedef long SummerTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SummerTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SummerTime; +extern const asn_INTEGER_specifics_t asn_SPC_SummerTime_specs_1; +asn_struct_free_f SummerTime_free; +asn_struct_print_f SummerTime_print; +asn_constr_check_f SummerTime_constraint; +ber_type_decoder_f SummerTime_decode_ber; +der_type_encoder_f SummerTime_encode_der; +xer_type_decoder_f SummerTime_decode_xer; +xer_type_encoder_f SummerTime_encode_xer; +jer_type_encoder_f SummerTime_encode_jer; +oer_type_decoder_f SummerTime_decode_oer; +oer_type_encoder_f SummerTime_encode_oer; +per_type_decoder_f SummerTime_decode_uper; +per_type_encoder_f SummerTime_encode_uper; +per_type_decoder_f SummerTime_decode_aper; +per_type_encoder_f SummerTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SummerTime_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SunSensor.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SunSensor.h new file mode 100644 index 000000000..32db7cef5 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SunSensor.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SunSensor_H_ +#define _SunSensor_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* SunSensor */ +typedef long SunSensor_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SunSensor_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SunSensor; +asn_struct_free_f SunSensor_free; +asn_struct_print_f SunSensor_print; +asn_constr_check_f SunSensor_constraint; +ber_type_decoder_f SunSensor_decode_ber; +der_type_encoder_f SunSensor_encode_der; +xer_type_decoder_f SunSensor_decode_xer; +xer_type_encoder_f SunSensor_encode_xer; +jer_type_encoder_f SunSensor_encode_jer; +oer_type_decoder_f SunSensor_decode_oer; +oer_type_encoder_f SunSensor_encode_oer; +per_type_decoder_f SunSensor_decode_uper; +per_type_encoder_f SunSensor_encode_uper; +per_type_decoder_f SunSensor_decode_aper; +per_type_encoder_f SunSensor_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SunSensor_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/SupplementalVehicleExtensions.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/SupplementalVehicleExtensions.h new file mode 100644 index 000000000..0613f2274 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/SupplementalVehicleExtensions.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _SupplementalVehicleExtensions_H_ +#define _SupplementalVehicleExtensions_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BasicVehicleClass.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleClassification; +struct VehicleData; +struct WeatherReport; +struct WeatherProbe; +struct ObstacleDetection; +struct DisabledVehicle; +struct SpeedProfile; +struct RTCMPackage; +struct Reg_SupplementalVehicleExtensions; + +/* SupplementalVehicleExtensions */ +typedef struct SupplementalVehicleExtensions { + BasicVehicleClass_t *classification; /* OPTIONAL */ + struct VehicleClassification *classDetails; /* OPTIONAL */ + struct VehicleData *vehicleData; /* OPTIONAL */ + struct WeatherReport *weatherReport; /* OPTIONAL */ + struct WeatherProbe *weatherProbe; /* OPTIONAL */ + struct ObstacleDetection *obstacle; /* OPTIONAL */ + struct DisabledVehicle *status; /* OPTIONAL */ + struct SpeedProfile *speedProfile; /* OPTIONAL */ + struct RTCMPackage *theRTCM; /* OPTIONAL */ + struct SupplementalVehicleExtensions__regional { + A_SEQUENCE_OF(struct Reg_SupplementalVehicleExtensions) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SupplementalVehicleExtensions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SupplementalVehicleExtensions; +extern asn_SEQUENCE_specifics_t asn_SPC_SupplementalVehicleExtensions_specs_1; +extern asn_TYPE_member_t asn_MBR_SupplementalVehicleExtensions_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SupplementalVehicleExtensions_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TemporaryID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TemporaryID.h new file mode 100644 index 000000000..8c6b5c1ea --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TemporaryID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TemporaryID_H_ +#define _TemporaryID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TemporaryID */ +typedef OCTET_STRING_t TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TemporaryID; +asn_struct_free_f TemporaryID_free; +asn_struct_print_f TemporaryID_print; +asn_constr_check_f TemporaryID_constraint; +ber_type_decoder_f TemporaryID_decode_ber; +der_type_encoder_f TemporaryID_encode_der; +xer_type_decoder_f TemporaryID_decode_xer; +xer_type_encoder_f TemporaryID_encode_xer; +jer_type_encoder_f TemporaryID_encode_jer; +oer_type_decoder_f TemporaryID_decode_oer; +oer_type_encoder_f TemporaryID_encode_oer; +per_type_decoder_f TemporaryID_decode_uper; +per_type_encoder_f TemporaryID_encode_uper; +per_type_decoder_f TemporaryID_decode_aper; +per_type_encoder_f TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TemporaryID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TenthSecond.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TenthSecond.h new file mode 100644 index 000000000..3c6bffef1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TenthSecond.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TenthSecond_H_ +#define _TenthSecond_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TenthSecond */ +typedef long TenthSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TenthSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TenthSecond; +asn_struct_free_f TenthSecond_free; +asn_struct_print_f TenthSecond_print; +asn_constr_check_f TenthSecond_constraint; +ber_type_decoder_f TenthSecond_decode_ber; +der_type_encoder_f TenthSecond_encode_der; +xer_type_decoder_f TenthSecond_decode_xer; +xer_type_encoder_f TenthSecond_encode_xer; +jer_type_encoder_f TenthSecond_encode_jer; +oer_type_decoder_f TenthSecond_decode_oer; +oer_type_encoder_f TenthSecond_encode_oer; +per_type_decoder_f TenthSecond_decode_uper; +per_type_encoder_f TenthSecond_encode_uper; +per_type_decoder_f TenthSecond_decode_aper; +per_type_encoder_f TenthSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TenthSecond_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TermDistance.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TermDistance.h new file mode 100644 index 000000000..d56fb09ff --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TermDistance.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TermDistance_H_ +#define _TermDistance_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TermDistance */ +typedef long TermDistance_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TermDistance_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TermDistance; +asn_struct_free_f TermDistance_free; +asn_struct_print_f TermDistance_print; +asn_constr_check_f TermDistance_constraint; +ber_type_decoder_f TermDistance_decode_ber; +der_type_encoder_f TermDistance_encode_der; +xer_type_decoder_f TermDistance_decode_xer; +xer_type_encoder_f TermDistance_encode_xer; +jer_type_encoder_f TermDistance_encode_jer; +oer_type_decoder_f TermDistance_decode_oer; +oer_type_encoder_f TermDistance_encode_oer; +per_type_decoder_f TermDistance_decode_uper; +per_type_encoder_f TermDistance_encode_uper; +per_type_decoder_f TermDistance_decode_aper; +per_type_encoder_f TermDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TermDistance_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TermTime.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TermTime.h new file mode 100644 index 000000000..71e251396 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TermTime.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TermTime_H_ +#define _TermTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TermTime */ +typedef long TermTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TermTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TermTime; +asn_struct_free_f TermTime_free; +asn_struct_print_f TermTime_print; +asn_constr_check_f TermTime_constraint; +ber_type_decoder_f TermTime_decode_ber; +der_type_encoder_f TermTime_encode_der; +xer_type_decoder_f TermTime_decode_xer; +xer_type_encoder_f TermTime_encode_xer; +jer_type_encoder_f TermTime_encode_jer; +oer_type_decoder_f TermTime_decode_oer; +oer_type_encoder_f TermTime_encode_oer; +per_type_decoder_f TermTime_decode_uper; +per_type_encoder_f TermTime_encode_uper; +per_type_decoder_f TermTime_decode_aper; +per_type_encoder_f TermTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TermTime_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage00.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage00.h new file mode 100644 index 000000000..0fa1b55b7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage00.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage00" + * found in "J2735-TestMessage00.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage00_H_ +#define _TestMessage00_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage00; + +/* TestMessage00 */ +typedef struct TestMessage00 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage00 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage00_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage00; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage00_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage00_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage00_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage01.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage01.h new file mode 100644 index 000000000..3a0a3d41e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage01.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage01" + * found in "J2735-TestMessage01.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage01_H_ +#define _TestMessage01_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage01; + +/* TestMessage01 */ +typedef struct TestMessage01 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage01 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage01_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage01; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage01_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage01_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage01_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage02.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage02.h new file mode 100644 index 000000000..311047d42 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage02.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage02" + * found in "J2735-TestMessage02.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage02_H_ +#define _TestMessage02_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage02; + +/* TestMessage02 */ +typedef struct TestMessage02 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage02 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage02_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage02; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage02_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage02_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage02_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage03.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage03.h new file mode 100644 index 000000000..18eb5f037 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage03.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage03" + * found in "J2735-TestMessage03.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage03_H_ +#define _TestMessage03_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage03; + +/* TestMessage03 */ +typedef struct TestMessage03 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage03 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage03_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage03; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage03_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage03_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage03_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage04.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage04.h new file mode 100644 index 000000000..db8c1f16f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage04.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage04" + * found in "J2735-TestMessage04.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage04_H_ +#define _TestMessage04_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage04; + +/* TestMessage04 */ +typedef struct TestMessage04 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage04 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage04_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage04; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage04_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage04_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage04_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage05.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage05.h new file mode 100644 index 000000000..410efb258 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage05.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage05" + * found in "J2735-TestMessage05.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage05_H_ +#define _TestMessage05_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage05; + +/* TestMessage05 */ +typedef struct TestMessage05 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage05 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage05_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage05; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage05_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage05_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage05_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage06.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage06.h new file mode 100644 index 000000000..883d2b24a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage06.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage06" + * found in "J2735-TestMessage06.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage06_H_ +#define _TestMessage06_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage06; + +/* TestMessage06 */ +typedef struct TestMessage06 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage06 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage06_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage06; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage06_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage06_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage06_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage07.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage07.h new file mode 100644 index 000000000..df20a799d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage07.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage07" + * found in "J2735-TestMessage07.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage07_H_ +#define _TestMessage07_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage07; + +/* TestMessage07 */ +typedef struct TestMessage07 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage07 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage07_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage07; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage07_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage07_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage07_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage08.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage08.h new file mode 100644 index 000000000..463651549 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage08.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage08" + * found in "J2735-TestMessage08.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage08_H_ +#define _TestMessage08_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage08; + +/* TestMessage08 */ +typedef struct TestMessage08 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage08 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage08_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage08; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage08_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage08_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage08_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage09.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage09.h new file mode 100644 index 000000000..de124a4e8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage09.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage09" + * found in "J2735-TestMessage09.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage09_H_ +#define _TestMessage09_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage09; + +/* TestMessage09 */ +typedef struct TestMessage09 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage09 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage09_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage09; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage09_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage09_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage09_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage10.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage10.h new file mode 100644 index 000000000..429a20ffa --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage10.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage10" + * found in "J2735-TestMessage10.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage10_H_ +#define _TestMessage10_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage10; + +/* TestMessage10 */ +typedef struct TestMessage10 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage10 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage10_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage10; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage10_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage10_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage10_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage11.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage11.h new file mode 100644 index 000000000..ad94e5993 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage11.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage11" + * found in "J2735-TestMessage11.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage11_H_ +#define _TestMessage11_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage11; + +/* TestMessage11 */ +typedef struct TestMessage11 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage11 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage11_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage11; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage11_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage11_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage11_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage12.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage12.h new file mode 100644 index 000000000..4070ff599 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage12.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage12" + * found in "J2735-TestMessage12.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage12_H_ +#define _TestMessage12_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage12; + +/* TestMessage12 */ +typedef struct TestMessage12 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage12 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage12_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage12; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage12_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage12_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage12_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage13.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage13.h new file mode 100644 index 000000000..ee96a87ae --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage13.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage13" + * found in "J2735-TestMessage13.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage13_H_ +#define _TestMessage13_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage13; + +/* TestMessage13 */ +typedef struct TestMessage13 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage13 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage13_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage13; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage13_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage13_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage13_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage14.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage14.h new file mode 100644 index 000000000..1a1e25836 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage14.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage14" + * found in "J2735-TestMessage14.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage14_H_ +#define _TestMessage14_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage14; + +/* TestMessage14 */ +typedef struct TestMessage14 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage14 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage14_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage14; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage14_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage14_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage14_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage15.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage15.h new file mode 100644 index 000000000..11eb96ff8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TestMessage15.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage15" + * found in "J2735-TestMessage15.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TestMessage15_H_ +#define _TestMessage15_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Header; +struct Reg_TestMessage15; + +/* TestMessage15 */ +typedef struct TestMessage15 { + struct Header *header; /* OPTIONAL */ + struct Reg_TestMessage15 *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TestMessage15_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TestMessage15; +extern asn_SEQUENCE_specifics_t asn_SPC_TestMessage15_specs_1; +extern asn_TYPE_member_t asn_MBR_TestMessage15_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestMessage15_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ThrottleConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ThrottleConfidence.h new file mode 100644 index 000000000..d3c9c5cf4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ThrottleConfidence.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ThrottleConfidence_H_ +#define _ThrottleConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ThrottleConfidence { + ThrottleConfidence_unavailable = 0, + ThrottleConfidence_prec10percent = 1, + ThrottleConfidence_prec1percent = 2, + ThrottleConfidence_prec0_5percent = 3 +} e_ThrottleConfidence; + +/* ThrottleConfidence */ +typedef long ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1; +asn_struct_free_f ThrottleConfidence_free; +asn_struct_print_f ThrottleConfidence_print; +asn_constr_check_f ThrottleConfidence_constraint; +ber_type_decoder_f ThrottleConfidence_decode_ber; +der_type_encoder_f ThrottleConfidence_encode_der; +xer_type_decoder_f ThrottleConfidence_decode_xer; +xer_type_encoder_f ThrottleConfidence_encode_xer; +jer_type_encoder_f ThrottleConfidence_encode_jer; +oer_type_decoder_f ThrottleConfidence_decode_oer; +oer_type_encoder_f ThrottleConfidence_encode_oer; +per_type_decoder_f ThrottleConfidence_decode_uper; +per_type_encoder_f ThrottleConfidence_encode_uper; +per_type_decoder_f ThrottleConfidence_decode_aper; +per_type_encoder_f ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ThrottleConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ThrottlePosition.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ThrottlePosition.h new file mode 100644 index 000000000..a0bb98064 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ThrottlePosition.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ThrottlePosition_H_ +#define _ThrottlePosition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ThrottlePosition */ +typedef long ThrottlePosition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ThrottlePosition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ThrottlePosition; +asn_struct_free_f ThrottlePosition_free; +asn_struct_print_f ThrottlePosition_print; +asn_constr_check_f ThrottlePosition_constraint; +ber_type_decoder_f ThrottlePosition_decode_ber; +der_type_encoder_f ThrottlePosition_encode_der; +xer_type_decoder_f ThrottlePosition_decode_xer; +xer_type_encoder_f ThrottlePosition_encode_xer; +jer_type_encoder_f ThrottlePosition_encode_jer; +oer_type_decoder_f ThrottlePosition_decode_oer; +oer_type_encoder_f ThrottlePosition_encode_oer; +per_type_decoder_f ThrottlePosition_decode_uper; +per_type_encoder_f ThrottlePosition_encode_uper; +per_type_decoder_f ThrottlePosition_decode_aper; +per_type_encoder_f ThrottlePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ThrottlePosition_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeChangeDetails.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeChangeDetails.h new file mode 100644 index 000000000..f49265fef --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeChangeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TimeChangeDetails_H_ +#define _TimeChangeDetails_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SPAT_TimeMark.h" +#include "TimeIntervalConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeChangeDetails */ +typedef struct TimeChangeDetails { + SPAT_TimeMark_t *startTime; /* OPTIONAL */ + SPAT_TimeMark_t minEndTime; + SPAT_TimeMark_t *maxEndTime; /* OPTIONAL */ + SPAT_TimeMark_t *likelyTime; /* OPTIONAL */ + TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + SPAT_TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeChangeDetails_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeConfidence.h new file mode 100644 index 000000000..de951964a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeConfidence.h @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TimeConfidence_H_ +#define _TimeConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeConfidence { + TimeConfidence_unavailable = 0, + TimeConfidence_time_100_000 = 1, + TimeConfidence_time_050_000 = 2, + TimeConfidence_time_020_000 = 3, + TimeConfidence_time_010_000 = 4, + TimeConfidence_time_002_000 = 5, + TimeConfidence_time_001_000 = 6, + TimeConfidence_time_000_500 = 7, + TimeConfidence_time_000_200 = 8, + TimeConfidence_time_000_100 = 9, + TimeConfidence_time_000_050 = 10, + TimeConfidence_time_000_020 = 11, + TimeConfidence_time_000_010 = 12, + TimeConfidence_time_000_005 = 13, + TimeConfidence_time_000_002 = 14, + TimeConfidence_time_000_001 = 15, + TimeConfidence_time_000_000_5 = 16, + TimeConfidence_time_000_000_2 = 17, + TimeConfidence_time_000_000_1 = 18, + TimeConfidence_time_000_000_05 = 19, + TimeConfidence_time_000_000_02 = 20, + TimeConfidence_time_000_000_01 = 21, + TimeConfidence_time_000_000_005 = 22, + TimeConfidence_time_000_000_002 = 23, + TimeConfidence_time_000_000_001 = 24, + TimeConfidence_time_000_000_000_5 = 25, + TimeConfidence_time_000_000_000_2 = 26, + TimeConfidence_time_000_000_000_1 = 27, + TimeConfidence_time_000_000_000_05 = 28, + TimeConfidence_time_000_000_000_02 = 29, + TimeConfidence_time_000_000_000_01 = 30, + TimeConfidence_time_000_000_000_005 = 31, + TimeConfidence_time_000_000_000_002 = 32, + TimeConfidence_time_000_000_000_001 = 33, + TimeConfidence_time_000_000_000_000_5 = 34, + TimeConfidence_time_000_000_000_000_2 = 35, + TimeConfidence_time_000_000_000_000_1 = 36, + TimeConfidence_time_000_000_000_000_05 = 37, + TimeConfidence_time_000_000_000_000_02 = 38, + TimeConfidence_time_000_000_000_000_01 = 39 +} e_TimeConfidence; + +/* TimeConfidence */ +typedef long TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1; +asn_struct_free_f TimeConfidence_free; +asn_struct_print_f TimeConfidence_print; +asn_constr_check_f TimeConfidence_constraint; +ber_type_decoder_f TimeConfidence_decode_ber; +der_type_encoder_f TimeConfidence_encode_der; +xer_type_decoder_f TimeConfidence_decode_xer; +xer_type_encoder_f TimeConfidence_encode_xer; +jer_type_encoder_f TimeConfidence_encode_jer; +oer_type_decoder_f TimeConfidence_decode_oer; +oer_type_encoder_f TimeConfidence_encode_oer; +per_type_decoder_f TimeConfidence_decode_uper; +per_type_encoder_f TimeConfidence_encode_uper; +per_type_decoder_f TimeConfidence_decode_aper; +per_type_encoder_f TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeIntervalConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeIntervalConfidence.h new file mode 100644 index 000000000..c70c9534e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeIntervalConfidence.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TimeIntervalConfidence_H_ +#define _TimeIntervalConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeIntervalConfidence */ +typedef long TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence; +asn_struct_free_f TimeIntervalConfidence_free; +asn_struct_print_f TimeIntervalConfidence_print; +asn_constr_check_f TimeIntervalConfidence_constraint; +ber_type_decoder_f TimeIntervalConfidence_decode_ber; +der_type_encoder_f TimeIntervalConfidence_encode_der; +xer_type_decoder_f TimeIntervalConfidence_decode_xer; +xer_type_encoder_f TimeIntervalConfidence_encode_xer; +jer_type_encoder_f TimeIntervalConfidence_encode_jer; +oer_type_decoder_f TimeIntervalConfidence_decode_oer; +oer_type_encoder_f TimeIntervalConfidence_encode_oer; +per_type_decoder_f TimeIntervalConfidence_decode_uper; +per_type_encoder_f TimeIntervalConfidence_encode_uper; +per_type_decoder_f TimeIntervalConfidence_decode_aper; +per_type_encoder_f TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeIntervalConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeOffset.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeOffset.h new file mode 100644 index 000000000..68566958c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeOffset.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TimeOffset_H_ +#define _TimeOffset_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeOffset */ +typedef long TimeOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeOffset; +asn_struct_free_f TimeOffset_free; +asn_struct_print_f TimeOffset_print; +asn_constr_check_f TimeOffset_constraint; +ber_type_decoder_f TimeOffset_decode_ber; +der_type_encoder_f TimeOffset_encode_der; +xer_type_decoder_f TimeOffset_decode_xer; +xer_type_encoder_f TimeOffset_encode_xer; +jer_type_encoder_f TimeOffset_encode_jer; +oer_type_decoder_f TimeOffset_decode_oer; +oer_type_encoder_f TimeOffset_encode_oer; +per_type_decoder_f TimeOffset_decode_uper; +per_type_encoder_f TimeOffset_encode_uper; +per_type_decoder_f TimeOffset_decode_aper; +per_type_encoder_f TimeOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeOffset_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeRemaining.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeRemaining.h new file mode 100644 index 000000000..4c97db2b6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TimeRemaining.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TimeRemaining_H_ +#define _TimeRemaining_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TimeRemaining */ +typedef long TimeRemaining_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeRemaining_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeRemaining; +asn_struct_free_f TimeRemaining_free; +asn_struct_print_f TimeRemaining_print; +asn_constr_check_f TimeRemaining_constraint; +ber_type_decoder_f TimeRemaining_decode_ber; +der_type_encoder_f TimeRemaining_encode_der; +xer_type_decoder_f TimeRemaining_decode_xer; +xer_type_encoder_f TimeRemaining_encode_xer; +jer_type_encoder_f TimeRemaining_encode_jer; +oer_type_decoder_f TimeRemaining_decode_oer; +oer_type_encoder_f TimeRemaining_encode_oer; +per_type_decoder_f TimeRemaining_decode_uper; +per_type_encoder_f TimeRemaining_encode_uper; +per_type_decoder_f TimeRemaining_decode_aper; +per_type_encoder_f TimeRemaining_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeRemaining_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TireData.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TireData.h new file mode 100644 index 000000000..002437b60 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TireData.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TireData_H_ +#define _TireData_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TireLocation.h" +#include "TirePressure.h" +#include "TireTemp.h" +#include "WheelSensorStatus.h" +#include "WheelEndElectFault.h" +#include "TireLeakageRate.h" +#include "TirePressureThresholdDetection.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TireData */ +typedef struct TireData { + TireLocation_t *location; /* OPTIONAL */ + TirePressure_t *pressure; /* OPTIONAL */ + TireTemp_t *temp; /* OPTIONAL */ + WheelSensorStatus_t *wheelSensorStatus; /* OPTIONAL */ + WheelEndElectFault_t *wheelEndElectFault; /* OPTIONAL */ + TireLeakageRate_t *leakageRate; /* OPTIONAL */ + TirePressureThresholdDetection_t *detection; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TireData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TireData; +extern asn_SEQUENCE_specifics_t asn_SPC_TireData_specs_1; +extern asn_TYPE_member_t asn_MBR_TireData_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TireData_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TireDataList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TireDataList.h new file mode 100644 index 000000000..ca0900470 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TireDataList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TireDataList_H_ +#define _TireDataList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TireData; + +/* TireDataList */ +typedef struct TireDataList { + A_SEQUENCE_OF(struct TireData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TireDataList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TireDataList; +extern asn_SET_OF_specifics_t asn_SPC_TireDataList_specs_1; +extern asn_TYPE_member_t asn_MBR_TireDataList_1[1]; +extern asn_per_constraints_t asn_PER_type_TireDataList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TireDataList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TireLeakageRate.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TireLeakageRate.h new file mode 100644 index 000000000..0dfa57721 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TireLeakageRate.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TireLeakageRate_H_ +#define _TireLeakageRate_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TireLeakageRate */ +typedef long TireLeakageRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TireLeakageRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TireLeakageRate; +asn_struct_free_f TireLeakageRate_free; +asn_struct_print_f TireLeakageRate_print; +asn_constr_check_f TireLeakageRate_constraint; +ber_type_decoder_f TireLeakageRate_decode_ber; +der_type_encoder_f TireLeakageRate_encode_der; +xer_type_decoder_f TireLeakageRate_decode_xer; +xer_type_encoder_f TireLeakageRate_encode_xer; +jer_type_encoder_f TireLeakageRate_encode_jer; +oer_type_decoder_f TireLeakageRate_decode_oer; +oer_type_encoder_f TireLeakageRate_encode_oer; +per_type_decoder_f TireLeakageRate_decode_uper; +per_type_encoder_f TireLeakageRate_encode_uper; +per_type_decoder_f TireLeakageRate_decode_aper; +per_type_encoder_f TireLeakageRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TireLeakageRate_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TireLocation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TireLocation.h new file mode 100644 index 000000000..37fba225c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TireLocation.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TireLocation_H_ +#define _TireLocation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TireLocation */ +typedef long TireLocation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TireLocation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TireLocation; +asn_struct_free_f TireLocation_free; +asn_struct_print_f TireLocation_print; +asn_constr_check_f TireLocation_constraint; +ber_type_decoder_f TireLocation_decode_ber; +der_type_encoder_f TireLocation_encode_der; +xer_type_decoder_f TireLocation_decode_xer; +xer_type_encoder_f TireLocation_encode_xer; +jer_type_encoder_f TireLocation_encode_jer; +oer_type_decoder_f TireLocation_decode_oer; +oer_type_encoder_f TireLocation_encode_oer; +per_type_decoder_f TireLocation_decode_uper; +per_type_encoder_f TireLocation_encode_uper; +per_type_decoder_f TireLocation_decode_aper; +per_type_encoder_f TireLocation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TireLocation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TirePressure.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TirePressure.h new file mode 100644 index 000000000..e80ffe4d6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TirePressure.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TirePressure_H_ +#define _TirePressure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TirePressure */ +typedef long TirePressure_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TirePressure_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TirePressure; +asn_struct_free_f TirePressure_free; +asn_struct_print_f TirePressure_print; +asn_constr_check_f TirePressure_constraint; +ber_type_decoder_f TirePressure_decode_ber; +der_type_encoder_f TirePressure_encode_der; +xer_type_decoder_f TirePressure_decode_xer; +xer_type_encoder_f TirePressure_encode_xer; +jer_type_encoder_f TirePressure_encode_jer; +oer_type_decoder_f TirePressure_decode_oer; +oer_type_encoder_f TirePressure_encode_oer; +per_type_decoder_f TirePressure_decode_uper; +per_type_encoder_f TirePressure_encode_uper; +per_type_decoder_f TirePressure_decode_aper; +per_type_encoder_f TirePressure_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TirePressure_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TirePressureThresholdDetection.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TirePressureThresholdDetection.h new file mode 100644 index 000000000..28282bb2d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TirePressureThresholdDetection.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TirePressureThresholdDetection_H_ +#define _TirePressureThresholdDetection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TirePressureThresholdDetection { + TirePressureThresholdDetection_noData = 0, + TirePressureThresholdDetection_overPressure = 1, + TirePressureThresholdDetection_noWarningPressure = 2, + TirePressureThresholdDetection_underPressure = 3, + TirePressureThresholdDetection_extremeUnderPressure = 4, + TirePressureThresholdDetection_undefined = 5, + TirePressureThresholdDetection_errorIndicator = 6, + TirePressureThresholdDetection_notAvailable = 7 +} e_TirePressureThresholdDetection; + +/* TirePressureThresholdDetection */ +typedef long TirePressureThresholdDetection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TirePressureThresholdDetection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TirePressureThresholdDetection; +extern const asn_INTEGER_specifics_t asn_SPC_TirePressureThresholdDetection_specs_1; +asn_struct_free_f TirePressureThresholdDetection_free; +asn_struct_print_f TirePressureThresholdDetection_print; +asn_constr_check_f TirePressureThresholdDetection_constraint; +ber_type_decoder_f TirePressureThresholdDetection_decode_ber; +der_type_encoder_f TirePressureThresholdDetection_encode_der; +xer_type_decoder_f TirePressureThresholdDetection_decode_xer; +xer_type_encoder_f TirePressureThresholdDetection_encode_xer; +jer_type_encoder_f TirePressureThresholdDetection_encode_jer; +oer_type_decoder_f TirePressureThresholdDetection_decode_oer; +oer_type_encoder_f TirePressureThresholdDetection_encode_oer; +per_type_decoder_f TirePressureThresholdDetection_decode_uper; +per_type_encoder_f TirePressureThresholdDetection_encode_uper; +per_type_decoder_f TirePressureThresholdDetection_decode_aper; +per_type_encoder_f TirePressureThresholdDetection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TirePressureThresholdDetection_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TireTemp.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TireTemp.h new file mode 100644 index 000000000..40b5dc5da --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TireTemp.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TireTemp_H_ +#define _TireTemp_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TireTemp */ +typedef long TireTemp_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TireTemp_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TireTemp; +asn_struct_free_f TireTemp_free; +asn_struct_print_f TireTemp_print; +asn_constr_check_f TireTemp_constraint; +ber_type_decoder_f TireTemp_decode_ber; +der_type_encoder_f TireTemp_encode_der; +xer_type_decoder_f TireTemp_decode_xer; +xer_type_encoder_f TireTemp_encode_xer; +jer_type_encoder_f TireTemp_encode_jer; +oer_type_decoder_f TireTemp_decode_oer; +oer_type_encoder_f TireTemp_encode_oer; +per_type_decoder_f TireTemp_decode_uper; +per_type_encoder_f TireTemp_encode_uper; +per_type_decoder_f TireTemp_decode_aper; +per_type_encoder_f TireTemp_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TireTemp_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TractionControlStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TractionControlStatus.h new file mode 100644 index 000000000..49a0bfb2a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TractionControlStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TractionControlStatus_H_ +#define _TractionControlStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TractionControlStatus { + TractionControlStatus_unavailable = 0, + TractionControlStatus_off = 1, + TractionControlStatus_on = 2, + TractionControlStatus_engaged = 3 +} e_TractionControlStatus; + +/* TractionControlStatus */ +typedef long TractionControlStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TractionControlStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TractionControlStatus; +extern const asn_INTEGER_specifics_t asn_SPC_TractionControlStatus_specs_1; +asn_struct_free_f TractionControlStatus_free; +asn_struct_print_f TractionControlStatus_print; +asn_constr_check_f TractionControlStatus_constraint; +ber_type_decoder_f TractionControlStatus_decode_ber; +der_type_encoder_f TractionControlStatus_encode_der; +xer_type_decoder_f TractionControlStatus_decode_xer; +xer_type_encoder_f TractionControlStatus_encode_xer; +jer_type_encoder_f TractionControlStatus_encode_jer; +oer_type_decoder_f TractionControlStatus_decode_oer; +oer_type_encoder_f TractionControlStatus_encode_oer; +per_type_decoder_f TractionControlStatus_decode_uper; +per_type_encoder_f TractionControlStatus_encode_uper; +per_type_decoder_f TractionControlStatus_decode_aper; +per_type_encoder_f TractionControlStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TractionControlStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerData.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerData.h new file mode 100644 index 000000000..68a58f261 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerData.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TrailerData_H_ +#define _TrailerData_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SSPindex.h" +#include "PivotPointDescription.h" +#include "TrailerUnitDescriptionList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TrailerData */ +typedef struct TrailerData { + SSPindex_t notUsed; + PivotPointDescription_t connection; + TrailerUnitDescriptionList_t units; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerData; +extern asn_SEQUENCE_specifics_t asn_SPC_TrailerData_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerData_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerData_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerHistoryPoint.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerHistoryPoint.h new file mode 100644 index 000000000..906eaab87 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerHistoryPoint.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TrailerHistoryPoint_H_ +#define _TrailerHistoryPoint_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Common_Angle.h" +#include "TimeOffset.h" +#include "Node-XY-24b.h" +#include "VertOffset-B07.h" +#include "CoarseHeading.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TrailerHistoryPoint */ +typedef struct TrailerHistoryPoint { + Common_Angle_t pivotAngle; + TimeOffset_t timeOffset; + Node_XY_24b_t positionOffset; + VertOffset_B07_t *elevationOffset; /* OPTIONAL */ + CoarseHeading_t *heading; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerHistoryPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerHistoryPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_TrailerHistoryPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerHistoryPoint_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerHistoryPoint_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerHistoryPointList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerHistoryPointList.h new file mode 100644 index 000000000..16f8ddc33 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerHistoryPointList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TrailerHistoryPointList_H_ +#define _TrailerHistoryPointList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TrailerHistoryPoint; + +/* TrailerHistoryPointList */ +typedef struct TrailerHistoryPointList { + A_SEQUENCE_OF(struct TrailerHistoryPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerHistoryPointList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerHistoryPointList; +extern asn_SET_OF_specifics_t asn_SPC_TrailerHistoryPointList_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerHistoryPointList_1[1]; +extern asn_per_constraints_t asn_PER_type_TrailerHistoryPointList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerHistoryPointList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerMass.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerMass.h new file mode 100644 index 000000000..2979288eb --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerMass.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TrailerMass_H_ +#define _TrailerMass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TrailerMass */ +typedef long TrailerMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TrailerMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TrailerMass; +asn_struct_free_f TrailerMass_free; +asn_struct_print_f TrailerMass_print; +asn_constr_check_f TrailerMass_constraint; +ber_type_decoder_f TrailerMass_decode_ber; +der_type_encoder_f TrailerMass_encode_der; +xer_type_decoder_f TrailerMass_decode_xer; +xer_type_encoder_f TrailerMass_encode_xer; +jer_type_encoder_f TrailerMass_encode_jer; +oer_type_decoder_f TrailerMass_decode_oer; +oer_type_encoder_f TrailerMass_encode_oer; +per_type_decoder_f TrailerMass_decode_uper; +per_type_encoder_f TrailerMass_encode_uper; +per_type_decoder_f TrailerMass_decode_aper; +per_type_encoder_f TrailerMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerMass_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerUnitDescription.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerUnitDescription.h new file mode 100644 index 000000000..f1148cd06 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerUnitDescription.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TrailerUnitDescription_H_ +#define _TrailerUnitDescription_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IsDolly.h" +#include "VehicleWidth.h" +#include "VehicleLength.h" +#include "VehicleHeight.h" +#include "TrailerMass.h" +#include "PivotPointDescription.h" +#include "Offset-B12.h" +#include "Node-XY-24b.h" +#include "VertOffset-B07.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BumperHeights; +struct PivotPointDescription; +struct TrailerHistoryPointList; + +/* TrailerUnitDescription */ +typedef struct TrailerUnitDescription { + IsDolly_t isDolly; + VehicleWidth_t width; + VehicleLength_t length; + VehicleHeight_t *height; /* OPTIONAL */ + TrailerMass_t *mass; /* OPTIONAL */ + struct BumperHeights *bumperHeights; /* OPTIONAL */ + VehicleHeight_t *centerOfGravity; /* OPTIONAL */ + PivotPointDescription_t frontPivot; + struct PivotPointDescription *rearPivot; /* OPTIONAL */ + Offset_B12_t *rearWheelOffset; /* OPTIONAL */ + Node_XY_24b_t positionOffset; + VertOffset_B07_t *elevationOffset; /* OPTIONAL */ + struct TrailerHistoryPointList *crumbData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerUnitDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerUnitDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_TrailerUnitDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerUnitDescription_1[13]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerUnitDescription_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerUnitDescriptionList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerUnitDescriptionList.h new file mode 100644 index 000000000..d54df3eb9 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerUnitDescriptionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TrailerUnitDescriptionList_H_ +#define _TrailerUnitDescriptionList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TrailerUnitDescription; + +/* TrailerUnitDescriptionList */ +typedef struct TrailerUnitDescriptionList { + A_SEQUENCE_OF(struct TrailerUnitDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TrailerUnitDescriptionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TrailerUnitDescriptionList; +extern asn_SET_OF_specifics_t asn_SPC_TrailerUnitDescriptionList_specs_1; +extern asn_TYPE_member_t asn_MBR_TrailerUnitDescriptionList_1[1]; +extern asn_per_constraints_t asn_PER_type_TrailerUnitDescriptionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerUnitDescriptionList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerWeight.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerWeight.h new file mode 100644 index 000000000..7e0e2a4c6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TrailerWeight.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TrailerWeight_H_ +#define _TrailerWeight_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TrailerWeight */ +typedef long TrailerWeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TrailerWeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TrailerWeight; +asn_struct_free_f TrailerWeight_free; +asn_struct_print_f TrailerWeight_print; +asn_constr_check_f TrailerWeight_constraint; +ber_type_decoder_f TrailerWeight_decode_ber; +der_type_encoder_f TrailerWeight_encode_der; +xer_type_decoder_f TrailerWeight_decode_xer; +xer_type_encoder_f TrailerWeight_encode_xer; +jer_type_encoder_f TrailerWeight_encode_jer; +oer_type_decoder_f TrailerWeight_decode_oer; +oer_type_encoder_f TrailerWeight_encode_oer; +per_type_decoder_f TrailerWeight_decode_uper; +per_type_encoder_f TrailerWeight_encode_uper; +per_type_decoder_f TrailerWeight_decode_aper; +per_type_encoder_f TrailerWeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrailerWeight_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TransitStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TransitStatus.h new file mode 100644 index 000000000..040d25889 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TransitStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TransitStatus_H_ +#define _TransitStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitStatus { + TransitStatus_none = 0, + TransitStatus_anADAuse = 1, + TransitStatus_aBikeLoad = 2, + TransitStatus_doorOpen = 3, + TransitStatus_occM = 4, + TransitStatus_occL = 5 +} e_TransitStatus; + +/* TransitStatus */ +typedef BIT_STRING_t TransitStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransitStatus; +asn_struct_free_f TransitStatus_free; +asn_struct_print_f TransitStatus_print; +asn_constr_check_f TransitStatus_constraint; +ber_type_decoder_f TransitStatus_decode_ber; +der_type_encoder_f TransitStatus_encode_der; +xer_type_decoder_f TransitStatus_decode_xer; +xer_type_encoder_f TransitStatus_encode_xer; +jer_type_encoder_f TransitStatus_encode_jer; +oer_type_decoder_f TransitStatus_decode_oer; +oer_type_encoder_f TransitStatus_encode_oer; +per_type_decoder_f TransitStatus_decode_uper; +per_type_encoder_f TransitStatus_encode_uper; +per_type_decoder_f TransitStatus_decode_aper; +per_type_encoder_f TransitStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TransitVehicleOccupancy.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TransitVehicleOccupancy.h new file mode 100644 index 000000000..3455673a1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TransitVehicleOccupancy.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TransitVehicleOccupancy_H_ +#define _TransitVehicleOccupancy_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleOccupancy { + TransitVehicleOccupancy_occupancyUnknown = 0, + TransitVehicleOccupancy_occupancyEmpty = 1, + TransitVehicleOccupancy_occupancyVeryLow = 2, + TransitVehicleOccupancy_occupancyLow = 3, + TransitVehicleOccupancy_occupancyMed = 4, + TransitVehicleOccupancy_occupancyHigh = 5, + TransitVehicleOccupancy_occupancyNearlyFull = 6, + TransitVehicleOccupancy_occupancyFull = 7 +} e_TransitVehicleOccupancy; + +/* TransitVehicleOccupancy */ +typedef long TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1; +asn_struct_free_f TransitVehicleOccupancy_free; +asn_struct_print_f TransitVehicleOccupancy_print; +asn_constr_check_f TransitVehicleOccupancy_constraint; +ber_type_decoder_f TransitVehicleOccupancy_decode_ber; +der_type_encoder_f TransitVehicleOccupancy_encode_der; +xer_type_decoder_f TransitVehicleOccupancy_decode_xer; +xer_type_encoder_f TransitVehicleOccupancy_encode_xer; +jer_type_encoder_f TransitVehicleOccupancy_encode_jer; +oer_type_decoder_f TransitVehicleOccupancy_decode_oer; +oer_type_encoder_f TransitVehicleOccupancy_encode_oer; +per_type_decoder_f TransitVehicleOccupancy_decode_uper; +per_type_encoder_f TransitVehicleOccupancy_encode_uper; +per_type_decoder_f TransitVehicleOccupancy_decode_aper; +per_type_encoder_f TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleOccupancy_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TransitVehicleStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TransitVehicleStatus.h new file mode 100644 index 000000000..f275475a0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TransitVehicleStatus.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TransitVehicleStatus_H_ +#define _TransitVehicleStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransitVehicleStatus { + TransitVehicleStatus_loading = 0, + TransitVehicleStatus_anADAuse = 1, + TransitVehicleStatus_aBikeLoad = 2, + TransitVehicleStatus_doorOpen = 3, + TransitVehicleStatus_charging = 4, + TransitVehicleStatus_atStopLine = 5 +} e_TransitVehicleStatus; + +/* TransitVehicleStatus */ +typedef BIT_STRING_t TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus; +asn_struct_free_f TransitVehicleStatus_free; +asn_struct_print_f TransitVehicleStatus_print; +asn_constr_check_f TransitVehicleStatus_constraint; +ber_type_decoder_f TransitVehicleStatus_decode_ber; +der_type_encoder_f TransitVehicleStatus_encode_der; +xer_type_decoder_f TransitVehicleStatus_decode_xer; +xer_type_encoder_f TransitVehicleStatus_encode_xer; +jer_type_encoder_f TransitVehicleStatus_encode_jer; +oer_type_decoder_f TransitVehicleStatus_decode_oer; +oer_type_encoder_f TransitVehicleStatus_encode_oer; +per_type_decoder_f TransitVehicleStatus_decode_uper; +per_type_encoder_f TransitVehicleStatus_encode_uper; +per_type_decoder_f TransitVehicleStatus_decode_aper; +per_type_encoder_f TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransitVehicleStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TransmissionAndSpeed.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TransmissionAndSpeed.h new file mode 100644 index 000000000..2be106538 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TransmissionAndSpeed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TransmissionAndSpeed_H_ +#define _TransmissionAndSpeed_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TransmissionState.h" +#include "Velocity.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransmissionAndSpeed */ +typedef struct TransmissionAndSpeed { + TransmissionState_t transmisson; + Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionAndSpeed_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TransmissionState.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TransmissionState.h new file mode 100644 index 000000000..ac3536d91 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TransmissionState.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TransmissionState_H_ +#define _TransmissionState_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionState { + TransmissionState_neutral = 0, + TransmissionState_park = 1, + TransmissionState_forwardGears = 2, + TransmissionState_reverseGears = 3, + TransmissionState_reserved1 = 4, + TransmissionState_reserved2 = 5, + TransmissionState_reserved3 = 6, + TransmissionState_unavailable = 7 +} e_TransmissionState; + +/* TransmissionState */ +typedef long TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1; +asn_struct_free_f TransmissionState_free; +asn_struct_print_f TransmissionState_print; +asn_constr_check_f TransmissionState_constraint; +ber_type_decoder_f TransmissionState_decode_ber; +der_type_encoder_f TransmissionState_encode_der; +xer_type_decoder_f TransmissionState_decode_xer; +xer_type_encoder_f TransmissionState_encode_xer; +jer_type_encoder_f TransmissionState_encode_jer; +oer_type_decoder_f TransmissionState_decode_oer; +oer_type_encoder_f TransmissionState_encode_oer; +per_type_decoder_f TransmissionState_decode_uper; +per_type_encoder_f TransmissionState_encode_uper; +per_type_decoder_f TransmissionState_decode_aper; +per_type_encoder_f TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionState_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerDataFrame.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerDataFrame.h new file mode 100644 index 000000000..20c7fa22c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerDataFrame.h @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TravelerDataFrame_H_ +#define _TravelerDataFrame_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SSPindex.h" +#include "TravelerInfoType.h" +#include "DYear.h" +#include "MinuteOfTheYear.h" +#include "MinutesDuration.h" +#include "SignPrority.h" +#include "URL-Short.h" +#include "FurtherInfoID.h" +#include "RoadSignID.h" +#include "constr_CHOICE.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "ITIScodesAndText.h" +#include "WorkZone.h" +#include "GenericSignage.h" +#include "SpeedLimit.h" +#include "ExitService.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TravelerDataFrame__msgId_PR { + TravelerDataFrame__msgId_PR_NOTHING, /* No components present */ + TravelerDataFrame__msgId_PR_furtherInfoID, + TravelerDataFrame__msgId_PR_roadSignID +} TravelerDataFrame__msgId_PR; +typedef enum TravelerDataFrame__content_PR { + TravelerDataFrame__content_PR_NOTHING, /* No components present */ + TravelerDataFrame__content_PR_advisory, + TravelerDataFrame__content_PR_workZone, + TravelerDataFrame__content_PR_genericSign, + TravelerDataFrame__content_PR_speedLimit, + TravelerDataFrame__content_PR_exitService +} TravelerDataFrame__content_PR; + +/* Forward declarations */ +struct GeographicalPath; + +/* TravelerDataFrame */ +typedef struct TravelerDataFrame { + SSPindex_t notUsed; + TravelerInfoType_t frameType; + struct TravelerDataFrame__msgId { + TravelerDataFrame__msgId_PR present; + union TravelerDataFrame__msgId_u { + FurtherInfoID_t furtherInfoID; + RoadSignID_t roadSignID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } msgId; + DYear_t *startYear; /* OPTIONAL */ + MinuteOfTheYear_t startTime; + MinutesDuration_t durationTime; + SignPrority_t priority; + SSPindex_t notUsed1; + struct TravelerDataFrame__regions { + A_SEQUENCE_OF(struct GeographicalPath) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regions; + SSPindex_t notUsed2; + SSPindex_t notUsed3; + struct TravelerDataFrame__content { + TravelerDataFrame__content_PR present; + union TravelerDataFrame__content_u { + ITIScodesAndText_t advisory; + WorkZone_t workZone; + GenericSignage_t genericSign; + SpeedLimit_t speedLimit; + ExitService_t exitService; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } content; + URL_Short_t *url; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TravelerDataFrame_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TravelerDataFrame; +extern asn_SEQUENCE_specifics_t asn_SPC_TravelerDataFrame_specs_1; +extern asn_TYPE_member_t asn_MBR_TravelerDataFrame_1[13]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TravelerDataFrame_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerDataFrameList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerDataFrameList.h new file mode 100644 index 000000000..f78af7801 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerDataFrameList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TravelerDataFrameList_H_ +#define _TravelerDataFrameList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TravelerDataFrame; + +/* TravelerDataFrameList */ +typedef struct TravelerDataFrameList { + A_SEQUENCE_OF(struct TravelerDataFrame) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TravelerDataFrameList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TravelerDataFrameList; +extern asn_SET_OF_specifics_t asn_SPC_TravelerDataFrameList_specs_1; +extern asn_TYPE_member_t asn_MBR_TravelerDataFrameList_1[1]; +extern asn_per_constraints_t asn_PER_type_TravelerDataFrameList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TravelerDataFrameList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerInfoType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerInfoType.h new file mode 100644 index 000000000..f0d8f31c4 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerInfoType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TravelerInfoType_H_ +#define _TravelerInfoType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TravelerInfoType { + TravelerInfoType_unknown = 0, + TravelerInfoType_advisory = 1, + TravelerInfoType_roadSignage = 2, + TravelerInfoType_commercialSignage = 3 + /* + * Enumeration is extensible + */ +} e_TravelerInfoType; + +/* TravelerInfoType */ +typedef long TravelerInfoType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TravelerInfoType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TravelerInfoType; +extern const asn_INTEGER_specifics_t asn_SPC_TravelerInfoType_specs_1; +asn_struct_free_f TravelerInfoType_free; +asn_struct_print_f TravelerInfoType_print; +asn_constr_check_f TravelerInfoType_constraint; +ber_type_decoder_f TravelerInfoType_decode_ber; +der_type_encoder_f TravelerInfoType_encode_der; +xer_type_decoder_f TravelerInfoType_decode_xer; +xer_type_encoder_f TravelerInfoType_encode_xer; +jer_type_encoder_f TravelerInfoType_encode_jer; +oer_type_decoder_f TravelerInfoType_decode_oer; +oer_type_encoder_f TravelerInfoType_encode_oer; +per_type_decoder_f TravelerInfoType_decode_uper; +per_type_encoder_f TravelerInfoType_encode_uper; +per_type_decoder_f TravelerInfoType_decode_aper; +per_type_encoder_f TravelerInfoType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TravelerInfoType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerInformation.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerInformation.h new file mode 100644 index 000000000..fc620d64f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/TravelerInformation.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _TravelerInformation_H_ +#define _TravelerInformation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Common_MsgCount.h" +#include "MinuteOfTheYear.h" +#include "UniqueMSGID.h" +#include "URL-Base.h" +#include "TravelerDataFrameList.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_TravelerInformation; + +/* TravelerInformation */ +typedef struct TravelerInformation { + Common_MsgCount_t msgCnt; + MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + UniqueMSGID_t *packetID; /* OPTIONAL */ + URL_Base_t *urlB; /* OPTIONAL */ + TravelerDataFrameList_t dataFrames; + struct TravelerInformation__regional { + A_SEQUENCE_OF(struct Reg_TravelerInformation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TravelerInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TravelerInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_TravelerInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_TravelerInformation_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TravelerInformation_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Base.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Base.h new file mode 100644 index 000000000..b59dd30a0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Base.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _URL_Base_H_ +#define _URL_Base_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IA5String.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* URL-Base */ +typedef IA5String_t URL_Base_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_URL_Base_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_URL_Base; +asn_struct_free_f URL_Base_free; +asn_struct_print_f URL_Base_print; +asn_constr_check_f URL_Base_constraint; +ber_type_decoder_f URL_Base_decode_ber; +der_type_encoder_f URL_Base_encode_der; +xer_type_decoder_f URL_Base_decode_xer; +xer_type_encoder_f URL_Base_encode_xer; +jer_type_encoder_f URL_Base_encode_jer; +oer_type_decoder_f URL_Base_decode_oer; +oer_type_encoder_f URL_Base_encode_oer; +per_type_decoder_f URL_Base_decode_uper; +per_type_encoder_f URL_Base_encode_uper; +per_type_decoder_f URL_Base_decode_aper; +per_type_encoder_f URL_Base_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _URL_Base_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Link.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Link.h new file mode 100644 index 000000000..b353d8330 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Link.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _URL_Link_H_ +#define _URL_Link_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IA5String.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* URL-Link */ +typedef IA5String_t URL_Link_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_URL_Link; +asn_struct_free_f URL_Link_free; +asn_struct_print_f URL_Link_print; +asn_constr_check_f URL_Link_constraint; +ber_type_decoder_f URL_Link_decode_ber; +der_type_encoder_f URL_Link_encode_der; +xer_type_decoder_f URL_Link_decode_xer; +xer_type_encoder_f URL_Link_encode_xer; +jer_type_encoder_f URL_Link_encode_jer; +oer_type_decoder_f URL_Link_decode_oer; +oer_type_encoder_f URL_Link_encode_oer; +per_type_decoder_f URL_Link_decode_uper; +per_type_encoder_f URL_Link_encode_uper; +per_type_decoder_f URL_Link_decode_aper; +per_type_encoder_f URL_Link_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _URL_Link_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Short.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Short.h new file mode 100644 index 000000000..667202f0f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/URL-Short.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _URL_Short_H_ +#define _URL_Short_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IA5String.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* URL-Short */ +typedef IA5String_t URL_Short_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_URL_Short_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_URL_Short; +asn_struct_free_f URL_Short_free; +asn_struct_print_f URL_Short_print; +asn_constr_check_f URL_Short_constraint; +ber_type_decoder_f URL_Short_decode_ber; +der_type_encoder_f URL_Short_encode_der; +xer_type_decoder_f URL_Short_decode_xer; +xer_type_encoder_f URL_Short_encode_xer; +jer_type_encoder_f URL_Short_encode_jer; +oer_type_decoder_f URL_Short_decode_oer; +oer_type_encoder_f URL_Short_encode_oer; +per_type_decoder_f URL_Short_decode_uper; +per_type_encoder_f URL_Short_encode_uper; +per_type_decoder_f URL_Short_decode_aper; +per_type_encoder_f URL_Short_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _URL_Short_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/UniqueMSGID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/UniqueMSGID.h new file mode 100644 index 000000000..763f51a2d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/UniqueMSGID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _UniqueMSGID_H_ +#define _UniqueMSGID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* UniqueMSGID */ +typedef OCTET_STRING_t UniqueMSGID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_UniqueMSGID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_UniqueMSGID; +asn_struct_free_f UniqueMSGID_free; +asn_struct_print_f UniqueMSGID_print; +asn_constr_check_f UniqueMSGID_constraint; +ber_type_decoder_f UniqueMSGID_decode_ber; +der_type_encoder_f UniqueMSGID_encode_der; +xer_type_decoder_f UniqueMSGID_decode_xer; +xer_type_encoder_f UniqueMSGID_encode_xer; +jer_type_encoder_f UniqueMSGID_encode_jer; +oer_type_decoder_f UniqueMSGID_decode_oer; +oer_type_encoder_f UniqueMSGID_encode_oer; +per_type_decoder_f UniqueMSGID_decode_uper; +per_type_encoder_f UniqueMSGID_encode_uper; +per_type_decoder_f UniqueMSGID_decode_aper; +per_type_encoder_f UniqueMSGID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _UniqueMSGID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/UserSizeAndBehaviour.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/UserSizeAndBehaviour.h new file mode 100644 index 000000000..0d4b29398 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/UserSizeAndBehaviour.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _UserSizeAndBehaviour_H_ +#define _UserSizeAndBehaviour_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UserSizeAndBehaviour { + UserSizeAndBehaviour_unavailable = 0, + UserSizeAndBehaviour_smallStature = 1, + UserSizeAndBehaviour_largeStature = 2, + UserSizeAndBehaviour_erraticMoving = 3, + UserSizeAndBehaviour_slowMoving = 4 +} e_UserSizeAndBehaviour; + +/* UserSizeAndBehaviour */ +typedef BIT_STRING_t UserSizeAndBehaviour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_UserSizeAndBehaviour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_UserSizeAndBehaviour; +asn_struct_free_f UserSizeAndBehaviour_free; +asn_struct_print_f UserSizeAndBehaviour_print; +asn_constr_check_f UserSizeAndBehaviour_constraint; +ber_type_decoder_f UserSizeAndBehaviour_decode_ber; +der_type_encoder_f UserSizeAndBehaviour_encode_der; +xer_type_decoder_f UserSizeAndBehaviour_decode_xer; +xer_type_encoder_f UserSizeAndBehaviour_encode_xer; +jer_type_encoder_f UserSizeAndBehaviour_encode_jer; +oer_type_decoder_f UserSizeAndBehaviour_decode_oer; +oer_type_encoder_f UserSizeAndBehaviour_encode_oer; +per_type_decoder_f UserSizeAndBehaviour_decode_uper; +per_type_encoder_f UserSizeAndBehaviour_encode_uper; +per_type_decoder_f UserSizeAndBehaviour_decode_aper; +per_type_encoder_f UserSizeAndBehaviour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _UserSizeAndBehaviour_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VINstring.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VINstring.h new file mode 100644 index 000000000..50e3f9ccf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VINstring.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VINstring_H_ +#define _VINstring_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VINstring */ +typedef OCTET_STRING_t VINstring_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VINstring_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VINstring; +asn_struct_free_f VINstring_free; +asn_struct_print_f VINstring_print; +asn_constr_check_f VINstring_constraint; +ber_type_decoder_f VINstring_decode_ber; +der_type_encoder_f VINstring_encode_der; +xer_type_decoder_f VINstring_decode_xer; +xer_type_encoder_f VINstring_encode_xer; +jer_type_encoder_f VINstring_encode_jer; +oer_type_decoder_f VINstring_decode_oer; +oer_type_encoder_f VINstring_encode_oer; +per_type_decoder_f VINstring_decode_uper; +per_type_encoder_f VINstring_encode_uper; +per_type_decoder_f VINstring_decode_aper; +per_type_encoder_f VINstring_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VINstring_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ValidRegion.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ValidRegion.h new file mode 100644 index 000000000..267d102fe --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ValidRegion.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ValidRegion_H_ +#define _ValidRegion_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "HeadingSlice.h" +#include "Extent.h" +#include "ShapePointSet.h" +#include "Circle.h" +#include "RegionPointSet.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ValidRegion__area_PR { + ValidRegion__area_PR_NOTHING, /* No components present */ + ValidRegion__area_PR_shapePointSet, + ValidRegion__area_PR_circle, + ValidRegion__area_PR_regionPointSet +} ValidRegion__area_PR; + +/* ValidRegion */ +typedef struct ValidRegion { + HeadingSlice_t direction; + Extent_t *extent; /* OPTIONAL */ + struct ValidRegion__area { + ValidRegion__area_PR present; + union ValidRegion__area_u { + ShapePointSet_t shapePointSet; + Circle_t circle; + RegionPointSet_t regionPointSet; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } area; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ValidRegion_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ValidRegion; +extern asn_SEQUENCE_specifics_t asn_SPC_ValidRegion_specs_1; +extern asn_TYPE_member_t asn_MBR_ValidRegion_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ValidRegion_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleClassification.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleClassification.h new file mode 100644 index 000000000..dfe2e29d1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleClassification.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleClassification_H_ +#define _VehicleClassification_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BasicVehicleClass.h" +#include "BasicVehicleRole.h" +#include "Iso3833VehicleType.h" +#include "VehicleType.h" +#include "VehicleGroupAffected.h" +#include "IncidentResponseEquipment.h" +#include "ResponderGroupAffected.h" +#include "FuelType.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Reg_VehicleClassification; + +/* VehicleClassification */ +typedef struct VehicleClassification { + BasicVehicleClass_t *keyType; /* OPTIONAL */ + BasicVehicleRole_t *role; /* OPTIONAL */ + Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + VehicleType_t *hpmsType; /* OPTIONAL */ + VehicleGroupAffected_t *vehicleType; /* OPTIONAL */ + IncidentResponseEquipment_t *responseEquip; /* OPTIONAL */ + ResponderGroupAffected_t *responderType; /* OPTIONAL */ + FuelType_t *fuelType; /* OPTIONAL */ + struct VehicleClassification__regional { + A_SEQUENCE_OF(struct Reg_VehicleClassification) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleClassification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleClassification; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleClassification_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleClassification_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleClassification_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleData.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleData.h new file mode 100644 index 000000000..4bb2c2989 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleData.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleData_H_ +#define _VehicleData_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VehicleHeight.h" +#include "VehicleMass.h" +#include "TrailerWeight.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BumperHeights; + +/* VehicleData */ +typedef struct VehicleData { + VehicleHeight_t *height; /* OPTIONAL */ + struct BumperHeights *bumpers; /* OPTIONAL */ + VehicleMass_t *mass; /* OPTIONAL */ + TrailerWeight_t *trailerWeight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleData; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleData_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleData_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleData_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleEventFlags.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleEventFlags.h new file mode 100644 index 000000000..ada863479 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleEventFlags.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleEventFlags_H_ +#define _VehicleEventFlags_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleEventFlags { + VehicleEventFlags_eventHazardLights = 0, + VehicleEventFlags_eventStopLineViolation = 1, + VehicleEventFlags_eventABSactivated = 2, + VehicleEventFlags_eventTractionControlLoss = 3, + VehicleEventFlags_eventStabilityControlactivated = 4, + VehicleEventFlags_eventHazardousMaterials = 5, + VehicleEventFlags_eventReserved1 = 6, + VehicleEventFlags_eventHardBraking = 7, + VehicleEventFlags_eventLightsChanged = 8, + VehicleEventFlags_eventWipersChanged = 9, + VehicleEventFlags_eventFlatTire = 10, + VehicleEventFlags_eventDisabledVehicle = 11, + VehicleEventFlags_eventAirBagDeployment = 12 +} e_VehicleEventFlags; + +/* VehicleEventFlags */ +typedef BIT_STRING_t VehicleEventFlags_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleEventFlags_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleEventFlags; +asn_struct_free_f VehicleEventFlags_free; +asn_struct_print_f VehicleEventFlags_print; +asn_constr_check_f VehicleEventFlags_constraint; +ber_type_decoder_f VehicleEventFlags_decode_ber; +der_type_encoder_f VehicleEventFlags_encode_der; +xer_type_decoder_f VehicleEventFlags_decode_xer; +xer_type_encoder_f VehicleEventFlags_encode_xer; +jer_type_encoder_f VehicleEventFlags_encode_jer; +oer_type_decoder_f VehicleEventFlags_decode_oer; +oer_type_encoder_f VehicleEventFlags_encode_oer; +per_type_decoder_f VehicleEventFlags_decode_uper; +per_type_encoder_f VehicleEventFlags_encode_uper; +per_type_decoder_f VehicleEventFlags_decode_aper; +per_type_encoder_f VehicleEventFlags_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleEventFlags_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleGroupAffected.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleGroupAffected.h new file mode 100644 index 000000000..6d9c86591 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleGroupAffected.h @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleGroupAffected_H_ +#define _VehicleGroupAffected_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleGroupAffected { + VehicleGroupAffected_all_vehicles = 9217, + VehicleGroupAffected_bicycles = 9218, + VehicleGroupAffected_motorcycles = 9219, + VehicleGroupAffected_cars = 9220, + VehicleGroupAffected_light_vehicles = 9221, + VehicleGroupAffected_cars_and_light_vehicles = 9222, + VehicleGroupAffected_cars_with_trailers = 9223, + VehicleGroupAffected_cars_with_recreational_trailers = 9224, + VehicleGroupAffected_vehicles_with_trailers = 9225, + VehicleGroupAffected_heavy_vehicles = 9226, + VehicleGroupAffected_trucks = 9227, + VehicleGroupAffected_buses = 9228, + VehicleGroupAffected_articulated_buses = 9229, + VehicleGroupAffected_school_buses = 9230, + VehicleGroupAffected_vehicles_with_semi_trailers = 9231, + VehicleGroupAffected_vehicles_with_double_trailers = 9232, + VehicleGroupAffected_high_profile_vehicles = 9233, + VehicleGroupAffected_wide_vehicles = 9234, + VehicleGroupAffected_long_vehicles = 9235, + VehicleGroupAffected_hazardous_loads = 9236, + VehicleGroupAffected_exceptional_loads = 9237, + VehicleGroupAffected_abnormal_loads = 9238, + VehicleGroupAffected_convoys = 9239, + VehicleGroupAffected_maintenance_vehicles = 9240, + VehicleGroupAffected_delivery_vehicles = 9241, + VehicleGroupAffected_vehicles_with_even_numbered_license_plates = 9242, + VehicleGroupAffected_vehicles_with_odd_numbered_license_plates = 9243, + VehicleGroupAffected_vehicles_with_parking_permits = 9244, + VehicleGroupAffected_vehicles_with_catalytic_converters = 9245, + VehicleGroupAffected_vehicles_without_catalytic_converters = 9246, + VehicleGroupAffected_gas_powered_vehicles = 9247, + VehicleGroupAffected_diesel_powered_vehicles = 9248, + VehicleGroupAffected_lPG_vehicles = 9249, + VehicleGroupAffected_military_convoys = 9250, + VehicleGroupAffected_military_vehicles = 9251 + /* + * Enumeration is extensible + */ +} e_VehicleGroupAffected; + +/* VehicleGroupAffected */ +typedef long VehicleGroupAffected_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleGroupAffected_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleGroupAffected; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleGroupAffected_specs_1; +asn_struct_free_f VehicleGroupAffected_free; +asn_struct_print_f VehicleGroupAffected_print; +asn_constr_check_f VehicleGroupAffected_constraint; +ber_type_decoder_f VehicleGroupAffected_decode_ber; +der_type_encoder_f VehicleGroupAffected_encode_der; +xer_type_decoder_f VehicleGroupAffected_decode_xer; +xer_type_encoder_f VehicleGroupAffected_encode_xer; +jer_type_encoder_f VehicleGroupAffected_encode_jer; +oer_type_decoder_f VehicleGroupAffected_decode_oer; +oer_type_encoder_f VehicleGroupAffected_encode_oer; +per_type_decoder_f VehicleGroupAffected_decode_uper; +per_type_encoder_f VehicleGroupAffected_encode_uper; +per_type_decoder_f VehicleGroupAffected_decode_aper; +per_type_encoder_f VehicleGroupAffected_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleGroupAffected_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleHeight.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleHeight.h new file mode 100644 index 000000000..b03d802aa --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleHeight.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleHeight_H_ +#define _VehicleHeight_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleHeight */ +typedef long VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleHeight; +asn_struct_free_f VehicleHeight_free; +asn_struct_print_f VehicleHeight_print; +asn_constr_check_f VehicleHeight_constraint; +ber_type_decoder_f VehicleHeight_decode_ber; +der_type_encoder_f VehicleHeight_encode_der; +xer_type_decoder_f VehicleHeight_decode_xer; +xer_type_encoder_f VehicleHeight_encode_xer; +jer_type_encoder_f VehicleHeight_encode_jer; +oer_type_decoder_f VehicleHeight_decode_oer; +oer_type_encoder_f VehicleHeight_encode_oer; +per_type_decoder_f VehicleHeight_decode_uper; +per_type_encoder_f VehicleHeight_encode_uper; +per_type_decoder_f VehicleHeight_decode_aper; +per_type_encoder_f VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleHeight_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleID.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleID.h new file mode 100644 index 000000000..75ff324c6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleID_H_ +#define _VehicleID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TemporaryID.h" +#include "StationID.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleID_PR { + VehicleID_PR_NOTHING, /* No components present */ + VehicleID_PR_entityID, + VehicleID_PR_stationID +} VehicleID_PR; + +/* VehicleID */ +typedef struct VehicleID { + VehicleID_PR present; + union VehicleID_u { + TemporaryID_t entityID; + StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleID_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleIdent.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleIdent.h new file mode 100644 index 000000000..c115a0b2d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleIdent.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleIdent_H_ +#define _VehicleIdent_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DescriptiveName.h" +#include "VINstring.h" +#include "IA5String.h" +#include "VehicleType.h" +#include "VehicleGroupAffected.h" +#include "ResponderGroupAffected.h" +#include "IncidentResponseEquipment.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleIdent__vehicleClass_PR { + VehicleIdent__vehicleClass_PR_NOTHING, /* No components present */ + VehicleIdent__vehicleClass_PR_vGroup, + VehicleIdent__vehicleClass_PR_rGroup, + VehicleIdent__vehicleClass_PR_rEquip +} VehicleIdent__vehicleClass_PR; + +/* Forward declarations */ +struct VehicleID; + +/* VehicleIdent */ +typedef struct VehicleIdent { + DescriptiveName_t *name; /* OPTIONAL */ + VINstring_t *vin; /* OPTIONAL */ + IA5String_t *ownerCode; /* OPTIONAL */ + struct VehicleID *id; /* OPTIONAL */ + VehicleType_t *vehicleType; /* OPTIONAL */ + struct VehicleIdent__vehicleClass { + VehicleIdent__vehicleClass_PR present; + union VehicleIdent__vehicleClass_u { + VehicleGroupAffected_t vGroup; + ResponderGroupAffected_t rGroup; + IncidentResponseEquipment_t rEquip; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *vehicleClass; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleIdent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleIdent; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleIdent_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleIdent_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleIdent_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleLength.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleLength.h new file mode 100644 index 000000000..52f6a8ec3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleLength.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleLength_H_ +#define _VehicleLength_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleLength */ +typedef long VehicleLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleLength; +asn_struct_free_f VehicleLength_free; +asn_struct_print_f VehicleLength_print; +asn_constr_check_f VehicleLength_constraint; +ber_type_decoder_f VehicleLength_decode_ber; +der_type_encoder_f VehicleLength_encode_der; +xer_type_decoder_f VehicleLength_decode_xer; +xer_type_encoder_f VehicleLength_encode_xer; +jer_type_encoder_f VehicleLength_encode_jer; +oer_type_decoder_f VehicleLength_decode_oer; +oer_type_encoder_f VehicleLength_encode_oer; +per_type_decoder_f VehicleLength_decode_uper; +per_type_encoder_f VehicleLength_encode_uper; +per_type_decoder_f VehicleLength_decode_aper; +per_type_encoder_f VehicleLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleLength_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleMass.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleMass.h new file mode 100644 index 000000000..38e9f5f5e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleMass.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleMass_H_ +#define _VehicleMass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleMass */ +typedef long VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleMass; +asn_struct_free_f VehicleMass_free; +asn_struct_print_f VehicleMass_print; +asn_constr_check_f VehicleMass_constraint; +ber_type_decoder_f VehicleMass_decode_ber; +der_type_encoder_f VehicleMass_encode_der; +xer_type_decoder_f VehicleMass_decode_xer; +xer_type_encoder_f VehicleMass_encode_xer; +jer_type_encoder_f VehicleMass_encode_jer; +oer_type_decoder_f VehicleMass_decode_oer; +oer_type_encoder_f VehicleMass_encode_oer; +per_type_decoder_f VehicleMass_decode_uper; +per_type_encoder_f VehicleMass_encode_uper; +per_type_decoder_f VehicleMass_decode_aper; +per_type_encoder_f VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleMass_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleSafetyExtensions.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleSafetyExtensions.h new file mode 100644 index 000000000..4588e8f80 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleSafetyExtensions.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleSafetyExtensions_H_ +#define _VehicleSafetyExtensions_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VehicleEventFlags.h" +#include "ExteriorLights.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PathHistory; +struct PathPrediction; + +/* VehicleSafetyExtensions */ +typedef struct VehicleSafetyExtensions { + VehicleEventFlags_t *events; /* OPTIONAL */ + struct PathHistory *pathHistory; /* OPTIONAL */ + struct PathPrediction *pathPrediction; /* OPTIONAL */ + ExteriorLights_t *lights; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleSafetyExtensions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleSafetyExtensions; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleSafetyExtensions_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleSafetyExtensions_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleSafetyExtensions_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleSize.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleSize.h new file mode 100644 index 000000000..8853714a3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleSize.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleSize_H_ +#define _VehicleSize_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VehicleWidth.h" +#include "VehicleLength.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleSize */ +typedef struct VehicleSize { + VehicleWidth_t width; + VehicleLength_t length; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleSize_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleSize; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleSize_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleSize_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleSize_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatus.h new file mode 100644 index 000000000..3bc6bc47f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatus.h @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleStatus_H_ +#define _VehicleStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ExteriorLights.h" +#include "LightbarInUse.h" +#include "BrakeAppliedPressure.h" +#include "CoefficientOfFriction.h" +#include "SunSensor.h" +#include "RainSensor.h" +#include "AmbientAirTemperature.h" +#include "AmbientAirPressure.h" +#include "ThrottlePosition.h" +#include "SpeedConfidence.h" +#include "GNSSstatus.h" +#include "SteeringWheelAngle.h" +#include "SteeringWheelAngleConfidence.h" +#include "SteeringWheelAngleRateOfChange.h" +#include "DrivingWheelAngle.h" +#include "constr_SEQUENCE.h" +#include "VerticalAccelerationThreshold.h" +#include "YawRateConfidence.h" +#include "AccelerationConfidence.h" +#include "ObstacleDistance.h" +#include "Common_Angle.h" +#include "DDateTime.h" +#include "VehicleHeight.h" +#include "BumperHeights.h" +#include "VehicleMass.h" +#include "TrailerWeight.h" +#include "VehicleType.h" +#include "EssPrecipYesNo.h" +#include "EssPrecipRate.h" +#include "EssPrecipSituation.h" +#include "EssSolarRadiation.h" +#include "EssMobileFriction.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct WiperSet; +struct BrakeSystemStatus; +struct FullPositionVector; +struct SpeedandHeadingandThrottleConfidence; +struct VehicleIdent; +struct J1939data; +struct AccelerationSet4Way; +struct ConfidenceSet; + +/* VehicleStatus */ +typedef struct VehicleStatus { + ExteriorLights_t *lights; /* OPTIONAL */ + LightbarInUse_t *lightBar; /* OPTIONAL */ + struct WiperSet *wipers; /* OPTIONAL */ + struct BrakeSystemStatus *brakeStatus; /* OPTIONAL */ + BrakeAppliedPressure_t *brakePressure; /* OPTIONAL */ + CoefficientOfFriction_t *roadFriction; /* OPTIONAL */ + SunSensor_t *sunData; /* OPTIONAL */ + RainSensor_t *rainData; /* OPTIONAL */ + AmbientAirTemperature_t *airTemp; /* OPTIONAL */ + AmbientAirPressure_t *airPres; /* OPTIONAL */ + struct VehicleStatus__steering { + SteeringWheelAngle_t angle; + SteeringWheelAngleConfidence_t *confidence; /* OPTIONAL */ + SteeringWheelAngleRateOfChange_t *rate; /* OPTIONAL */ + DrivingWheelAngle_t *wheels; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *steering; + struct VehicleStatus__accelSets { + struct AccelerationSet4Way *accel4way; /* OPTIONAL */ + VerticalAccelerationThreshold_t *vertAccelThres; /* OPTIONAL */ + YawRateConfidence_t *yawRateCon; /* OPTIONAL */ + AccelerationConfidence_t *hozAccelCon; /* OPTIONAL */ + struct ConfidenceSet *confidenceSet; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *accelSets; + struct VehicleStatus__object { + ObstacleDistance_t obDist; + Common_Angle_t obDirect; + DDateTime_t dateTime; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *object; + struct FullPositionVector *fullPos; /* OPTIONAL */ + ThrottlePosition_t *throttlePos; /* OPTIONAL */ + struct SpeedandHeadingandThrottleConfidence *speedHeadC; /* OPTIONAL */ + SpeedConfidence_t *speedC; /* OPTIONAL */ + struct VehicleStatus__vehicleData { + VehicleHeight_t height; + BumperHeights_t bumpers; + VehicleMass_t mass; + TrailerWeight_t trailerWeight; + VehicleType_t type; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *vehicleData; + struct VehicleIdent *vehicleIdent; /* OPTIONAL */ + struct J1939data *j1939data; /* OPTIONAL */ + struct VehicleStatus__weatherReport { + EssPrecipYesNo_t isRaining; + EssPrecipRate_t *rainRate; /* OPTIONAL */ + EssPrecipSituation_t *precipSituation; /* OPTIONAL */ + EssSolarRadiation_t *solarRadiation; /* OPTIONAL */ + EssMobileFriction_t *friction; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *weatherReport; + GNSSstatus_t *gnssStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleStatus_1[22]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusDeviceTypeTag.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusDeviceTypeTag.h new file mode 100644 index 000000000..66f639339 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusDeviceTypeTag.h @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleStatusDeviceTypeTag_H_ +#define _VehicleStatusDeviceTypeTag_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleStatusDeviceTypeTag { + VehicleStatusDeviceTypeTag_unknown = 0, + VehicleStatusDeviceTypeTag_lights = 1, + VehicleStatusDeviceTypeTag_wipers = 2, + VehicleStatusDeviceTypeTag_brakes = 3, + VehicleStatusDeviceTypeTag_stab = 4, + VehicleStatusDeviceTypeTag_trac = 5, + VehicleStatusDeviceTypeTag_abs = 6, + VehicleStatusDeviceTypeTag_sunS = 7, + VehicleStatusDeviceTypeTag_rainS = 8, + VehicleStatusDeviceTypeTag_airTemp = 9, + VehicleStatusDeviceTypeTag_steering = 10, + VehicleStatusDeviceTypeTag_vertAccelThres = 11, + VehicleStatusDeviceTypeTag_vertAccel = 12, + VehicleStatusDeviceTypeTag_hozAccelLong = 13, + VehicleStatusDeviceTypeTag_hozAccelLat = 14, + VehicleStatusDeviceTypeTag_hozAccelCon = 15, + VehicleStatusDeviceTypeTag_accel4way = 16, + VehicleStatusDeviceTypeTag_confidenceSet = 17, + VehicleStatusDeviceTypeTag_obDist = 18, + VehicleStatusDeviceTypeTag_obDirect = 19, + VehicleStatusDeviceTypeTag_yaw = 20, + VehicleStatusDeviceTypeTag_yawRateCon = 21, + VehicleStatusDeviceTypeTag_dateTime = 22, + VehicleStatusDeviceTypeTag_fullPos = 23, + VehicleStatusDeviceTypeTag_position2D = 24, + VehicleStatusDeviceTypeTag_position3D = 25, + VehicleStatusDeviceTypeTag_vehicle = 26, + VehicleStatusDeviceTypeTag_speedHeadC = 27, + VehicleStatusDeviceTypeTag_speedC = 28 + /* + * Enumeration is extensible + */ +} e_VehicleStatusDeviceTypeTag; + +/* VehicleStatusDeviceTypeTag */ +typedef long VehicleStatusDeviceTypeTag_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleStatusDeviceTypeTag_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleStatusDeviceTypeTag; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleStatusDeviceTypeTag_specs_1; +asn_struct_free_f VehicleStatusDeviceTypeTag_free; +asn_struct_print_f VehicleStatusDeviceTypeTag_print; +asn_constr_check_f VehicleStatusDeviceTypeTag_constraint; +ber_type_decoder_f VehicleStatusDeviceTypeTag_decode_ber; +der_type_encoder_f VehicleStatusDeviceTypeTag_encode_der; +xer_type_decoder_f VehicleStatusDeviceTypeTag_decode_xer; +xer_type_encoder_f VehicleStatusDeviceTypeTag_encode_xer; +jer_type_encoder_f VehicleStatusDeviceTypeTag_encode_jer; +oer_type_decoder_f VehicleStatusDeviceTypeTag_decode_oer; +oer_type_encoder_f VehicleStatusDeviceTypeTag_encode_oer; +per_type_decoder_f VehicleStatusDeviceTypeTag_decode_uper; +per_type_encoder_f VehicleStatusDeviceTypeTag_encode_uper; +per_type_decoder_f VehicleStatusDeviceTypeTag_decode_aper; +per_type_encoder_f VehicleStatusDeviceTypeTag_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleStatusDeviceTypeTag_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusRequest.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusRequest.h new file mode 100644 index 000000000..73f8aa038 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusRequest.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleStatusRequest_H_ +#define _VehicleStatusRequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VehicleStatusDeviceTypeTag.h" +#include "NativeInteger.h" +#include "BOOLEAN.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleStatusRequest */ +typedef struct VehicleStatusRequest { + VehicleStatusDeviceTypeTag_t dataType; + long *subType; /* OPTIONAL */ + long *sendOnLessThenValue; /* OPTIONAL */ + long *sendOnMoreThenValue; /* OPTIONAL */ + BOOLEAN_t *sendAll; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleStatusRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleStatusRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleStatusRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleStatusRequest_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleStatusRequest_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusRequestList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusRequestList.h new file mode 100644 index 000000000..f04c09216 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleStatusRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleStatusRequestList_H_ +#define _VehicleStatusRequestList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleStatusRequest; + +/* VehicleStatusRequestList */ +typedef struct VehicleStatusRequestList { + A_SEQUENCE_OF(struct VehicleStatusRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleStatusRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleStatusRequestList; +extern asn_SET_OF_specifics_t asn_SPC_VehicleStatusRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleStatusRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_VehicleStatusRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleStatusRequestList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleToLanePosition.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleToLanePosition.h new file mode 100644 index 000000000..0a0a4f26c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleToLanePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleToLanePosition_H_ +#define _VehicleToLanePosition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StationID.h" +#include "LaneID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleToLanePosition */ +typedef struct VehicleToLanePosition { + StationID_t stationID; + LaneID_t laneID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleToLanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleToLanePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_VehicleToLanePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleToLanePosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleToLanePosition_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleToLanePositionList.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleToLanePositionList.h new file mode 100644 index 000000000..c76aa2655 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleToLanePositionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleToLanePositionList_H_ +#define _VehicleToLanePositionList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VehicleToLanePosition; + +/* VehicleToLanePositionList */ +typedef struct VehicleToLanePositionList { + A_SEQUENCE_OF(struct VehicleToLanePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VehicleToLanePositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VehicleToLanePositionList; +extern asn_SET_OF_specifics_t asn_SPC_VehicleToLanePositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_VehicleToLanePositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_VehicleToLanePositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleToLanePositionList_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleType.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleType.h new file mode 100644 index 000000000..a366fd9ff --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleType.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleType_H_ +#define _VehicleType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VehicleType { + VehicleType_none = 0, + VehicleType_unknown = 1, + VehicleType_special = 2, + VehicleType_moto = 3, + VehicleType_car = 4, + VehicleType_carOther = 5, + VehicleType_bus = 6, + VehicleType_axleCnt2 = 7, + VehicleType_axleCnt3 = 8, + VehicleType_axleCnt4 = 9, + VehicleType_axleCnt4Trailer = 10, + VehicleType_axleCnt5Trailer = 11, + VehicleType_axleCnt6Trailer = 12, + VehicleType_axleCnt5MultiTrailer = 13, + VehicleType_axleCnt6MultiTrailer = 14, + VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_VehicleType; + +/* VehicleType */ +typedef long VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1; +asn_struct_free_f VehicleType_free; +asn_struct_print_f VehicleType_print; +asn_constr_check_f VehicleType_constraint; +ber_type_decoder_f VehicleType_decode_ber; +der_type_encoder_f VehicleType_encode_der; +xer_type_decoder_f VehicleType_decode_xer; +xer_type_encoder_f VehicleType_encode_xer; +jer_type_encoder_f VehicleType_encode_jer; +oer_type_decoder_f VehicleType_decode_oer; +oer_type_encoder_f VehicleType_encode_oer; +per_type_decoder_f VehicleType_decode_uper; +per_type_encoder_f VehicleType_encode_uper; +per_type_decoder_f VehicleType_decode_aper; +per_type_encoder_f VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleType_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleWidth.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleWidth.h new file mode 100644 index 000000000..99acc9c74 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VehicleWidth.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VehicleWidth_H_ +#define _VehicleWidth_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VehicleWidth */ +typedef long VehicleWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VehicleWidth; +asn_struct_free_f VehicleWidth_free; +asn_struct_print_f VehicleWidth_print; +asn_constr_check_f VehicleWidth_constraint; +ber_type_decoder_f VehicleWidth_decode_ber; +der_type_encoder_f VehicleWidth_encode_der; +xer_type_decoder_f VehicleWidth_decode_xer; +xer_type_encoder_f VehicleWidth_encode_xer; +jer_type_encoder_f VehicleWidth_encode_jer; +oer_type_decoder_f VehicleWidth_decode_oer; +oer_type_encoder_f VehicleWidth_encode_oer; +per_type_decoder_f VehicleWidth_decode_uper; +per_type_encoder_f VehicleWidth_encode_uper; +per_type_decoder_f VehicleWidth_decode_aper; +per_type_encoder_f VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VehicleWidth_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Velocity.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Velocity.h new file mode 100644 index 000000000..6d914eda2 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Velocity.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Velocity_H_ +#define _Velocity_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Velocity */ +typedef long Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Velocity; +asn_struct_free_f Velocity_free; +asn_struct_print_f Velocity_print; +asn_constr_check_f Velocity_constraint; +ber_type_decoder_f Velocity_decode_ber; +der_type_encoder_f Velocity_encode_der; +xer_type_decoder_f Velocity_decode_xer; +xer_type_encoder_f Velocity_encode_xer; +jer_type_encoder_f Velocity_encode_jer; +oer_type_decoder_f Velocity_decode_oer; +oer_type_encoder_f Velocity_encode_oer; +per_type_decoder_f Velocity_decode_uper; +per_type_encoder_f Velocity_encode_uper; +per_type_decoder_f Velocity_decode_aper; +per_type_encoder_f Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Velocity_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B07.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B07.h new file mode 100644 index 000000000..5a8ef60a8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B07.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VertOffset_B07_H_ +#define _VertOffset_B07_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VertOffset-B07 */ +typedef long VertOffset_B07_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VertOffset_B07_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VertOffset_B07; +asn_struct_free_f VertOffset_B07_free; +asn_struct_print_f VertOffset_B07_print; +asn_constr_check_f VertOffset_B07_constraint; +ber_type_decoder_f VertOffset_B07_decode_ber; +der_type_encoder_f VertOffset_B07_encode_der; +xer_type_decoder_f VertOffset_B07_decode_xer; +xer_type_encoder_f VertOffset_B07_encode_xer; +jer_type_encoder_f VertOffset_B07_encode_jer; +oer_type_decoder_f VertOffset_B07_decode_oer; +oer_type_encoder_f VertOffset_B07_encode_oer; +per_type_decoder_f VertOffset_B07_decode_uper; +per_type_encoder_f VertOffset_B07_encode_uper; +per_type_decoder_f VertOffset_B07_decode_aper; +per_type_encoder_f VertOffset_B07_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VertOffset_B07_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B08.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B08.h new file mode 100644 index 000000000..5b92ea593 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B08.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VertOffset_B08_H_ +#define _VertOffset_B08_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VertOffset-B08 */ +typedef long VertOffset_B08_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VertOffset_B08_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VertOffset_B08; +asn_struct_free_f VertOffset_B08_free; +asn_struct_print_f VertOffset_B08_print; +asn_constr_check_f VertOffset_B08_constraint; +ber_type_decoder_f VertOffset_B08_decode_ber; +der_type_encoder_f VertOffset_B08_encode_der; +xer_type_decoder_f VertOffset_B08_decode_xer; +xer_type_encoder_f VertOffset_B08_encode_xer; +jer_type_encoder_f VertOffset_B08_encode_jer; +oer_type_decoder_f VertOffset_B08_decode_oer; +oer_type_encoder_f VertOffset_B08_encode_oer; +per_type_decoder_f VertOffset_B08_decode_uper; +per_type_encoder_f VertOffset_B08_encode_uper; +per_type_decoder_f VertOffset_B08_decode_aper; +per_type_encoder_f VertOffset_B08_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VertOffset_B08_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B09.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B09.h new file mode 100644 index 000000000..078306f71 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B09.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VertOffset_B09_H_ +#define _VertOffset_B09_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VertOffset-B09 */ +typedef long VertOffset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VertOffset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VertOffset_B09; +asn_struct_free_f VertOffset_B09_free; +asn_struct_print_f VertOffset_B09_print; +asn_constr_check_f VertOffset_B09_constraint; +ber_type_decoder_f VertOffset_B09_decode_ber; +der_type_encoder_f VertOffset_B09_encode_der; +xer_type_decoder_f VertOffset_B09_decode_xer; +xer_type_encoder_f VertOffset_B09_encode_xer; +jer_type_encoder_f VertOffset_B09_encode_jer; +oer_type_decoder_f VertOffset_B09_decode_oer; +oer_type_encoder_f VertOffset_B09_encode_oer; +per_type_decoder_f VertOffset_B09_decode_uper; +per_type_encoder_f VertOffset_B09_encode_uper; +per_type_decoder_f VertOffset_B09_decode_aper; +per_type_encoder_f VertOffset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VertOffset_B09_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B10.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B10.h new file mode 100644 index 000000000..fa9da3257 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B10.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VertOffset_B10_H_ +#define _VertOffset_B10_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VertOffset-B10 */ +typedef long VertOffset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VertOffset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VertOffset_B10; +asn_struct_free_f VertOffset_B10_free; +asn_struct_print_f VertOffset_B10_print; +asn_constr_check_f VertOffset_B10_constraint; +ber_type_decoder_f VertOffset_B10_decode_ber; +der_type_encoder_f VertOffset_B10_encode_der; +xer_type_decoder_f VertOffset_B10_decode_xer; +xer_type_encoder_f VertOffset_B10_encode_xer; +jer_type_encoder_f VertOffset_B10_encode_jer; +oer_type_decoder_f VertOffset_B10_decode_oer; +oer_type_encoder_f VertOffset_B10_encode_oer; +per_type_decoder_f VertOffset_B10_decode_uper; +per_type_encoder_f VertOffset_B10_encode_uper; +per_type_decoder_f VertOffset_B10_decode_aper; +per_type_encoder_f VertOffset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VertOffset_B10_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B11.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B11.h new file mode 100644 index 000000000..d7bba9209 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B11.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VertOffset_B11_H_ +#define _VertOffset_B11_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VertOffset-B11 */ +typedef long VertOffset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VertOffset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VertOffset_B11; +asn_struct_free_f VertOffset_B11_free; +asn_struct_print_f VertOffset_B11_print; +asn_constr_check_f VertOffset_B11_constraint; +ber_type_decoder_f VertOffset_B11_decode_ber; +der_type_encoder_f VertOffset_B11_encode_der; +xer_type_decoder_f VertOffset_B11_decode_xer; +xer_type_encoder_f VertOffset_B11_encode_xer; +jer_type_encoder_f VertOffset_B11_encode_jer; +oer_type_decoder_f VertOffset_B11_decode_oer; +oer_type_encoder_f VertOffset_B11_encode_oer; +per_type_decoder_f VertOffset_B11_decode_uper; +per_type_encoder_f VertOffset_B11_encode_uper; +per_type_decoder_f VertOffset_B11_decode_aper; +per_type_encoder_f VertOffset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VertOffset_B11_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B12.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B12.h new file mode 100644 index 000000000..cc4134c77 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VertOffset-B12.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VertOffset_B12_H_ +#define _VertOffset_B12_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VertOffset-B12 */ +typedef long VertOffset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VertOffset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VertOffset_B12; +asn_struct_free_f VertOffset_B12_free; +asn_struct_print_f VertOffset_B12_print; +asn_constr_check_f VertOffset_B12_constraint; +ber_type_decoder_f VertOffset_B12_decode_ber; +der_type_encoder_f VertOffset_B12_encode_der; +xer_type_decoder_f VertOffset_B12_decode_xer; +xer_type_encoder_f VertOffset_B12_encode_xer; +jer_type_encoder_f VertOffset_B12_encode_jer; +oer_type_decoder_f VertOffset_B12_decode_oer; +oer_type_encoder_f VertOffset_B12_encode_oer; +per_type_decoder_f VertOffset_B12_decode_uper; +per_type_encoder_f VertOffset_B12_encode_uper; +per_type_decoder_f VertOffset_B12_decode_aper; +per_type_encoder_f VertOffset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VertOffset_B12_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalAcceleration.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalAcceleration.h new file mode 100644 index 000000000..aa0ea8bd5 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalAcceleration.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VerticalAcceleration_H_ +#define _VerticalAcceleration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* VerticalAcceleration */ +typedef long VerticalAcceleration_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAcceleration_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration; +asn_struct_free_f VerticalAcceleration_free; +asn_struct_print_f VerticalAcceleration_print; +asn_constr_check_f VerticalAcceleration_constraint; +ber_type_decoder_f VerticalAcceleration_decode_ber; +der_type_encoder_f VerticalAcceleration_encode_der; +xer_type_decoder_f VerticalAcceleration_decode_xer; +xer_type_encoder_f VerticalAcceleration_encode_xer; +jer_type_encoder_f VerticalAcceleration_encode_jer; +oer_type_decoder_f VerticalAcceleration_decode_oer; +oer_type_encoder_f VerticalAcceleration_encode_oer; +per_type_decoder_f VerticalAcceleration_decode_uper; +per_type_encoder_f VerticalAcceleration_encode_uper; +per_type_decoder_f VerticalAcceleration_decode_aper; +per_type_encoder_f VerticalAcceleration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAcceleration_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalAccelerationThreshold.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalAccelerationThreshold.h new file mode 100644 index 000000000..8a54ea950 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalAccelerationThreshold.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VerticalAccelerationThreshold_H_ +#define _VerticalAccelerationThreshold_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalAccelerationThreshold { + VerticalAccelerationThreshold_notEquipped = 0, + VerticalAccelerationThreshold_leftFront = 1, + VerticalAccelerationThreshold_leftRear = 2, + VerticalAccelerationThreshold_rightFront = 3, + VerticalAccelerationThreshold_rightRear = 4 +} e_VerticalAccelerationThreshold; + +/* VerticalAccelerationThreshold */ +typedef BIT_STRING_t VerticalAccelerationThreshold_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_VerticalAccelerationThreshold_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationThreshold; +asn_struct_free_f VerticalAccelerationThreshold_free; +asn_struct_print_f VerticalAccelerationThreshold_print; +asn_constr_check_f VerticalAccelerationThreshold_constraint; +ber_type_decoder_f VerticalAccelerationThreshold_decode_ber; +der_type_encoder_f VerticalAccelerationThreshold_encode_der; +xer_type_decoder_f VerticalAccelerationThreshold_decode_xer; +xer_type_encoder_f VerticalAccelerationThreshold_encode_xer; +jer_type_encoder_f VerticalAccelerationThreshold_encode_jer; +oer_type_decoder_f VerticalAccelerationThreshold_decode_oer; +oer_type_encoder_f VerticalAccelerationThreshold_encode_oer; +per_type_decoder_f VerticalAccelerationThreshold_decode_uper; +per_type_encoder_f VerticalAccelerationThreshold_encode_uper; +per_type_decoder_f VerticalAccelerationThreshold_decode_aper; +per_type_encoder_f VerticalAccelerationThreshold_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalAccelerationThreshold_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalOffset.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalOffset.h new file mode 100644 index 000000000..abf7f1084 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/VerticalOffset.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _VerticalOffset_H_ +#define _VerticalOffset_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VertOffset-B07.h" +#include "VertOffset-B08.h" +#include "VertOffset-B09.h" +#include "VertOffset-B10.h" +#include "VertOffset-B11.h" +#include "VertOffset-B12.h" +#include "Common_Elevation.h" +#include "RegionalExtension.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VerticalOffset_PR { + VerticalOffset_PR_NOTHING, /* No components present */ + VerticalOffset_PR_offset1, + VerticalOffset_PR_offset2, + VerticalOffset_PR_offset3, + VerticalOffset_PR_offset4, + VerticalOffset_PR_offset5, + VerticalOffset_PR_offset6, + VerticalOffset_PR_elevation, + VerticalOffset_PR_regional +} VerticalOffset_PR; + +/* VerticalOffset */ +typedef struct VerticalOffset { + VerticalOffset_PR present; + union VerticalOffset_u { + VertOffset_B07_t offset1; + VertOffset_B08_t offset2; + VertOffset_B09_t offset3; + VertOffset_B10_t offset4; + VertOffset_B11_t offset5; + VertOffset_B12_t offset6; + Common_Elevation_t elevation; + Reg_VerticalOffset_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VerticalOffset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VerticalOffset; + +#ifdef __cplusplus +} +#endif + +#endif /* _VerticalOffset_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/WaitOnStopline.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/WaitOnStopline.h new file mode 100644 index 000000000..c342bf3c7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/WaitOnStopline.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _WaitOnStopline_H_ +#define _WaitOnStopline_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BOOLEAN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* WaitOnStopline */ +typedef BOOLEAN_t WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WaitOnStopline; +asn_struct_free_f WaitOnStopline_free; +asn_struct_print_f WaitOnStopline_print; +asn_constr_check_f WaitOnStopline_constraint; +ber_type_decoder_f WaitOnStopline_decode_ber; +der_type_encoder_f WaitOnStopline_encode_der; +xer_type_decoder_f WaitOnStopline_decode_xer; +xer_type_encoder_f WaitOnStopline_encode_xer; +jer_type_encoder_f WaitOnStopline_encode_jer; +oer_type_decoder_f WaitOnStopline_decode_oer; +oer_type_encoder_f WaitOnStopline_encode_oer; +per_type_decoder_f WaitOnStopline_decode_uper; +per_type_encoder_f WaitOnStopline_encode_uper; +per_type_decoder_f WaitOnStopline_decode_aper; +per_type_encoder_f WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WaitOnStopline_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/WeatherProbe.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/WeatherProbe.h new file mode 100644 index 000000000..6a8dcef10 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/WeatherProbe.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _WeatherProbe_H_ +#define _WeatherProbe_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AmbientAirTemperature.h" +#include "AmbientAirPressure.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct WiperSet; + +/* WeatherProbe */ +typedef struct WeatherProbe { + AmbientAirTemperature_t *airTemp; /* OPTIONAL */ + AmbientAirPressure_t *airPressure; /* OPTIONAL */ + struct WiperSet *rainRates; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} WeatherProbe_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WeatherProbe; +extern asn_SEQUENCE_specifics_t asn_SPC_WeatherProbe_specs_1; +extern asn_TYPE_member_t asn_MBR_WeatherProbe_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _WeatherProbe_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/WeatherReport.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/WeatherReport.h new file mode 100644 index 000000000..7822dacd7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/WeatherReport.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _WeatherReport_H_ +#define _WeatherReport_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "EssPrecipYesNo.h" +#include "EssPrecipRate.h" +#include "EssPrecipSituation.h" +#include "EssSolarRadiation.h" +#include "EssMobileFriction.h" +#include "CoefficientOfFriction.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* WeatherReport */ +typedef struct WeatherReport { + EssPrecipYesNo_t isRaining; + EssPrecipRate_t *rainRate; /* OPTIONAL */ + EssPrecipSituation_t *precipSituation; /* OPTIONAL */ + EssSolarRadiation_t *solarRadiation; /* OPTIONAL */ + EssMobileFriction_t *friction; /* OPTIONAL */ + CoefficientOfFriction_t *roadFriction; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} WeatherReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WeatherReport; +extern asn_SEQUENCE_specifics_t asn_SPC_WeatherReport_specs_1; +extern asn_TYPE_member_t asn_MBR_WeatherReport_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _WeatherReport_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/WheelEndElectFault.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/WheelEndElectFault.h new file mode 100644 index 000000000..0704b2613 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/WheelEndElectFault.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _WheelEndElectFault_H_ +#define _WheelEndElectFault_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelEndElectFault { + WheelEndElectFault_isOk = 0, + WheelEndElectFault_isNotDefined = 1, + WheelEndElectFault_isError = 2, + WheelEndElectFault_isNotSupported = 3 +} e_WheelEndElectFault; + +/* WheelEndElectFault */ +typedef long WheelEndElectFault_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WheelEndElectFault_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WheelEndElectFault; +extern const asn_INTEGER_specifics_t asn_SPC_WheelEndElectFault_specs_1; +asn_struct_free_f WheelEndElectFault_free; +asn_struct_print_f WheelEndElectFault_print; +asn_constr_check_f WheelEndElectFault_constraint; +ber_type_decoder_f WheelEndElectFault_decode_ber; +der_type_encoder_f WheelEndElectFault_encode_der; +xer_type_decoder_f WheelEndElectFault_decode_xer; +xer_type_encoder_f WheelEndElectFault_encode_xer; +jer_type_encoder_f WheelEndElectFault_encode_jer; +oer_type_decoder_f WheelEndElectFault_decode_oer; +oer_type_encoder_f WheelEndElectFault_encode_oer; +per_type_decoder_f WheelEndElectFault_decode_uper; +per_type_encoder_f WheelEndElectFault_encode_uper; +per_type_decoder_f WheelEndElectFault_decode_aper; +per_type_encoder_f WheelEndElectFault_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelEndElectFault_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/WheelSensorStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/WheelSensorStatus.h new file mode 100644 index 000000000..c724205a8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/WheelSensorStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _WheelSensorStatus_H_ +#define _WheelSensorStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WheelSensorStatus { + WheelSensorStatus_off = 0, + WheelSensorStatus_on = 1, + WheelSensorStatus_notDefined = 2, + WheelSensorStatus_notSupported = 3 +} e_WheelSensorStatus; + +/* WheelSensorStatus */ +typedef long WheelSensorStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WheelSensorStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WheelSensorStatus; +extern const asn_INTEGER_specifics_t asn_SPC_WheelSensorStatus_specs_1; +asn_struct_free_f WheelSensorStatus_free; +asn_struct_print_f WheelSensorStatus_print; +asn_constr_check_f WheelSensorStatus_constraint; +ber_type_decoder_f WheelSensorStatus_decode_ber; +der_type_encoder_f WheelSensorStatus_encode_der; +xer_type_decoder_f WheelSensorStatus_decode_xer; +xer_type_encoder_f WheelSensorStatus_encode_xer; +jer_type_encoder_f WheelSensorStatus_encode_jer; +oer_type_decoder_f WheelSensorStatus_decode_oer; +oer_type_encoder_f WheelSensorStatus_encode_oer; +per_type_decoder_f WheelSensorStatus_decode_uper; +per_type_encoder_f WheelSensorStatus_encode_uper; +per_type_decoder_f WheelSensorStatus_decode_aper; +per_type_encoder_f WheelSensorStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WheelSensorStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/WiperRate.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/WiperRate.h new file mode 100644 index 000000000..b22ffec59 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/WiperRate.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _WiperRate_H_ +#define _WiperRate_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* WiperRate */ +typedef long WiperRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WiperRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WiperRate; +asn_struct_free_f WiperRate_free; +asn_struct_print_f WiperRate_print; +asn_constr_check_f WiperRate_constraint; +ber_type_decoder_f WiperRate_decode_ber; +der_type_encoder_f WiperRate_encode_der; +xer_type_decoder_f WiperRate_decode_xer; +xer_type_encoder_f WiperRate_encode_xer; +jer_type_encoder_f WiperRate_encode_jer; +oer_type_decoder_f WiperRate_decode_oer; +oer_type_encoder_f WiperRate_encode_oer; +per_type_decoder_f WiperRate_decode_uper; +per_type_encoder_f WiperRate_encode_uper; +per_type_decoder_f WiperRate_decode_aper; +per_type_encoder_f WiperRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WiperRate_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/WiperSet.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/WiperSet.h new file mode 100644 index 000000000..a60c7ce05 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/WiperSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _WiperSet_H_ +#define _WiperSet_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "WiperStatus.h" +#include "WiperRate.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* WiperSet */ +typedef struct WiperSet { + WiperStatus_t statusFront; + WiperRate_t rateFront; + WiperStatus_t *statusRear; /* OPTIONAL */ + WiperRate_t *rateRear; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} WiperSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WiperSet; +extern asn_SEQUENCE_specifics_t asn_SPC_WiperSet_specs_1; +extern asn_TYPE_member_t asn_MBR_WiperSet_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _WiperSet_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/WiperStatus.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/WiperStatus.h new file mode 100644 index 000000000..5bcf7f782 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/WiperStatus.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _WiperStatus_H_ +#define _WiperStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WiperStatus { + WiperStatus_unavailable = 0, + WiperStatus_off = 1, + WiperStatus_intermittent = 2, + WiperStatus_low = 3, + WiperStatus_high = 4, + WiperStatus_washerInUse = 5, + WiperStatus_automaticPresent = 6 + /* + * Enumeration is extensible + */ +} e_WiperStatus; + +/* WiperStatus */ +typedef long WiperStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_WiperStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_WiperStatus; +extern const asn_INTEGER_specifics_t asn_SPC_WiperStatus_specs_1; +asn_struct_free_f WiperStatus_free; +asn_struct_print_f WiperStatus_print; +asn_constr_check_f WiperStatus_constraint; +ber_type_decoder_f WiperStatus_decode_ber; +der_type_encoder_f WiperStatus_encode_der; +xer_type_decoder_f WiperStatus_decode_xer; +xer_type_encoder_f WiperStatus_encode_xer; +jer_type_encoder_f WiperStatus_encode_jer; +oer_type_decoder_f WiperStatus_decode_oer; +oer_type_encoder_f WiperStatus_encode_oer; +per_type_decoder_f WiperStatus_decode_uper; +per_type_encoder_f WiperStatus_encode_uper; +per_type_decoder_f WiperStatus_decode_aper; +per_type_encoder_f WiperStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _WiperStatus_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/WorkZone.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/WorkZone.h new file mode 100644 index 000000000..a14da6e2a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/WorkZone.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _WorkZone_H_ +#define _WorkZone_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "ITIScodes.h" +#include "ITIStextPhrase.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum WorkZone__Member__item_PR { + WorkZone__Member__item_PR_NOTHING, /* No components present */ + WorkZone__Member__item_PR_itis, + WorkZone__Member__item_PR_text +} WorkZone__Member__item_PR; + +/* Forward definitions */ +typedef struct WorkZone__Member { + struct WorkZone__Member__item { + WorkZone__Member__item_PR present; + union WorkZone__Member__item_u { + ITIScodes_t itis; + ITIStextPhrase_t text; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } item; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} WorkZone__Member; + +/* WorkZone */ +typedef struct WorkZone { + A_SEQUENCE_OF(WorkZone__Member) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} WorkZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WorkZone; +extern asn_SET_OF_specifics_t asn_SPC_WorkZone_specs_1; +extern asn_TYPE_member_t asn_MBR_WorkZone_1[1]; +extern asn_per_constraints_t asn_PER_type_WorkZone_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _WorkZone_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/YawRate.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/YawRate.h new file mode 100644 index 000000000..c8a28fc69 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/YawRate.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _YawRate_H_ +#define _YawRate_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* YawRate */ +typedef long YawRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRate; +asn_struct_free_f YawRate_free; +asn_struct_print_f YawRate_print; +asn_constr_check_f YawRate_constraint; +ber_type_decoder_f YawRate_decode_ber; +der_type_encoder_f YawRate_encode_der; +xer_type_decoder_f YawRate_decode_xer; +xer_type_encoder_f YawRate_encode_xer; +jer_type_encoder_f YawRate_encode_jer; +oer_type_decoder_f YawRate_decode_oer; +oer_type_encoder_f YawRate_encode_oer; +per_type_decoder_f YawRate_decode_uper; +per_type_encoder_f YawRate_encode_uper; +per_type_decoder_f YawRate_decode_aper; +per_type_encoder_f YawRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRate_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/YawRateConfidence.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/YawRateConfidence.h new file mode 100644 index 000000000..5543e29fe --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/YawRateConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _YawRateConfidence_H_ +#define _YawRateConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum YawRateConfidence { + YawRateConfidence_unavailable = 0, + YawRateConfidence_degSec_100_00 = 1, + YawRateConfidence_degSec_010_00 = 2, + YawRateConfidence_degSec_005_00 = 3, + YawRateConfidence_degSec_001_00 = 4, + YawRateConfidence_degSec_000_10 = 5, + YawRateConfidence_degSec_000_05 = 6, + YawRateConfidence_degSec_000_01 = 7 +} e_YawRateConfidence; + +/* YawRateConfidence */ +typedef long YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1; +asn_struct_free_f YawRateConfidence_free; +asn_struct_print_f YawRateConfidence_print; +asn_constr_check_f YawRateConfidence_constraint; +ber_type_decoder_f YawRateConfidence_decode_ber; +der_type_encoder_f YawRateConfidence_encode_der; +xer_type_decoder_f YawRateConfidence_decode_xer; +xer_type_encoder_f YawRateConfidence_encode_xer; +jer_type_encoder_f YawRateConfidence_encode_jer; +oer_type_decoder_f YawRateConfidence_decode_oer; +oer_type_encoder_f YawRateConfidence_encode_oer; +per_type_decoder_f YawRateConfidence_decode_uper; +per_type_encoder_f YawRateConfidence_encode_uper; +per_type_decoder_f YawRateConfidence_decode_aper; +per_type_encoder_f YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _YawRateConfidence_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Year.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Year.h new file mode 100644 index 000000000..34b6a857e --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Year.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Year_H_ +#define _Year_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Year */ +typedef long Year_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Year_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Year; +asn_struct_free_f Year_free; +asn_struct_print_f Year_print; +asn_constr_check_f Year_constraint; +ber_type_decoder_f Year_decode_ber; +der_type_encoder_f Year_encode_der; +xer_type_decoder_f Year_decode_xer; +xer_type_encoder_f Year_encode_xer; +jer_type_encoder_f Year_encode_jer; +oer_type_decoder_f Year_decode_oer; +oer_type_encoder_f Year_encode_oer; +per_type_decoder_f Year_decode_uper; +per_type_encoder_f Year_encode_uper; +per_type_decoder_f Year_decode_aper; +per_type_encoder_f Year_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Year_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ZoneLength.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ZoneLength.h new file mode 100644 index 000000000..d4f158436 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ZoneLength.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _ZoneLength_H_ +#define _ZoneLength_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZoneLength */ +typedef long ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZoneLength; +asn_struct_free_f ZoneLength_free; +asn_struct_print_f ZoneLength_print; +asn_constr_check_f ZoneLength_constraint; +ber_type_decoder_f ZoneLength_decode_ber; +der_type_encoder_f ZoneLength_encode_der; +xer_type_decoder_f ZoneLength_decode_xer; +xer_type_encoder_f ZoneLength_encode_xer; +jer_type_encoder_f ZoneLength_encode_jer; +oer_type_decoder_f ZoneLength_decode_oer; +oer_type_encoder_f ZoneLength_encode_oer; +per_type_decoder_f ZoneLength_decode_uper; +per_type_encoder_f ZoneLength_encode_uper; +per_type_decoder_f ZoneLength_decode_aper; +per_type_encoder_f ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZoneLength_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/Zoom.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/Zoom.h new file mode 100644 index 000000000..4715c24ad --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/Zoom.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#ifndef _Zoom_H_ +#define _Zoom_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Zoom */ +typedef long Zoom_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Zoom_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Zoom; +asn_struct_free_f Zoom_free; +asn_struct_print_f Zoom_print; +asn_constr_check_f Zoom_constraint; +ber_type_decoder_f Zoom_decode_ber; +der_type_encoder_f Zoom_encode_der; +xer_type_decoder_f Zoom_decode_xer; +xer_type_encoder_f Zoom_encode_xer; +jer_type_encoder_f Zoom_encode_jer; +oer_type_decoder_f Zoom_decode_oer; +oer_type_encoder_f Zoom_encode_oer; +per_type_decoder_f Zoom_decode_uper; +per_type_encoder_f Zoom_encode_uper; +per_type_decoder_f Zoom_decode_aper; +per_type_encoder_f Zoom_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Zoom_H_ */ +#include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_decoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_decoder.h new file mode 100644 index 000000000..10352c710 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_decoder.h @@ -0,0 +1,47 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_DECODER_H_ +#define _APER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Aligned PER decoder of a "complete encoding" as per X.691#10.1. + * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. + */ +asn_dec_rval_t aper_decode_complete( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ + ); + +/* + * Aligned PER decoder of any ASN.1 type. May be invoked by the application. + * WARNING: This call returns the number of BITS read from the stream. Beware. + */ +asn_dec_rval_t aper_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size, /* Size of data buffer */ + int skip_bits, /* Number of unused leading bits, 0..7 */ + int unused_bits /* Number of unused tailing bits, 0..7 */ + ); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_DECODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_encoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_encoder.h new file mode 100644 index 000000000..957b0bdbe --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_encoder.h @@ -0,0 +1,63 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_ENCODER_H_ +#define _APER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Aligned PER encoder of any ASN.1 type. May be invoked by the application. + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. Use the following formula to convert to bytes: + * bytes = ((.encoded + 7) / 8) + */ +asn_enc_rval_t aper_encode( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ + void *app_key /* Arbitrary callback argument */ +); + +/* + * A variant of aper_encode() which encodes data into the existing buffer + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. + */ +asn_enc_rval_t aper_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (max) */ +); + +/* + * A variant of aper_encode_to_buffer() which allocates buffer itself. + * Returns the number of bytes in the buffer or -1 in case of failure. + * WARNING: This function produces a "Production of the complete encoding", + * with length of at least one octet. Contrast this to precise bit-packing + * encoding of aper_encode() and aper_encode_to_buffer(). + */ +ssize_t +aper_encode_to_new_buffer( + const struct asn_TYPE_descriptor_s *td, + const asn_per_constraints_t *constraints, + const void *sptr, + void **buffer_r +); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_ENCODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_opentype.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_opentype.h new file mode 100644 index 000000000..451b01c3b --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_opentype.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_OPENTYPE_H_ +#define _APER_OPENTYPE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + + +int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); + +int aper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_OPENTYPE_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_support.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_support.h new file mode 100644 index 000000000..a3724455c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/aper_support.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_SUPPORT_H_ +#define _APER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Get the length "n" from the Aligned PER stream. + */ +ssize_t aper_get_length(asn_per_data_t *pd, ssize_t lb, ssize_t ub, + int effective_bound_bits, int *repeat); + +/* + * Get the normally small length "n". + */ +ssize_t aper_get_nslength(asn_per_data_t *pd); + +/* + * Get the normally small non-negative whole number. + */ +ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "n" to the Aligned PER stream. + * If (opt_need_eom) is given, it will be set to 1 if final 0-n is needed. + * In that case, invoke aper_put_length(po, -1, -1, 0, NULL) after encoding the + * last block. + * This function returns the number of units which may be flushed + * in the next units saving iteration. + */ +ssize_t aper_put_length(asn_per_outp_t *po, ssize_t lb, ssize_t ub, size_t n, + int *opt_need_eom); + +/* Align the current bit position to octet bundary */ +int aper_put_align(asn_per_outp_t *po); +int32_t aper_get_align(asn_per_data_t *pd); + +/* + * Put the normally small length "n" to the Unaligned PER stream. + * Returns 0 or -1. + */ +int aper_put_nslength(asn_per_outp_t *po, size_t length); + +/* + * Put the normally small non-negative whole number. + */ +int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_SUPPORT_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_SEQUENCE_OF.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_SEQUENCE_OF.h new file mode 100644 index 000000000..e35bc447a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_SEQUENCE_OF.h @@ -0,0 +1,52 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_SEQUENCE_OF_H +#define ASN_SEQUENCE_OF_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * SEQUENCE OF is the same as SET OF with a tiny difference: + * the delete operation preserves the initial order of elements + * and thus MAY operate in non-constant time. + */ +#define A_SEQUENCE_OF(type) A_SET_OF(type) + +#define ASN_SEQUENCE_ADD(headptr, ptr) \ + asn_sequence_add((headptr), (ptr)) + +/*********************************************** + * Implementation of the SEQUENCE OF structure. + */ + +#define asn_sequence_add asn_set_add +#define asn_sequence_empty asn_set_empty + +/* + * Delete the element from the set by its number (base 0). + * This is NOT a constant-time operation. + * The order of elements is preserved. + * If _do_free is given AND the (*free) is initialized, the element + * will be freed using the custom (*free) function as well. + */ +void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free); + +/* + * Cope with different conversions requirements to/from void in C and C++. + * This is mostly useful for support library. + */ +typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_; +#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr)) +#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_SEQUENCE_OF_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_SET_OF.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_SET_OF.h new file mode 100644 index 000000000..882e1a47d --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_SET_OF.h @@ -0,0 +1,72 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_SET_OF_H +#define ASN_SET_OF_H + +#ifdef __cplusplus +#define A_SET_OF(type) \ + struct { \ + type **array; \ + int count; /* Meaningful size */ \ + int size; /* Allocated size */ \ + void (*free)(decltype(*array)); \ + } +#else /* C */ +#define A_SET_OF(type) \ + struct { \ + type **array; \ + int count; /* Meaningful size */ \ + int size; /* Allocated size */ \ + void (*free)(type *); \ + } +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define ASN_SET_ADD(headptr, ptr) \ + asn_set_add((headptr), (ptr)) + +/******************************************* + * Implementation of the SET OF structure. + */ + +/* + * Add another structure into the set by its pointer. + * RETURN VALUES: + * 0 for success and -1/errno for failure. + */ +int asn_set_add(void *asn_set_of_x, void *ptr); + +/* + * Delete the element from the set by its number (base 0). + * This is a constant-time operation. The order of elements before the + * deleted ones is guaranteed, the order of elements after the deleted + * one is NOT guaranteed. + * If _do_free is given AND the (*free) is initialized, the element + * will be freed using the custom (*free) function as well. + */ +void asn_set_del(void *asn_set_of_x, int number, int _do_free); + +/* + * Empty the contents of the set. Will free the elements, if (*free) is given. + * Will NOT free the set itself. + */ +void asn_set_empty(void *asn_set_of_x); + +/* + * Cope with different conversions requirements to/from void in C and C++. + * This is mostly useful for support library. + */ +typedef A_SET_OF(void) asn_anonymous_set_; +#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr)) +#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_SET_OF_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_application.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_application.h new file mode 100644 index 000000000..bf10cd3e2 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_application.h @@ -0,0 +1,173 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Application-level ASN.1 callbacks. + */ +#ifndef ASN_APPLICATION_H +#define ASN_APPLICATION_H + +#include "asn_system.h" /* for platform-dependent types */ +#include "asn_codecs.h" /* for ASN.1 codecs specifics */ +#include "asn_config.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A selection of ASN.1 Transfer Syntaxes to use with generalized + * encoders and decoders declared further in this .h file. + */ +enum asn_transfer_syntax { + /* Avoid appearance of a default transfer syntax. */ + ATS_INVALID = 0, + /* Plaintext output (not conforming to any standard), for debugging. */ + ATS_NONSTANDARD_PLAINTEXT, + /* Returns a randomly generated structure. */ + ATS_RANDOM, + /* + * X.690: + * BER: Basic Encoding Rules. + * DER: Distinguished Encoding Rules. + * CER: Canonical Encoding Rules. + * DER and CER are more strict variants of BER. + */ + ATS_BER, + ATS_DER, + ATS_CER, /* Only decoding is supported */ + /* + * X.696: + * OER: Octet Encoding Rules. + * CANONICAL-OER is a more strict variant of BASIC-OER. + */ + ATS_BASIC_OER, + ATS_CANONICAL_OER, + /* + * X.691: + * PER: Packed Encoding Rules. + * CANONICAL-PER is a more strict variant of BASIC-PER. + * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). + */ + ATS_UNALIGNED_BASIC_PER, + ATS_UNALIGNED_CANONICAL_PER, + ATS_ALIGNED_BASIC_PER, + ATS_ALIGNED_CANONICAL_PER, + /* + * X.693: + * XER: XML Encoding Rules. + * CANONICAL-XER is a more strict variant of BASIC-XER. + */ + ATS_BASIC_XER, + ATS_CANONICAL_XER, + ATS_JER, +}; + +/* + * A generic encoder for any supported transfer syntax. + * RETURN VALUES: + * The (.encoded) field of the return value is REDEFINED to mean the following: + * >=0: The computed size of the encoded data. Can exceed the (buffer_size). + * -1: Error encoding the structure. See the error code in (errno): + * EINVAL: Incorrect parameters to the function, such as NULLs. + * ENOENT: Encoding transfer syntax is not defined (for this type). + * EBADF: The structure has invalid form or content constraint failed. + * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate + * values at the place of failure, if at all possible. + * WARNING: The (.encoded) field of the return value can exceed the buffer_size. + * This is similar to snprintf(3) contract which might return values + * greater than the buffer size. + */ +asn_enc_rval_t asn_encode_to_buffer( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode, void *buffer, size_t buffer_size); + +/* + * A variant of asn_encode_to_buffer() with automatically allocated buffer. + * RETURN VALUES: + * On success, returns a newly allocated (.buffer) containing the whole message. + * The message size is returned in (.result.encoded). + * On failure: + * (.buffer) is NULL, + * (.result.encoded) as in asn_encode_to_buffer(), + * The errno codes as in asn_encode_to_buffer(), plus the following: + * ENOMEM: Memory allocation failed due to system or internal limits. + * The user is responsible for freeing the (.buffer). + */ +typedef struct asn_encode_to_new_buffer_result_s { + void *buffer; /* NULL if failed to encode. */ + asn_enc_rval_t result; +} asn_encode_to_new_buffer_result_t; +asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode); + + +/* + * Generic type of an application-defined callback to return various + * types of data to the application. + * EXPECTED RETURN VALUES: + * -1: Failed to consume bytes. Abort the mission. + * Non-negative return values indicate success, and ignored. + */ +typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, + void *application_specific_key); + + +/* + * A generic encoder for any supported transfer syntax. + * Returns the comprehensive encoding result descriptor (see asn_codecs.h). + * RETURN VALUES: + * The negative (.encoded) field of the return values is accompanied with the + * following error codes (errno): + * EINVAL: Incorrect parameters to the function, such as NULLs. + * ENOENT: Encoding transfer syntax is not defined (for this type). + * EBADF: The structure has invalid form or content constraint failed. + * EIO: The (callback) has returned negative value during encoding. + */ +asn_enc_rval_t asn_encode( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode, + asn_app_consume_bytes_f *callback, void *callback_key); + + +/* + * A generic decoder for any supported transfer syntax. + */ +asn_dec_rval_t asn_decode( + const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_decode, + void **structure_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ +); + + +/* + * A callback of this type is called whenever constraint validation fails + * on some ASN.1 type. See "constraints.h" for more details on constraint + * validation. + * This callback specifies a descriptor of the ASN.1 type which failed + * the constraint check, as well as human readable message on what + * particular constraint has failed. + */ +typedef void (asn_app_constraint_failed_f)(void *application_specific_key, + const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, + const void *structure_which_failed_ptr, + const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); + + +#ifdef __cplusplus +} +#endif + +#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ + +#endif /* ASN_APPLICATION_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_bit_data.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_bit_data.h new file mode 100644 index 000000000..f14714bbd --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_bit_data.h @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_BIT_DATA +#define ASN_BIT_DATA + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This structure describes a position inside an incoming PER bit stream. + */ +typedef struct asn_bit_data_s { + const uint8_t *buffer; /* Pointer to the octet stream */ + size_t nboff; /* Bit offset to the meaningful bit */ + size_t nbits; /* Number of bits in the stream */ + size_t moved; /* Number of bits moved through this bit stream */ + int (*refill)(struct asn_bit_data_s *); + void *refill_key; +} asn_bit_data_t; + +/* + * Create a contiguous non-refillable bit data structure. + * Can be freed by FREEMEM(). + */ +asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); + +/* + * Extract a small number of bits (<= 31) from the specified PER data pointer. + * This function returns -1 if the specified number of bits could not be + * extracted due to EOD or other conditions. + */ +int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); + +/* Undo the immediately preceding "get_few_bits" operation */ +void asn_get_undo(asn_bit_data_t *, int get_nbits); + +/* + * Extract a large number of bits from the specified PER data pointer. + * This function returns -1 if the specified number of bits could not be + * extracted due to EOD or other conditions. + */ +int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, + int get_nbits); + +/* Non-thread-safe debugging function, don't use it */ +char *asn_bit_data_string(asn_bit_data_t *); + +/* + * This structure supports forming bit output. + */ +typedef struct asn_bit_outp_s { + uint8_t *buffer; /* Pointer into the (tmpspace) */ + size_t nboff; /* Bit offset to the meaningful bit */ + size_t nbits; /* Number of bits left in (tmpspace) */ + uint8_t tmpspace[32]; /* Preliminary storage to hold data */ + int (*output)(const void *data, size_t size, void *op_key); + void *op_key; /* Key for (output) data callback */ + size_t flushed_bytes; /* Bytes already flushed through (output) */ +} asn_bit_outp_t; + +/* Output a small number of bits (<= 31) */ +int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); + +/* Output a large number of bits */ +int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); + +/* + * Flush whole bytes (0 or more) through (outper) member. + * The least significant bits which are not used are guaranteed to be set to 0. + * Returns -1 if callback returns -1. Otherwise, 0. + */ +int asn_put_aligned_flush(asn_bit_outp_t *); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_BIT_DATA */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_codecs.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_codecs.h new file mode 100644 index 000000000..e75c2709c --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_codecs.h @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_CODECS_H +#define ASN_CODECS_H + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * This structure defines a set of parameters that may be passed + * to every ASN.1 encoder or decoder function. + * WARNING: if max_stack_size member is set, and you are calling the + * function pointers of the asn_TYPE_descriptor_t directly, + * this structure must be ALLOCATED ON THE STACK! + * If you can't always satisfy this requirement, use ber_decode(), + * xer_decode() and uper_decode() functions instead. + */ +typedef struct asn_codec_ctx_s { + /* + * Limit the decoder routines to use no (much) more stack than a given + * number of bytes. Most of decoders are stack-based, and this + * would protect against stack overflows if the number of nested + * encodings is high. + * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based, + * and are safe from this kind of overflow. + * A value from getrlimit(RLIMIT_STACK) may be used to initialize + * this variable. Be careful in multithreaded environments, as the + * stack size is rather limited. + */ + size_t max_stack_size; /* 0 disables stack bounds checking */ +} asn_codec_ctx_t; + +/* + * Type of the return value of the encoding functions (der_encode, xer_encode). + */ +typedef struct asn_enc_rval_s { + /* + * Number of bytes encoded. + * -1 indicates failure to encode the structure. + * In this case, the members below this one are meaningful. + */ + ssize_t encoded; + + /* + * Members meaningful when (encoded == -1), for post mortem analysis. + */ + + /* Type which cannot be encoded */ + const struct asn_TYPE_descriptor_s *failed_type; + + /* Pointer to the structure of that type */ + const void *structure_ptr; +} asn_enc_rval_t; +#define ASN__ENCODE_FAILED do { \ + asn_enc_rval_t tmp_error; \ + tmp_error.encoded = -1; \ + tmp_error.failed_type = td; \ + tmp_error.structure_ptr = sptr; \ + ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \ + return tmp_error; \ +} while(0) +#define ASN__ENCODED_OK(rval) do { \ + rval.structure_ptr = 0; \ + rval.failed_type = 0; \ + return rval; \ +} while(0) + +/* + * Type of the return value of the decoding functions (ber_decode, xer_decode) + * + * Please note that the number of consumed bytes is ALWAYS meaningful, + * even if code==RC_FAIL. This is to indicate the number of successfully + * decoded bytes, hence providing a possibility to fail with more diagnostics + * (i.e., print the offending remainder of the buffer). + */ +enum asn_dec_rval_code_e { + RC_OK, /* Decoded successfully */ + RC_WMORE, /* More data expected, call again */ + RC_FAIL /* Failure to decode data */ +}; +typedef struct asn_dec_rval_s { + enum asn_dec_rval_code_e code; /* Result code */ + size_t consumed; /* Number of bytes consumed */ +} asn_dec_rval_t; +#define ASN__DECODE_FAILED do { \ + asn_dec_rval_t tmp_error; \ + tmp_error.code = RC_FAIL; \ + tmp_error.consumed = 0; \ + ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \ + return tmp_error; \ +} while(0) +#define ASN__DECODE_STARVED do { \ + asn_dec_rval_t tmp_error; \ + tmp_error.code = RC_WMORE; \ + tmp_error.consumed = 0; \ + return tmp_error; \ +} while(0) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_CODECS_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_codecs_prim.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_codecs_prim.h new file mode 100644 index 000000000..5bbd9cfbc --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_codecs_prim.h @@ -0,0 +1,56 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_CODECS_PRIM_H +#define ASN_CODECS_PRIM_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ASN__PRIMITIVE_TYPE_s { + uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ + size_t size; /* Size of the buffer */ +} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ + +asn_struct_free_f ASN__PRIMITIVE_TYPE_free; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f ber_decode_primitive; +der_type_encoder_f der_encode_primitive; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +/* + * A callback specification for the xer_decode_primitive() function below. + */ +enum xer_pbd_rval { + XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ + XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ + XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ + XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ + XPBD_BODY_CONSUMED /* Body is recognized and consumed */ +}; +typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( + const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, + size_t chunk_size); + +/* + * Specific function to decode simple primitive types. + * Also see xer_decode_general() in xer_decoder.h + */ +asn_dec_rval_t xer_decode_primitive( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, + xer_primitive_body_decoder_f *prim_body_decoder); +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_CODECS_PRIM_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_config.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_config.h new file mode 100644 index 000000000..551bcc7fc --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_config.h @@ -0,0 +1,2 @@ +// Generated automatically. Don't edit manually! + diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_constant.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_constant.h new file mode 100644 index 000000000..cdd7ad7c7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_constant.h @@ -0,0 +1,308 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_AddGrpB_Angle (0) +#define max_val_AddGrpB_Angle (239) +#define min_val_Day (0) +#define max_val_Day (255) +#define min_val_DegreesLat (-90) +#define max_val_DegreesLat (90) +#define min_val_DegreesLong (-180) +#define max_val_DegreesLong (180) +#define min_val_AddGrpB_Elevation (-32768) +#define max_val_AddGrpB_Elevation (32767) +#define min_val_Hour (0) +#define max_val_Hour (255) +#define min_val_LatitudeDMS (-32400000) +#define max_val_LatitudeDMS (32400000) +#define min_val_LongitudeDMS (-64800000) +#define max_val_LongitudeDMS (64800000) +#define min_val_MaxTimetoChange (0) +#define max_val_MaxTimetoChange (2402) +#define min_val_MinTimetoChange (0) +#define max_val_MinTimetoChange (2402) +#define min_val_Minute (0) +#define max_val_Minute (255) +#define min_val_MinutesAngle (0) +#define max_val_MinutesAngle (59) +#define min_val_Month (1) +#define max_val_Month (255) +#define min_val_AddGrpB_MsgCount (0) +#define max_val_AddGrpB_MsgCount (255) +#define min_val_Second (0) +#define max_val_Second (60) +#define min_val_SecondsAngle (0) +#define max_val_SecondsAngle (5999) +#define min_val_TenthSecond (0) +#define max_val_TenthSecond (9) +#define min_val_TimeRemaining (0) +#define max_val_TimeRemaining (9001) +#define min_val_Year (1) +#define max_val_Year (65535) +#define min_val_AltitudeValue (-100000) +#define max_val_AltitudeValue (800001) +#define min_val_PartII_Id (0) +#define max_val_PartII_Id (63) +#define min_val_TrailerMass (0) +#define max_val_TrailerMass (255) +#define min_val_VertOffset_B07 (-64) +#define max_val_VertOffset_B07 (63) +#define min_val_Acceleration (-2000) +#define max_val_Acceleration (2001) +#define min_val_AmbientAirPressure (0) +#define max_val_AmbientAirPressure (255) +#define min_val_AmbientAirTemperature (0) +#define max_val_AmbientAirTemperature (191) +#define min_val_Common_Angle (0) +#define max_val_Common_Angle (28800) +#define min_val_ApproachID (0) +#define max_val_ApproachID (15) +#define min_val_BasicVehicleClass (0) +#define max_val_BasicVehicleClass (255) +#define min_val_BumperHeight (0) +#define max_val_BumperHeight (127) +#define min_val_CoarseHeading (0) +#define max_val_CoarseHeading (240) +#define min_val_CoefficientOfFriction (0) +#define max_val_CoefficientOfFriction (50) +#define min_val_Confidence (0) +#define max_val_Confidence (200) +#define min_val_Count (0) +#define max_val_Count (32) +#define min_val_DDay (0) +#define max_val_DDay (31) +#define min_val_DeltaAngle (-150) +#define max_val_DeltaAngle (150) +#define min_val_DHour (0) +#define max_val_DHour (31) +#define min_val_DMinute (0) +#define max_val_DMinute (60) +#define min_val_DMonth (0) +#define max_val_DMonth (12) +#define min_val_DOffset (-840) +#define max_val_DOffset (840) +#define min_val_DrivenLineOffsetLg (-32767) +#define max_val_DrivenLineOffsetLg (32767) +#define min_val_DrivenLineOffsetSm (-2047) +#define max_val_DrivenLineOffsetSm (2047) +#define min_val_DSecond (0) +#define max_val_DSecond (65535) +#define min_val_Duration (0) +#define max_val_Duration (3600) +#define min_val_DYear (0) +#define max_val_DYear (4095) +#define min_val_Common_Elevation (-4096) +#define max_val_Common_Elevation (61439) +#define min_val_FuelType (0) +#define max_val_FuelType (15) +#define min_val_GrossSpeed (0) +#define max_val_GrossSpeed (31) +#define min_val_Heading (0) +#define max_val_Heading (28800) +#define min_val_IntersectionID (0) +#define max_val_IntersectionID (65535) +#define min_val_Iso3833VehicleType (0) +#define max_val_Iso3833VehicleType (100) +#define min_val_TrailerWeight (0) +#define max_val_TrailerWeight (64255) +#define min_val_LaneConnectionID (0) +#define max_val_LaneConnectionID (255) +#define min_val_LaneID (0) +#define max_val_LaneID (255) +#define min_val_LaneWidth (0) +#define max_val_LaneWidth (32767) +#define min_val_Latitude (-900000000) +#define max_val_Latitude (900000001) +#define min_val_Longitude (-1799999999) +#define max_val_Longitude (1800000001) +#define min_val_MergeDivergeNodeAngle (-180) +#define max_val_MergeDivergeNodeAngle (180) +#define min_val_MinuteOfTheYear (0) +#define max_val_MinuteOfTheYear (527040) +#define min_val_Common_MsgCount (0) +#define max_val_Common_MsgCount (127) +#define min_val_ObstacleDistance (0) +#define max_val_ObstacleDistance (32767) +#define min_val_Offset_B09 (-256) +#define max_val_Offset_B09 (255) +#define min_val_Offset_B10 (-512) +#define max_val_Offset_B10 (511) +#define min_val_Offset_B11 (-1024) +#define max_val_Offset_B11 (1023) +#define min_val_Offset_B12 (-2048) +#define max_val_Offset_B12 (2047) +#define min_val_Offset_B13 (-4096) +#define max_val_Offset_B13 (4095) +#define min_val_Offset_B14 (-8192) +#define max_val_Offset_B14 (8191) +#define min_val_Offset_B16 (-32768) +#define max_val_Offset_B16 (32767) +#define min_val_OffsetLL_B18 (-131072) +#define max_val_OffsetLL_B18 (131071) +#define min_val_RadiusOfCurvature (-32767) +#define max_val_RadiusOfCurvature (32767) +#define min_val_RegionId (0) +#define max_val_RegionId (255) +#define min_val_RequestID (0) +#define max_val_RequestID (255) +#define min_val_RestrictionClassID (0) +#define max_val_RestrictionClassID (255) +#define min_val_RoadRegulatorID (0) +#define max_val_RoadRegulatorID (65535) +#define min_val_RoadSegmentID (0) +#define max_val_RoadSegmentID (65535) +#define min_val_RoadwayCrownAngle (-128) +#define max_val_RoadwayCrownAngle (127) +#define min_val_Scale_B12 (-2048) +#define max_val_Scale_B12 (2047) +#define min_val_SemiMajorAxisAccuracy (0) +#define max_val_SemiMajorAxisAccuracy (255) +#define min_val_SemiMajorAxisOrientation (0) +#define max_val_SemiMajorAxisOrientation (65535) +#define min_val_SemiMinorAxisAccuracy (0) +#define max_val_SemiMinorAxisAccuracy (255) +#define min_val_SignalGroupID (0) +#define max_val_SignalGroupID (255) +#define min_val_Speed (0) +#define max_val_Speed (8191) +#define min_val_SSPindex (0) +#define max_val_SSPindex (31) +#define min_val_StationID (0) +#define max_val_StationID (4294967295) +#define min_val_SteeringWheelAngle (-126) +#define max_val_SteeringWheelAngle (127) +#define min_val_TimeOffset (1) +#define max_val_TimeOffset (65535) +#define min_val_VehicleHeight (0) +#define max_val_VehicleHeight (127) +#define min_val_VehicleLength (0) +#define max_val_VehicleLength (4095) +#define min_val_VehicleMass (0) +#define max_val_VehicleMass (255) +#define min_val_VehicleWidth (0) +#define max_val_VehicleWidth (1023) +#define min_val_Velocity (0) +#define max_val_Velocity (8191) +#define min_val_VerticalAcceleration (-127) +#define max_val_VerticalAcceleration (127) +#define min_val_VertOffset_B08 (-128) +#define max_val_VertOffset_B08 (127) +#define min_val_VertOffset_B09 (-256) +#define max_val_VertOffset_B09 (255) +#define min_val_VertOffset_B10 (-512) +#define max_val_VertOffset_B10 (511) +#define min_val_VertOffset_B11 (-1024) +#define max_val_VertOffset_B11 (1023) +#define min_val_VertOffset_B12 (-2048) +#define max_val_VertOffset_B12 (2047) +#define min_val_WiperRate (0) +#define max_val_WiperRate (127) +#define min_val_YawRate (-32767) +#define max_val_YawRate (32767) +#define min_val_ITIScodes (0) +#define max_val_ITIScodes (65535) +#define min_val_LayerID (0) +#define max_val_LayerID (100) +#define min_val_DSRCmsgID (0) +#define max_val_DSRCmsgID (32767) +#define min_val_NMEA_MsgType (0) +#define max_val_NMEA_MsgType (32767) +#define min_val_ObjectCount (0) +#define max_val_ObjectCount (1023) +#define min_val_EssMobileFriction (0) +#define max_val_EssMobileFriction (101) +#define min_val_EssPrecipRate (0) +#define max_val_EssPrecipRate (65535) +#define min_val_EssSolarRadiation (0) +#define max_val_EssSolarRadiation (65535) +#define min_val_AttachmentRadius (0) +#define max_val_AttachmentRadius (200) +#define min_val_PersonalClusterRadius (0) +#define max_val_PersonalClusterRadius (100) +#define min_val_GrossDistance (0) +#define max_val_GrossDistance (1023) +#define min_val_SecondOfTime (0) +#define max_val_SecondOfTime (61) +#define min_val_TermDistance (1) +#define max_val_TermDistance (30000) +#define min_val_TermTime (1) +#define max_val_TermTime (1800) +#define min_val_DrivingWheelAngle (-128) +#define max_val_DrivingWheelAngle (127) +#define min_val_AxleLocation (0) +#define max_val_AxleLocation (255) +#define min_val_AxleWeight (0) +#define max_val_AxleWeight (64255) +#define min_val_CargoWeight (0) +#define max_val_CargoWeight (64255) +#define min_val_DriveAxleLiftAirPressure (0) +#define max_val_DriveAxleLiftAirPressure (1000) +#define min_val_DriveAxleLocation (0) +#define max_val_DriveAxleLocation (255) +#define min_val_DriveAxleLubePressure (0) +#define max_val_DriveAxleLubePressure (250) +#define min_val_DriveAxleTemperature (-40) +#define max_val_DriveAxleTemperature (210) +#define min_val_SteeringAxleLubePressure (0) +#define max_val_SteeringAxleLubePressure (250) +#define min_val_SteeringAxleTemperature (-40) +#define max_val_SteeringAxleTemperature (210) +#define min_val_TireLeakageRate (0) +#define max_val_TireLeakageRate (64255) +#define min_val_TireLocation (0) +#define max_val_TireLocation (255) +#define min_val_TirePressure (0) +#define max_val_TirePressure (250) +#define min_val_TireTemp (-8736) +#define max_val_TireTemp (55519) +#define min_val_ProbeSegmentNumber (0) +#define max_val_ProbeSegmentNumber (32767) +#define min_val_SteeringWheelAngleRateOfChange (-127) +#define max_val_SteeringWheelAngleRateOfChange (127) +#define min_val_SunSensor (0) +#define max_val_SunSensor (1000) +#define min_val_ThrottlePosition (0) +#define max_val_ThrottlePosition (200) +#define min_val_DeltaTime (-122) +#define max_val_DeltaTime (121) +#define min_val_SpeedAdvice (0) +#define max_val_SpeedAdvice (500) +#define min_val_TimeIntervalConfidence (0) +#define max_val_TimeIntervalConfidence (15) +#define min_val_SPAT_TimeMark (0) +#define max_val_SPAT_TimeMark (36111) +#define min_val_ZoneLength (0) +#define max_val_ZoneLength (10000) +#define min_val_MinutesDuration (0) +#define max_val_MinutesDuration (32000) +#define min_val_OffsetLL_B12 (-2048) +#define max_val_OffsetLL_B12 (2047) +#define min_val_OffsetLL_B14 (-8192) +#define max_val_OffsetLL_B14 (8191) +#define min_val_OffsetLL_B16 (-32768) +#define max_val_OffsetLL_B16 (32767) +#define min_val_OffsetLL_B22 (-2097152) +#define max_val_OffsetLL_B22 (2097151) +#define min_val_OffsetLL_B24 (-8388608) +#define max_val_OffsetLL_B24 (8388607) +#define min_val_Radius_B12 (0) +#define max_val_Radius_B12 (4095) +#define min_val_SignPrority (0) +#define max_val_SignPrority (7) +#define min_val_Zoom (0) +#define max_val_Zoom (15) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_internal.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_internal.h new file mode 100644 index 000000000..d6ce61980 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_internal.h @@ -0,0 +1,187 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Declarations internally useful for the ASN.1 support code. + */ +#ifndef ASN_INTERNAL_H +#define ASN_INTERNAL_H +#ifndef __EXTENSIONS__ +#define __EXTENSIONS__ /* for Sun */ +#endif + +#include "asn_application.h" /* Application-visible API */ + +#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ +#include /* for assert() macro */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#include +#include +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#include +#include +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +/* Environment version might be used to avoid running with the old library */ +#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ +int get_asn1c_environment_version(void); /* Run-time version */ + +#define CALLOC(nmemb, size) calloc(nmemb, size) +#define MALLOC(size) malloc(size) +#define REALLOC(oldptr, size) realloc(oldptr, size) +#define FREEMEM(ptr) free(ptr) + +#define asn_debug_indent 0 +#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) + +#ifdef EMIT_ASN_DEBUG +#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" +#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG +#endif + +/* + * A macro for debugging the ASN.1 internals. + * You may enable or override it. + */ +#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ +#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ +#if __STDC_VERSION__ >= 199901L +#ifdef ASN_THREAD_SAFE +/* Thread safety requires sacrifice in output indentation: + * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ +#else /* !ASN_THREAD_SAFE */ +#undef ASN_DEBUG_INDENT_ADD +#undef asn_debug_indent +int asn_debug_indent; +#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) +#endif /* ASN_THREAD_SAFE */ +#define ASN_DEBUG(fmt, args...) do { \ + int adi = asn_debug_indent; \ + while(adi--) fprintf(stderr, " "); \ + fprintf(stderr, fmt, ##args); \ + fprintf(stderr, " (%s:%d)\n", \ + __FILE__, __LINE__); \ + } while(0) +#else /* !C99 */ +void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); +#define ASN_DEBUG ASN_DEBUG_f +#endif /* C99 */ +#else /* ASN_EMIT_DEBUG != 1 */ +#if __STDC_VERSION__ >= 199901L +#define ASN_DEBUG(...) do{}while(0) +#else /* not C99 */ +static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } +#endif /* C99 or better */ +#endif /* ASN_EMIT_DEBUG */ +#endif /* ASN_DEBUG */ + +/* + * Print to a callback. + * The callback is expected to return negative values on error. + * 0 and positive values are treated as success. + * RETURN VALUES: + * -1: Failed to format or invoke the callback. + * >0: Size of the data that got delivered to the callback. + */ +ssize_t CC_PRINTFLIKE(3, 4) +asn__format_to_callback( + int (*callback)(const void *, size_t, void *key), void *key, + const char *fmt, ...); + +/* + * Invoke the application-supplied callback and fail, if something is wrong. + */ +#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) +#define ASN__E_CALLBACK(size, foo) \ + do { \ + if(foo) goto cb_failed; \ + er.encoded += (size); \ + } while(0) +#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) +#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ + ASN__E_CALLBACK((size1) + (size2), \ + ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) +#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ + ASN__E_CALLBACK((size1) + (size2) + (size3), \ + ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ + || ASN__E_cbc(buf3, size3)) + +#define ASN__TEXT_INDENT(nl, level) \ + do { \ + int tmp_level = (level); \ + int tmp_nl = ((nl) != 0); \ + int tmp_i; \ + if(tmp_nl) ASN__CALLBACK("\n", 1); \ + if(tmp_level < 0) tmp_level = 0; \ + for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ + } while(0) + +#define _i_INDENT(nl) do { \ + int tmp_i; \ + if((nl) && cb("\n", 1, app_key) < 0) \ + return -1; \ + for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ + if(cb(" ", 4, app_key) < 0) \ + return -1; \ + } while(0) + +/* + * Check stack against overflow, if limit is set. + */ + +/* Since GCC 13, AddressSanitizer started defaulting to +* ASAN_OPTIONS="detect_stack_use_after_return=1", which makes this check +* fail due to apparently jumping stack pointers. +* Hence, disable this check if building with ASan, as documented in: +* GCC: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html +* Clang: https://clang.llvm.org/docs/AddressSanitizer.html#conditional-compilation-with-has-feature-address-sanitizer +*/ +#if defined(__SANITIZE_ADDRESS__) + #define ASN__SANITIZE_ENABLED 1 +#elif defined(__has_feature) +#if __has_feature(address_sanitizer) + #define ASN__SANITIZE_ENABLED 1 +#endif +#endif + +#define ASN__DEFAULT_STACK_MAX (30000) + +#if defined(ASN__SANITIZE_ENABLED) || defined(ASN_DISABLE_STACK_OVERFLOW_CHECK) +static int CC_NOTUSED +ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { + (void)ctx; + return 0; +} +#else +static int CC_NOTUSED +ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { + if(ctx && ctx->max_stack_size) { + + /* ctx MUST be allocated on the stack */ + ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); + if(usedstack > 0) usedstack = -usedstack; /* grows up! */ + + /* double negative required to avoid int wrap-around */ + if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { + ASN_DEBUG("Stack limit %ld reached", + (long)ctx->max_stack_size); + return -1; + } + } + return 0; +} +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_INTERNAL_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_ioc.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_ioc.h new file mode 100644 index 000000000..7de210ee0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_ioc.h @@ -0,0 +1,51 @@ +/* + * Run-time support for Information Object Classes. + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_IOC_H +#define ASN_IOC_H + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; +struct asn_ioc_cell_s; + +/* + * X.681, #13 + */ +typedef struct asn_ioc_set_s { + size_t rows_count; + size_t columns_count; + const struct asn_ioc_cell_s *rows; +} asn_ioc_set_t; + + +typedef struct asn_ioc_cell_s { + const char *field_name; /* Is equal to corresponding column_name */ + enum { + aioc__undefined = 0, + aioc__value, + aioc__type, + aioc__open_type, + } cell_kind; + struct asn_TYPE_descriptor_s *type_descriptor; + const void *value_sptr; + struct { + size_t types_count; + struct { + unsigned choice_position; + } *types; + } open_type; +} asn_ioc_cell_t; + + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_IOC_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_random_fill.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_random_fill.h new file mode 100644 index 000000000..47f9b8af0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_random_fill.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_RANDOM_FILL +#define ASN_RANDOM_FILL + +/* Forward declarations */ +struct asn_TYPE_descriptor_s; +struct asn_encoding_constraints_s; + +/* + * Initialize a structure with random data according to the type specification + * and optional member constraints. + * ARGUMENTS: + * (max_length) - See (approx_max_length_limit). + * (memb_constraints) - Member constraints, if exist. + * The type can be constrained differently according + * to PER and OER specifications, so we find a value + * at the intersection of these constraints. + * In case the return differs from ARFILL_OK, the (struct_ptr) contents + * and (current_length) value remain in their original state. + */ +typedef struct asn_random_fill_result_s { + enum { + ARFILL_FAILED = -1, /* System error (memory?) */ + ARFILL_OK = 0, /* Initialization succeeded */ + ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */ + } code; + size_t length; /* Approximate number of bytes created. */ +} asn_random_fill_result_t; +typedef asn_random_fill_result_t(asn_random_fill_f)( + const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + const struct asn_encoding_constraints_s *memb_constraints, + size_t max_length); + +/* + * Returns 0 if the structure was properly initialized, -1 otherwise. + * The (approx_max_length_limit) specifies the approximate limit of the + * resulting structure in units closely resembling bytes. The actual result + * might be several times larger or smaller than the length limit. + */ +int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + size_t approx_max_length_limit); + +/* + * Returns a random number between min and max. + */ +intmax_t asn_random_between(intmax_t min, intmax_t max); + +#endif /* ASN_RANDOM_FILL */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_system.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_system.h new file mode 100644 index 000000000..0f0d495b2 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/asn_system.h @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Miscellaneous system-dependent types. + */ +#ifndef ASN_SYSTEM_H +#define ASN_SYSTEM_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifndef _DEFAULT_SOURCE +#define _DEFAULT_SOURCE 1 +#endif + +#ifndef _BSD_SOURCE +#define _BSD_SOURCE /* for snprintf() on some linux systems */ +#endif + +#include /* For snprintf(3) */ +#include /* For *alloc(3) */ +#include /* For memcpy(3) */ +#include /* For size_t */ +#include /* For LONG_MAX */ +#include /* For va_start */ +#include /* for offsetof and ptrdiff_t */ +#include /* for PRIdMAX */ + +#ifdef _WIN32 + +#include +#ifndef __MINGW32__ +#define snprintf _snprintf +#define vsnprintf _vsnprintf +#endif + +/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ +#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ + | (((l) << 8) & 0xff0000) \ + | (((l) >> 8) & 0xff00) \ + | ((l >> 24) & 0xff)) + +#ifdef _MSC_VER /* MSVS.Net */ +#ifndef __cplusplus +#define inline __inline +#endif +#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ +#define ssize_t SSIZE_T +#if _MSC_VER < 1600 +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#else /* _MSC_VER >= 1600 */ +#include +#endif /* _MSC_VER < 1600 */ +#endif /* ASSUMESTDTYPES */ +#define WIN32_LEAN_AND_MEAN +#include +#include +#define isnan _isnan +#define finite _finite +#define copysign _copysign +#define ilogb _logb +#else /* !_MSC_VER */ +#include +#endif /* _MSC_VER */ + +#else /* !_WIN32 */ + +#if defined(__vxworks) +#include +#else /* !defined(__vxworks) */ + +#include /* C99 specifies this file */ +#ifdef HAVE_NETINET_IN_H +#include /* for ntohl() */ +#endif +#define sys_ntohl(foo) ntohl(foo) +#endif /* defined(__vxworks) */ + +#endif /* _WIN32 */ + +#if __GNUC__ >= 3 || defined(__clang__) +#define CC_ATTRIBUTE(attr) __attribute__((attr)) +#else +#define CC_ATTRIBUTE(attr) +#endif +#if defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__>= 4) || __GNUC__ > 4) +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(gnu_printf, fmt, var)) +#elif defined(__GNUC__) +#if defined(ANDROID) +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(__format__(__printf__, fmt, var)) +#else +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) +#endif +#else +#define CC_PRINTFLIKE(fmt, var) +#endif +#define CC_NOTUSED CC_ATTRIBUTE(unused) +#ifndef CC_ATTR_NO_SANITIZE +#if __GNUC__ < 8 +#define CC_ATTR_NO_SANITIZE(what) +#else +#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) +#endif +#endif + +/* Figure out if thread safety is requested */ +#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) +#define ASN_THREAD_SAFE +#endif /* Thread safety */ + +#ifndef offsetof /* If not defined by */ +#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) +#endif /* offsetof */ + +#ifndef MIN /* Suitable for comparing primitive types (integers) */ +#if defined(__GNUC__) +#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ + ((_a)<(_b)?(_a):(_b)); }) +#else /* !__GNUC__ */ +#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ +#endif /* __GNUC__ */ +#endif /* MIN */ + +#if __STDC_VERSION__ >= 199901L +#ifndef SIZE_MAX +#define SIZE_MAX ((~((size_t)0)) >> 1) +#endif + +#ifndef RSIZE_MAX /* C11, Annex K */ +#define RSIZE_MAX (SIZE_MAX >> 1) +#endif +#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ +#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) +#endif +#else /* Old compiler */ +#undef SIZE_MAX +#undef RSIZE_MAX +#undef RSSIZE_MAX +#define SIZE_MAX ((~((size_t)0)) >> 1) +#define RSIZE_MAX (SIZE_MAX >> 1) +#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) +#endif + +#if __STDC_VERSION__ >= 199901L +#define ASN_PRI_SIZE "zu" +#define ASN_PRI_SSIZE "zd" +#define ASN_PRIuMAX PRIuMAX +#define ASN_PRIdMAX PRIdMAX +#else +#define ASN_PRI_SIZE "lu" +#define ASN_PRI_SSIZE "ld" +#if LLONG_MAX > LONG_MAX +#define ASN_PRIuMAX "llu" +#define ASN_PRIdMAX "lld" +#else +#define ASN_PRIuMAX "lu" +#define ASN_PRIdMAX "ld" +#endif +#endif + +#endif /* ASN_SYSTEM_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ber_decoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ber_decoder.h new file mode 100644 index 000000000..1ac2a5ef0 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ber_decoder.h @@ -0,0 +1,66 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_DECODER_H_ +#define _BER_DECODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_codec_ctx_s; /* Forward declaration */ + +/* + * The BER decoder of any type. + * This function may be invoked directly from the application. + * Decodes BER, DER and CER data (DER and CER are different subsets of BER). + * + * NOTE: Use the der_encode() function (der_encoder.h) to produce encoding + * which is compliant with ber_decode(). + */ +asn_dec_rval_t ber_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ +); + +/* + * Type of generic function which decodes the byte stream into the structure. + */ +typedef asn_dec_rval_t(ber_type_decoder_f)( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, + const void *buf_ptr, size_t size, int tag_mode); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +/* + * Check that all tags correspond to the type definition (as given in head). + * On return, last_length would contain either a non-negative length of the + * value part of the last TLV, or the negative number of expected + * "end of content" sequences. The number may only be negative if the + * head->last_tag_form is non-zero. + */ +asn_dec_rval_t ber_check_tags( + const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */ + const struct asn_TYPE_descriptor_s *type_descriptor, + asn_struct_ctx_t *opt_ctx, /* saved decoding context */ + const void *ptr, size_t size, + int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ + int last_tag_form, /* {-1,0:1}: any, primitive, constr */ + ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_DECODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ber_tlv_length.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ber_tlv_length.h new file mode 100644 index 000000000..d1e4d48dd --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ber_tlv_length.h @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_TLV_LENGTH_H_ +#define _BER_TLV_LENGTH_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ssize_t ber_tlv_len_t; + +/* + * This function tries to fetch the length of the BER TLV value and place it + * in *len_r. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + * On return with >0, len_r is constrained as -1..MAX, where -1 mean + * that the value is of indefinite length. + */ +ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, + ber_tlv_len_t *len_r); + +/* + * This function expects bufptr to be positioned over L in TLV. + * It returns number of bytes occupied by L and V together, suitable + * for skipping. The function properly handles indefinite length. + * RETURN VALUES: + * Standard {-1,0,>0} convention. + */ +ssize_t ber_skip_length( + const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */ + int _is_constructed, const void *bufptr, size_t size); + +/* + * This function serializes the length (L from TLV) in DER format. + * It always returns number of bytes necessary to represent the length, + * it is a caller's responsibility to check the return value + * against the supplied buffer's size. + */ +size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_TLV_LENGTH_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/ber_tlv_tag.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/ber_tlv_tag.h new file mode 100644 index 000000000..ce227add6 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/ber_tlv_tag.h @@ -0,0 +1,60 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_TLV_TAG_H_ +#define _BER_TLV_TAG_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +enum asn_tag_class { + ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */ + ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */ + ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */ + ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */ +}; +typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */ + +/* + * Tag class is encoded together with tag value for optimization purposes. + */ +#define BER_TAG_CLASS(tag) ((tag) & 0x3) +#define BER_TAG_VALUE(tag) ((tag) >> 2) +#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0) + +#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2)) + +/* + * Several functions for printing the TAG in the canonical form + * (i.e. "[PRIVATE 0]"). + * Return values correspond to their libc counterparts (if any). + */ +ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen); +ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *); +char *ber_tlv_tag_string(ber_tlv_tag_t tag); + + +/* + * This function tries to fetch the tag from the input stream. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering tag. + * >0: Number of bytes used from bufptr. tag_r will contain the tag. + */ +ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r); + +/* + * This function serializes the tag (T from TLV) in BER format. + * It always returns number of bytes necessary to represent the tag, + * it is a caller's responsibility to check the return value + * against the supplied buffer's size. + */ +size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_TLV_TAG_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_CHOICE.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_CHOICE.h new file mode 100644 index 000000000..03d606c88 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_CHOICE.h @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_CHOICE_H_ +#define _CONSTR_CHOICE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_CHOICE_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ + unsigned pres_offset; /* Identifier of the present member */ + unsigned pres_size; /* Size of the identifier (enum) */ + + /* + * Tags to members mapping table. + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* Canonical ordering of CHOICE elements, for PER */ + const unsigned *to_canonical_order; + const unsigned *from_canonical_order; + + /* + * Extensions-related stuff. + */ + signed ext_start; /* First member of extensions, or -1 */ +} asn_CHOICE_specifics_t; + +/* + * A set specialized functions dealing with the CHOICE type. + */ +asn_struct_free_f CHOICE_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f CHOICE_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f CHOICE_compare; + +asn_constr_check_f CHOICE_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f CHOICE_decode_ber; +der_type_encoder_f CHOICE_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f CHOICE_decode_xer; +xer_type_encoder_f CHOICE_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f CHOICE_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f CHOICE_decode_oer; +oer_type_encoder_f CHOICE_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f CHOICE_decode_uper; +per_type_encoder_f CHOICE_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f CHOICE_decode_aper; +per_type_encoder_f CHOICE_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f CHOICE_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +asn_outmost_tag_f CHOICE_outmost_tag; + +extern asn_TYPE_operation_t asn_OP_CHOICE; + +unsigned _fetch_present_idx( + const void *struct_ptr, + unsigned off, + unsigned size); + +void _set_present_idx( + void *sptr, + unsigned offset, + unsigned size, + unsigned present); + +/* + * Return the 1-based choice variant presence index. + * Returns 0 in case of error. + */ +unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, + const void *structure_ptr); + +/* + * Sets or resets the 1-based choice variant presence index. + * In case a previous index is not zero, the currently selected structure + * member is freed and zeroed-out first. + * Returns 0 on success and -1 on error. + */ +int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, + void *structure_ptr, unsigned present); + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_CHOICE_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SEQUENCE.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SEQUENCE.h new file mode 100644 index 000000000..5ecfd8f22 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SEQUENCE.h @@ -0,0 +1,95 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_H_ +#define _CONSTR_SEQUENCE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_SEQUENCE_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + /* + * Tags to members mapping table (sorted). + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* + * Optional members of the extensions root (roms) or additions (aoms). + * Meaningful for PER. + */ + const int *oms; /* Optional MemberS */ + unsigned roms_count; /* Root optional members count */ + unsigned aoms_count; /* Additions optional members count */ + + /* + * Description of an extensions group. + * Root components are clustered at the beginning of the structure, + * whereas extensions are clustered at the end. -1 means not extensible. + */ + signed first_extension; /* First extension addition */ +} asn_SEQUENCE_specifics_t; + + +/* + * A set specialized functions dealing with the SEQUENCE type. + */ +asn_struct_free_f SEQUENCE_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f SEQUENCE_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f SEQUENCE_compare; + +asn_constr_check_f SEQUENCE_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f SEQUENCE_decode_ber; +der_type_encoder_f SEQUENCE_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f SEQUENCE_decode_xer; +xer_type_encoder_f SEQUENCE_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f SEQUENCE_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f SEQUENCE_decode_oer; +oer_type_encoder_f SEQUENCE_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f SEQUENCE_decode_uper; +per_type_encoder_f SEQUENCE_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f SEQUENCE_decode_aper; +per_type_encoder_f SEQUENCE_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f SEQUENCE_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_SEQUENCE; + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SEQUENCE_OF.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SEQUENCE_OF.h new file mode 100644 index 000000000..1768582bf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SEQUENCE_OF.h @@ -0,0 +1,67 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_OF_H_ +#define _CONSTR_SEQUENCE_OF_H_ + +#include +#include /* Implemented using SET OF */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A set specialized functions dealing with the SEQUENCE OF type. + * Generally implemented using SET OF. + */ +#define SEQUENCE_OF_free SET_OF_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define SEQUENCE_OF_print SET_OF_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f SEQUENCE_OF_compare; + +#define SEQUENCE_OF_constraint SET_OF_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define SEQUENCE_OF_decode_ber SET_OF_decode_ber +der_type_encoder_f SEQUENCE_OF_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define SEQUENCE_OF_decode_xer SET_OF_decode_xer +xer_type_encoder_f SEQUENCE_OF_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f SEQUENCE_OF_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +#define SEQUENCE_OF_decode_oer SET_OF_decode_oer +#define SEQUENCE_OF_encode_oer SET_OF_encode_oer +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define SEQUENCE_OF_decode_uper SET_OF_decode_uper +per_type_encoder_f SEQUENCE_OF_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define SEQUENCE_OF_decode_aper SET_OF_decode_aper +per_type_encoder_f SEQUENCE_OF_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#define SEQUENCE_OF_random_fill SET_OF_random_fill +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SET_OF_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SET_OF.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SET_OF.h new file mode 100644 index 000000000..0e9dd39a1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_SET_OF.h @@ -0,0 +1,102 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef CONSTR_SET_OF_H +#define CONSTR_SET_OF_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_SET_OF_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + /* XER-specific stuff */ + int as_XMLValueList; /* The member type must be encoded like this */ +} asn_SET_OF_specifics_t; + +/* + * A set specialized functions dealing with the SET OF type. + */ +asn_struct_free_f SET_OF_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f SET_OF_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f SET_OF_compare; + +asn_constr_check_f SET_OF_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f SET_OF_decode_ber; +der_type_encoder_f SET_OF_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f SET_OF_decode_xer; +xer_type_encoder_f SET_OF_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_encoder_f SET_OF_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f SET_OF_decode_oer; +oer_type_encoder_f SET_OF_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f SET_OF_decode_uper; +per_type_encoder_f SET_OF_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f SET_OF_decode_aper; +per_type_encoder_f SET_OF_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f SET_OF_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_SET_OF; + +/* + * Internally visible buffer holding a single encoded element. + */ +struct _el_buffer { + uint8_t *buf; + size_t length; + size_t allocated_size; + unsigned bits_unused; +}; + +enum SET_OF__encode_method { + SOES_DER, /* Distinguished Encoding Rules */ + SOES_CUPER, /* Canonical Unaligned Packed Encoding Rules */ + SOES_CAPER /* Canonical Aligned Packed Encoding Rules */ +}; + +struct _el_buffer * SET_OF__encode_sorted( + const asn_TYPE_member_t *elm, + const asn_anonymous_set_ *list, + enum SET_OF__encode_method method); + +void SET_OF__encode_sorted_free( + struct _el_buffer *el_buf, + size_t count); + +#ifdef __cplusplus +} +#endif + +#endif /* CONSTR_SET_OF_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_TYPE.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_TYPE.h new file mode 100644 index 000000000..55c2574a1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/constr_TYPE.h @@ -0,0 +1,295 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This file contains the declaration structure called "ASN.1 Type Definition", + * which holds all information necessary for encoding and decoding routines. + * This structure even contains pointer to these encoding and decoding routines + * for each defined ASN.1 type. + */ +#ifndef _CONSTR_TYPE_H_ +#define _CONSTR_TYPE_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_TYPE_member_s; /* Forward declaration */ + +/* + * This type provides the context information for various ASN.1 routines, + * primarily ones doing decoding. A member _asn_ctx of this type must be + * included into certain target language's structures, such as compound types. + */ +typedef struct asn_struct_ctx_s { + short phase; /* Decoding phase */ + short step; /* Elementary step of a phase */ + int context; /* Other context information */ + void *ptr; /* Decoder-specific stuff (stack elements) */ + ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ +} asn_struct_ctx_t; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#include /* Basic Encoding Rules decoder */ +#include /* Distinguished Encoding Rules encoder */ +#else +typedef void (ber_type_decoder_f)(void); +typedef void (der_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#include /* Decoder of XER (XML, text) */ +#include /* Encoder into XER (XML, text) */ +#else +typedef void (xer_type_decoder_f)(void); +typedef void (xer_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#include /* Encoder into JER (JSON, text) */ +#else +typedef void (jer_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +#include /* Packet Encoding Rules decoder */ +#include /* Packet Encoding Rules encoder */ +#else +typedef void (per_type_decoder_f)(void); +typedef void (per_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + +#include /* Subtype constraints support */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#include /* Random structures support */ +#else +typedef void (asn_random_fill_f)(void); +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +#include /* Octet Encoding Rules encoder */ +#include /* Octet Encoding Rules encoder */ +#else +typedef void (oer_type_decoder_f)(void); +typedef void (oer_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +/* + * Free the structure according to its specification. + * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. + * Do not use directly. + */ +enum asn_struct_free_method { + ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ + ASFM_FREE_UNDERLYING, /* free underlying members */ + ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ +}; +typedef void (asn_struct_free_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + void *struct_ptr, enum asn_struct_free_method); + +/* + * Free the structure including freeing the memory pointed to by ptr itself. + */ +#define ASN_STRUCT_FREE(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) + +/* + * Free the memory used by the members of the structure without freeing the + * the structure pointer itself. + * ZERO-OUT the structure to the safe clean state. + * (Retaining the pointer may be useful in case the structure is allocated + * statically or arranged on the stack, yet its elements are dynamic.) + */ +#define ASN_STRUCT_RESET(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) + +/* + * Free memory used by the members of the structure without freeing + * the structure pointer itself. + * (Retaining the pointer may be useful in case the structure is allocated + * statically or arranged on the stack, yet its elements are dynamic.) + * AVOID using it in the application code; + * Use a safer ASN_STRUCT_RESET() instead. + */ +#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) + +/* + * Print the structure according to its specification. + */ +typedef int(asn_struct_print_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, + int level, /* Indentation level */ + asn_app_consume_bytes_f *callback, void *app_key); + +/* + * Compare two structs between each other. + * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", + * and =0 if "equal to", for some type-specific, stable definition of + * "smaller", "greater" and "equal to". + */ +typedef int (asn_struct_compare_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_A, + const void *struct_B); + +/* + * Return the outmost tag of the type. + * If the type is untagged CHOICE, the dynamic operation is performed. + * NOTE: This function pointer type is only useful internally. + * Do not use it in your application. + */ +typedef ber_tlv_tag_t (asn_outmost_tag_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); +/* The instance of the above function type; used internally. */ +asn_outmost_tag_f asn_TYPE_outmost_tag; + +/* + * Fetch the desired type of the Open Type based on the + * Information Object Set driven constraints. + */ +typedef struct asn_type_selector_result_s { + const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ + unsigned presence_index; /* Associated choice variant. */ +} asn_type_selector_result_t; +typedef asn_type_selector_result_t(asn_type_selector_f)( + const struct asn_TYPE_descriptor_s *parent_type_descriptor, + const void *parent_structure_ptr); + +/* + * Generalized functions for dealing with the speciic type. + * May be directly invoked by applications. + */ +typedef struct asn_TYPE_operation_s { + asn_struct_free_f *free_struct; /* Free the structure */ + asn_struct_print_f *print_struct; /* Human readable output */ + asn_struct_compare_f *compare_struct; /* Compare two structures */ + ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ + der_type_encoder_f *der_encoder; /* Canonical DER encoder */ + xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ + xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ + jer_type_encoder_f *jer_encoder; /* Generic JER encoder */ + oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ + oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ + per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ + per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ + per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ + per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ + asn_random_fill_f *random_fill; /* Initialize with a random value */ + asn_outmost_tag_f *outmost_tag; /* */ +} asn_TYPE_operation_t; + +/* + * A constraints tuple specifying both the OER and PER constraints. + */ +typedef struct asn_encoding_constraints_s { +#if !defined(ASN_DISABLE_OER_SUPPORT) + const struct asn_oer_constraints_s *oer_constraints; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + const struct asn_per_constraints_s *per_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_constr_check_f *general_constraints; +} asn_encoding_constraints_t; + +/* + * The definitive description of the destination language's structure. + */ +typedef struct asn_TYPE_descriptor_s { + const char *name; /* A name of the ASN.1 type. "" in some cases. */ + const char *xml_tag; /* Name used in XML tag */ + + /* + * Generalized functions for dealing with the specific type. + * May be directly invoked by applications. + */ + asn_TYPE_operation_t *op; + + /*********************************************************************** + * Internally useful members. Not to be used by applications directly. * + **********************************************************************/ + + /* + * Tags that are expected to occur. + */ + const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ + unsigned tags_count; /* Number of tags which are expected */ + const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ + unsigned all_tags_count; /* Number of tags */ + + /* OER, PER, and general constraints */ + asn_encoding_constraints_t encoding_constraints; + + /* + * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). + */ + struct asn_TYPE_member_s *elements; + unsigned elements_count; + + /* + * Additional information describing the type, used by appropriate + * functions above. + */ + const void *specifics; +} asn_TYPE_descriptor_t; + +/* + * This type describes an element of the constructed type, + * i.e. SEQUENCE, SET, CHOICE, etc. + */ + enum asn_TYPE_flags_e { + ATF_NOFLAGS, + ATF_POINTER = 0x01, /* Represented by the pointer */ + ATF_OPEN_TYPE = 0x02, /* Open Type */ + ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ + }; +typedef struct asn_TYPE_member_s { + enum asn_TYPE_flags_e flags; /* Element's presentation flags */ + unsigned optional; /* Following optional members, including current */ + unsigned memb_offset; /* Offset of the element */ + ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ + int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ + asn_TYPE_descriptor_t *type; /* Member type descriptor */ + asn_type_selector_f *type_selector; /* IoS runtime type selector */ + asn_encoding_constraints_t encoding_constraints; + int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ + int (*default_value_set)(void **sptr); /* Set DEFAULT */ + const char *name; /* ASN.1 identifier of the element */ +} asn_TYPE_member_t; + +/* + * BER tag to element number mapping. + */ +typedef struct asn_TYPE_tag2member_s { + ber_tlv_tag_t el_tag; /* Outmost tag of the member */ + unsigned el_no; /* Index of the associated member, base 0 */ + int toff_first; /* First occurrence of the el_tag, relative */ + int toff_last; /* Last occurrence of the el_tag, relative */ +} asn_TYPE_tag2member_t; + +/* + * This function prints out the contents of the target language's structure + * (struct_ptr) into the file pointer (stream) in human readable form. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem dumping the structure. + * (See also xer_fprint() in xer_encoder.h) + */ +int asn_fprint(FILE *stream, /* Destination stream descriptor */ + const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ + const void *struct_ptr); /* Structure to be printed */ + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_TYPE_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/constraints.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/constraints.h new file mode 100644 index 000000000..0c093fa82 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/constraints.h @@ -0,0 +1,63 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN1_CONSTRAINTS_VALIDATOR_H +#define ASN1_CONSTRAINTS_VALIDATOR_H + +#include /* Platform-dependent types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Validate the structure according to the ASN.1 constraints. + * If errbuf and errlen are given, they shall be pointing to the appropriate + * buffer space and its length before calling this function. Alternatively, + * they could be passed as NULL's. If constraints validation fails, + * errlen will contain the actual number of bytes taken from the errbuf + * to encode an error message (properly 0-terminated). + * + * RETURN VALUES: + * This function returns 0 in case all ASN.1 constraints are met + * and -1 if one or more constraints were failed. + */ +int asn_check_constraints( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Target language's structure */ + char *errbuf, /* Returned error description */ + size_t *errlen /* Length of the error description */ +); + + +/* + * Generic type for constraint checking callback, + * associated with every type descriptor. + */ +typedef int(asn_constr_check_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, + asn_app_constraint_failed_f *optional_callback, /* Log the error */ + void *optional_app_key /* Opaque key passed to a callback */ +); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ +asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ + +/* + * Invoke the callback with a complete error message. + */ +#define ASN__CTFAIL if(ctfailcb) ctfailcb + +#ifdef __cplusplus +} +#endif + +#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/der_encoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/der_encoder.h new file mode 100644 index 000000000..e93944edc --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/der_encoder.h @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _DER_ENCODER_H_ +#define _DER_ENCODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * The DER encoder of any type. May be invoked by the application. + * Produces DER- and BER-compliant encoding. (DER is a subset of BER). + * + * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data + * produced by der_encode(). + */ +asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* A variant of der_encode() which encodes data into the pre-allocated buffer */ +asn_enc_rval_t der_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (maximum) */ +); + +/* + * Type of the generic DER encoder. + */ +typedef asn_enc_rval_t(der_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ + ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +/* + * Write out leading TL[v] sequence according to the type definition. + */ +ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor, + size_t struct_length, + int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ + int last_tag_form, /* {0,!0}: prim, constructed */ + ber_tlv_tag_t tag, + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key); + +#ifdef __cplusplus +} +#endif + +#endif /* _DER_ENCODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/jer_encoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/jer_encoder.h new file mode 100644 index 000000000..672976d26 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/jer_encoder.h @@ -0,0 +1,86 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _JER_ENCODER_H_ +#define _JER_ENCODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* Flags used by the jer_encode() and (*jer_type_encoder_f), defined below + * + * This isn't actually used, it might be used in the future to support + * both normal JSON and prettified JSON output or removed. + * It came from XER + */ +enum jer_encoder_flags_e { + /* Mode of encoding */ + JER_F = 0x01, /* JER (pretty-printing) */ +}; + +/* + * The JER encoder of any type. May be invoked by the application. + * Produces JER output. + */ +asn_enc_rval_t jer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* + * The variant of the above function which dumps the JER + * output into the chosen file pointer. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem printing the structure. + * WARNING: No sensible errno value is returned. + */ +int jer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, + const void *struct_ptr); + +/* + * A helper function that uses JER encoding/decoding to verify that: + * - Both structures encode into the same JER. + * - Both resulting JER byte streams can be decoded back. + * - Both decoded structures encode into the same JER (round-trip). + * All of this verifies equivalence between structures and a round-trip. + * ARGUMENTS: + * (opt_debug_stream) - If specified, prints ongoing details. + */ +enum jer_equivalence_e { + JEQ_SUCCESS, /* The only completely positive return value */ + JEQ_FAILURE, /* General failure */ + JEQ_ENCODE1_FAILED, /* First structure JER encoding failed */ + JEQ_ENCODE2_FAILED, /* Second structure JER encoding failed */ + JEQ_DIFFERENT, /* Structures encoded into different JER */ + JEQ_DECODE_FAILED, /* Decode of the JER data failed */ + JEQ_ROUND_TRIP_FAILED /* Bad round-trip */ +}; +enum jer_equivalence_e jer_equivalent( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, + const void *struct2, FILE *opt_debug_stream); + +/* + * Type of the generic JER encoder. + */ +typedef asn_enc_rval_t(jer_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + int ilevel, /* Level of indentation */ + enum jer_encoder_flags_e jer_flags, + asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _JER_ENCODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/oer_decoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/oer_decoder.h new file mode 100644 index 000000000..40992e948 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/oer_decoder.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef OER_DECODER_H +#define OER_DECODER_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_codec_ctx_s; /* Forward declaration */ + +/* + * The Octet Encoding Rules (OER, X.696 08/2015) decoder for any given type. + * This function may be invoked directly by the application. + * Parses CANONICAL-OER and BASIC-OER. + */ +asn_dec_rval_t oer_decode(const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ + ); + +/* + * Type of generic function which decodes the byte stream into the structure. + */ +typedef asn_dec_rval_t(oer_type_decoder_f)( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_oer_constraints_t *constraints, + void **struct_ptr, + const void *buf_ptr, + size_t size); + +/* + * Swallow the Open Type (X.696 (08/2015), #30) into /dev/null. + * RETURN VALUES: + * -1: Fatal error deciphering length. + * 0: More data expected than bufptr contains. + * >0: Number of bytes used from bufptr. + */ +ssize_t oer_open_type_skip(const void *bufptr, size_t size); + +/* + * Read the Open Type (X.696 (08/2015), #30). + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + */ +ssize_t oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *td, + const asn_oer_constraints_t *constraints, + void **struct_ptr, const void *bufptr, size_t size); + +/* + * Length-prefixed buffer decoding for primitive types. + */ +oer_type_decoder_f oer_decode_primitive; + + +#ifdef __cplusplus +} +#endif + +#endif /* OER_DECODER_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/oer_encoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/oer_encoder.h new file mode 100644 index 000000000..6a7b68125 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/oer_encoder.h @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef OER_ENCODER_H +#define OER_ENCODER_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * The Octet Encoding Rules (OER, X.696 08/2015) encoder for any type. + * This function may be invoked directly by the application. + * Produces CANONICAL-OER output compatible with CANONICAL-OER + * and BASIC-OER decoders. + */ +asn_enc_rval_t oer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* A variant of oer_encode() which encodes data into the pre-allocated buffer */ +asn_enc_rval_t oer_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_oer_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (maximum) */ +); + +/* + * Type of the generic OER encoder. + */ +typedef asn_enc_rval_t(oer_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_oer_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + +/* + * Write out the Open Type (X.696 (08/2015), #30). + * RETURN VALUES: + * -1: Fatal error encoding the type. + * >0: Number of bytes serialized. + */ +ssize_t oer_open_type_put(const struct asn_TYPE_descriptor_s *td, + const asn_oer_constraints_t *constraints, + const void *struct_ptr, + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key); + + +/* + * Length-prefixed buffer encoding for primitive types. + */ +oer_type_encoder_f oer_encode_primitive; + +#ifdef __cplusplus +} +#endif + +#endif /* OER_ENCODER_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/oer_support.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/oer_support.h new file mode 100644 index 000000000..dbc9b5fcf --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/oer_support.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef OER_SUPPORT_H +#define OER_SUPPORT_H + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Pre-computed OER constraints. + */ +typedef struct asn_oer_constraint_number_s { + unsigned width; /* ±8,4,2,1 fixed bytes */ + unsigned positive; /* 1 for unsigned number, 0 for signed */ +} asn_oer_constraint_number_t; +typedef struct asn_oer_constraints_s { + asn_oer_constraint_number_t value; + ssize_t size; /* -1 (no constraint) or >= 0 */ +} asn_oer_constraints_t; + + +/* + * Fetch the length determinant (X.696 (08/2015), #8.6) into *len_r. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + */ +ssize_t oer_fetch_length(const void *bufptr, size_t size, size_t *len_r); + +/* + * Serialize OER length. Returns the number of bytes serialized + * or -1 if a given callback returned with negative result. + */ +ssize_t oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, void *app_key); + + +#ifdef __cplusplus +} +#endif + +#endif /* OER_SUPPORT_H */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/per_decoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/per_decoder.h new file mode 100644 index 000000000..3cc0c6bf7 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/per_decoder.h @@ -0,0 +1,30 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_DECODER_H_ +#define _PER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Type of the type-specific PER decoder function. + */ +typedef asn_dec_rval_t(per_type_decoder_f)( + const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, void **struct_ptr, + asn_per_data_t *per_data); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_DECODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/per_encoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/per_encoder.h new file mode 100644 index 000000000..8bb077170 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/per_encoder.h @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_ENCODER_H_ +#define _PER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Type of the generic PER encoder function. + */ +typedef asn_enc_rval_t(per_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +int ignore_output(const void *data, size_t size, void *app_key); + +typedef struct enc_dyn_arg { + void *buffer; + size_t length; + size_t allocated; +} enc_dyn_arg; +int encode_dyn_cb(const void *buffer, size_t size, void *key); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_ENCODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/per_opentype.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/per_opentype.h new file mode 100644 index 000000000..fc3785566 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/per_opentype.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_OPENTYPE_H_ +#define _PER_OPENTYPE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t uper_sot_suck( + const asn_codec_ctx_t *, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_OPENTYPE_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/per_support.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/per_support.h new file mode 100644 index 000000000..b3056a21a --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/per_support.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_SUPPORT_H_ +#define _PER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Pre-computed PER constraints. + */ +typedef struct asn_per_constraint_s { + enum asn_per_constraint_flags { + APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ + APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ + APC_CONSTRAINED = 0x2, /* Fully constrained */ + APC_EXTENSIBLE = 0x4 /* May have extension */ + } flags; + int range_bits; /* Full number of bits in the range */ + int effective_bits; /* Effective bits */ + intmax_t lower_bound; /* "lb" value */ + intmax_t upper_bound; /* "ub" value */ +} asn_per_constraint_t; +typedef struct asn_per_constraints_s { + asn_per_constraint_t value; + asn_per_constraint_t size; + int (*value2code)(unsigned int value); + int (*code2value)(unsigned int code); +} asn_per_constraints_t; + +/* Temporary compatibility layer. Will get removed. */ +typedef struct asn_bit_data_s asn_per_data_t; +#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) +#define per_get_undo(data, bits) asn_get_undo(data, bits) +#define per_get_many_bits(data, dst, align, bits) \ + asn_get_many_bits(data, dst, align, bits) + +/* Temporary compatibility layer. Will get removed. */ +typedef struct asn_bit_outp_s asn_per_outp_t; +#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) +#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) +#define per_put_aligned_flush(out) asn_put_aligned_flush(out) + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_SUPPORT_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_decoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_decoder.h new file mode 100644 index 000000000..ded851565 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_decoder.h @@ -0,0 +1,47 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_DECODER_H_ +#define _UPER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. + * On success, this call always returns (.consumed >= 1), as per #11.1.3. + */ +asn_dec_rval_t uper_decode_complete( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ +); + +/* + * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. + * WARNING: This call returns the number of BITS read from the stream. Beware. + */ +asn_dec_rval_t uper_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size, /* Size of the input data buffer, in bytes */ + int skip_bits, /* Number of unused leading bits, 0..7 */ + int unused_bits /* Number of unused tailing bits, 0..7 */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_DECODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_encoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_encoder.h new file mode 100644 index 000000000..8f73980c3 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_encoder.h @@ -0,0 +1,62 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_ENCODER_H_ +#define _UPER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. Use the following formula to convert to bytes: + * bytes = ((.encoded + 7) / 8) + */ +asn_enc_rval_t uper_encode( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ + void *app_key /* Arbitrary callback argument */ +); + +/* + * A variant of uper_encode() which encodes data into the existing buffer + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. + */ +asn_enc_rval_t uper_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (max) */ +); + +/* + * A variant of uper_encode_to_buffer() which allocates buffer itself. + * Returns the number of bytes in the buffer or -1 in case of failure. + * WARNING: This function produces a "Production of the complete encoding", + * with length of at least one octet. Contrast this to precise bit-packing + * encoding of uper_encode() and uper_encode_to_buffer(). + */ +ssize_t uper_encode_to_new_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void **buffer_r /* Buffer allocated and returned */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_ENCODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_opentype.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_opentype.h new file mode 100644 index 000000000..3a248225f --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_opentype.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_OPENTYPE_H_ +#define _UPER_OPENTYPE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + +int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, + asn_per_data_t *pd); + +/* + * X.691 (2015/08), #11.2 + * Returns -1 if error is encountered. 0 if all OK. + */ +int uper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_OPENTYPE_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_support.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_support.h new file mode 100644 index 000000000..6c9d4ea74 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/uper_support.h @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_SUPPORT_H_ +#define _UPER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Get the length "n" from the Unaligned PER stream. + */ +ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, + size_t lower_bound, int *repeat); + +/* + * Get the normally small length "n". + */ +ssize_t uper_get_nslength(asn_per_data_t *pd); + +/* + * Get the normally small non-negative whole number. + */ +ssize_t uper_get_nsnnwn(asn_per_data_t *pd); + +/* X.691-2008/11, #11.5.6 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, uintmax_t *v, int nbits); + +/* + * Rebase the given value as an offset into the range specified by the + * lower bound (lb) and upper bound (ub). + * RETURN VALUES: + * -1: Conversion failed due to range problems. + * 0: Conversion was successful. + */ +int per_long_range_rebase(long, intmax_t lb, intmax_t ub, unsigned long *output); +int per_imax_range_rebase(intmax_t v, intmax_t lb, intmax_t ub, uintmax_t *output); +/* The inverse operation: restores the value by the offset and its bounds. */ +int per_long_range_unrebase(unsigned long inp, intmax_t lb, intmax_t ub, long *outp); +int per_imax_range_unrebase(uintmax_t inp, intmax_t lb, intmax_t ub, intmax_t *outp); + +/* X.691-2008/11, #11.5 */ +int uper_put_constrained_whole_number_u(asn_per_outp_t *po, uintmax_t v, int nbits); + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "whole_length" to the Unaligned PER stream. + * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. + * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. + * This function returns the number of units which may be flushed + * in the next units saving iteration. + */ +ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, + int *opt_need_eom); + +/* + * Put the normally small length "n" to the Unaligned PER stream. + * Returns 0 or -1. + */ +int uper_put_nslength(asn_per_outp_t *po, size_t length); + +/* + * Put the normally small non-negative whole number. + */ +int uper_put_nsnnwn(asn_per_outp_t *po, int n); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_SUPPORT_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/xer_decoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/xer_decoder.h new file mode 100644 index 000000000..b951c41d1 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/xer_decoder.h @@ -0,0 +1,106 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_DECODER_H_ +#define _XER_DECODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * The XER decoder of any ASN.1 type. May be invoked by the application. + * Decodes CANONICAL-XER and BASIC-XER. + */ +asn_dec_rval_t xer_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ +); + +/* + * Type of the type-specific XER decoder function. + */ +typedef asn_dec_rval_t(xer_type_decoder_f)( + const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, + const char *opt_mname, /* Member name */ + const void *buf_ptr, size_t size); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +/* + * Generalized function for decoding the primitive values. + * Used by more specialized functions, such as OCTET_STRING_decode_xer_utf8 + * and others. This function should not be used by applications, as its API + * is subject to changes. + */ +asn_dec_rval_t xer_decode_general( + const asn_codec_ctx_t *opt_codec_ctx, + asn_struct_ctx_t *ctx, /* Type decoder context */ + void *struct_key, /* Treated as opaque pointer */ + const char *xml_tag, /* Expected XML tag name */ + const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder)(void *struct_key, const void *chunk_buf, + size_t chunk_size), + ssize_t (*body_receiver)(void *struct_key, const void *chunk_buf, + size_t chunk_size, int have_more)); + + +/* + * Fetch the next XER (XML) token from the stream. + * The function returns the number of bytes occupied by the chunk type, + * returned in the _ch_type. The _ch_type is only set (and valid) when + * the return value is >= 0. + */ + typedef enum pxer_chunk_type { + PXER_WMORE, /* Chunk type is not clear, more data expected. */ + PXER_TAG, /* Complete XER tag */ + PXER_TEXT, /* Plain text between XER tags */ + PXER_COMMENT /* A comment, may be part of */ + } pxer_chunk_type_e; +ssize_t xer_next_token(int *stateContext, + const void *buffer, size_t size, pxer_chunk_type_e *_ch_type); + +/* + * This function checks the buffer against the tag name is expected to occur. + */ + typedef enum xer_check_tag { + XCT_BROKEN = 0, /* The tag is broken */ + XCT_OPENING = 1, /* This is the tag */ + XCT_CLOSING = 2, /* This is the tag */ + XCT_BOTH = 3, /* This is the tag */ + XCT__UNK__MASK = 4, /* Mask of everything unexpected */ + XCT_UNKNOWN_OP = 5, /* Unexpected tag */ + XCT_UNKNOWN_CL = 6, /* Unexpected tag */ + XCT_UNKNOWN_BO = 7 /* Unexpected tag */ + } xer_check_tag_e; +xer_check_tag_e xer_check_tag(const void *buf_ptr, int size, + const char *need_tag); + +/* + * Get the number of bytes consisting entirely of XER whitespace characters. + * RETURN VALUES: + * >=0: Number of whitespace characters in the string. + */ +size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size); + +/* + * Skip the series of anticipated extensions. + */ +int xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_DECODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/xer_encoder.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/xer_encoder.h new file mode 100644 index 000000000..6cfc505fa --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/xer_encoder.h @@ -0,0 +1,83 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_ENCODER_H_ +#define _XER_ENCODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ +enum xer_encoder_flags_e { + /* Mode of encoding */ + XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ + XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ +}; + +/* + * The XER encoder of any type. May be invoked by the application. + * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). + */ +asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + enum xer_encoder_flags_e xer_flags, + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* + * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) + * output into the chosen file pointer. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem printing the structure. + * WARNING: No sensible errno value is returned. + */ +int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, + const void *struct_ptr); + +/* + * A helper function that uses XER encoding/decoding to verify that: + * - Both structures encode into the same BASIC XER. + * - Both resulting XER byte streams can be decoded back. + * - Both decoded structures encode into the same BASIC XER (round-trip). + * All of this verifies equivalence between structures and a round-trip. + * ARGUMENTS: + * (opt_debug_stream) - If specified, prints ongoing details. + */ +enum xer_equivalence_e { + XEQ_SUCCESS, /* The only completely positive return value */ + XEQ_FAILURE, /* General failure */ + XEQ_ENCODE1_FAILED, /* First structure XER encoding failed */ + XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ + XEQ_DIFFERENT, /* Structures encoded into different XER */ + XEQ_DECODE_FAILED, /* Decode of the XER data failed */ + XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ +}; +enum xer_equivalence_e xer_equivalent( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, + const void *struct2, FILE *opt_debug_stream); + +/* + * Type of the generic XER encoder. + */ +typedef asn_enc_rval_t(xer_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + int ilevel, /* Level of indentation */ + enum xer_encoder_flags_e xer_flags, + asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_ENCODER_H_ */ diff --git a/src/tmx/Asn_J2735/include/asn_j2735_2020/xer_support.h b/src/tmx/Asn_J2735/include/asn_j2735_2020/xer_support.h new file mode 100644 index 000000000..2c3f369b8 --- /dev/null +++ b/src/tmx/Asn_J2735/include/asn_j2735_2020/xer_support.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_SUPPORT_H_ +#define _XER_SUPPORT_H_ + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Types of data transferred to the application. + */ +typedef enum { + PXML_TEXT, /* Plain text between XML tags. */ + PXML_TAG, /* A tag, starting with '<'. */ + PXML_COMMENT, /* An XML comment, including "". */ + /* + * The following chunk types are reported if the chunk + * terminates the specified XML element. + */ + PXML_TAG_END, /* Tag ended */ + PXML_COMMENT_END /* Comment ended */ +} pxml_chunk_type_e; + +/* + * Callback function that is called by the parser when parsed data is + * available. The _opaque is the pointer to a field containing opaque user + * data specified in pxml_create() call. The chunk type is _type and the text + * data is the piece of buffer identified by _bufid (as supplied to + * pxml_feed() call) starting at offset _offset and of _size bytes size. + * The chunk is NOT '\0'-terminated. + */ +typedef int (pxml_callback_f)(pxml_chunk_type_e _type, + const void *_chunk_data, size_t _chunk_size, void *_key); + +/* + * Parse the given buffer as it were a chunk of XML data. + * Invoke the specified callback each time the meaningful data is found. + * This function returns number of bytes consumed from the buffer. + * It will always be lesser than or equal to the specified _size. + * The next invocation of this function must account the difference. + */ +ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, + pxml_callback_f *cb, void *_key); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_SUPPORT_H_ */ diff --git a/src/tmx/Asn_J2735/src/2020/ANY.c b/src/tmx/Asn_J2735/src/2020/ANY.c new file mode 100644 index 000000000..bf988dbda --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ANY.c @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { + sizeof(ANY_t), + offsetof(ANY_t, _asn_ctx), + ASN_OSUBV_ANY +}; +asn_TYPE_operation_t asn_OP_ANY = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_hex, + ANY_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + ANY_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, + 0, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + ANY_decode_uper, + ANY_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + ANY_decode_aper, + ANY_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + 0, /* Random fill is not defined for ANY type */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ANY = { + "ANY", + "ANY", + &asn_OP_ANY, + 0, 0, 0, 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, /* No constraints */ + 0, 0, /* No members */ + &asn_SPC_ANY_specs, +}; diff --git a/src/tmx/Asn_J2735/src/2020/ANY_aper.c b/src/tmx/Asn_J2735/src/2020/ANY_aper.c new file mode 100644 index 000000000..91d727769 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ANY_aper.c @@ -0,0 +1,190 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +int +ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { + uint8_t *buffer = NULL; + ssize_t erval; + + if(!st || !td) { + errno = EINVAL; + return -1; + } + + if(!sptr) { + if(st->buf) FREEMEM(st->buf); + st->size = 0; + return 0; + } + + erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); + + if(erval == -1) { + if(buffer) FREEMEM(buffer); + return -1; + } + assert((size_t)erval > 0); + + if(st->buf) FREEMEM(st->buf); + st->buf = buffer; + st->size = erval; + + return 0; +} + +ANY_t * +ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { + ANY_t tmp; + ANY_t *st; + + if(!td || !sptr) { + errno = EINVAL; + return 0; + } + + memset(&tmp, 0, sizeof(tmp)); + + if(ANY_fromType_aper(&tmp, td, sptr)) return 0; + + st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); + if(st) { + *st = tmp; + return st; + } else { + FREEMEM(tmp.buf); + return 0; + } +} + +int +ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { + asn_dec_rval_t rval; + void *newst = 0; + + if(!st || !td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + if(st->buf == 0) { + /* Nothing to convert, make it empty. */ + *struct_ptr = (void *)0; + return 0; + } + + rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); + if(rval.code == RC_OK) { + *struct_ptr = newst; + return 0; + } else { + /* Remove possibly partially decoded data. */ + ASN_STRUCT_FREE(*td, newst); + return -1; + } +} + +asn_dec_rval_t +ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_ANY_specs; + size_t consumed_myself = 0; + int repeat; + ANY_t *st = (ANY_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + + /* + * Allocate the structure. + */ + if(!st) { + st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("APER Decoding ANY type"); + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = aper_get_length(pd, -1, -1, 0, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len; + len_bits = len_bytes * 8; + + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += len_bits; + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + RETURN(RC_OK); +} + +asn_enc_rval_t +ANY_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const ANY_t *st = (const ANY_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + const uint8_t *buf; + size_t size; + int ret; + + (void)constraints; + + if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; + + buf = st->buf; + size = st->size; + do { + int need_eom = 0; + ssize_t may_save = aper_put_length(po, -1, -1, size, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ret = per_put_many_bits(po, buf, may_save * 8); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save; + size -= may_save; + assert(!(may_save & 0x07) || !size); + if(need_eom && aper_put_length(po, -1, -1, 0, NULL)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size); + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/ANY_ber.c b/src/tmx/Asn_J2735/src/2020/ANY_ber.c new file mode 100644 index 000000000..2ebe45bd7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ANY_ber.c @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +struct _callback_arg { + uint8_t *buffer; + size_t offset; + size_t size; +}; + +static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { + struct _callback_arg *arg = (struct _callback_arg *)key; + + if((arg->offset + size) >= arg->size) { + size_t nsize = (arg->size ? arg->size << 2 : 16) + size; + void *p = REALLOC(arg->buffer, nsize); + if(!p) return -1; + arg->buffer = (uint8_t *)p; + arg->size = nsize; + } + + memcpy(arg->buffer + arg->offset, buffer, size); + arg->offset += size; + assert(arg->offset < arg->size); + + return 0; +} + +int +ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { + struct _callback_arg arg; + asn_enc_rval_t erval = {0,0,0}; + + if(!st || !td) { + errno = EINVAL; + return -1; + } + + if(!sptr) { + if(st->buf) FREEMEM(st->buf); + st->size = 0; + return 0; + } + + arg.offset = arg.size = 0; + arg.buffer = 0; + + erval = der_encode(td, sptr, ANY__consume_bytes, &arg); + if(erval.encoded == -1) { + if(arg.buffer) FREEMEM(arg.buffer); + return -1; + } + assert((size_t)erval.encoded == arg.offset); + + if(st->buf) FREEMEM(st->buf); + st->buf = arg.buffer; + st->size = arg.offset; + + return 0; +} + +ANY_t * +ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { + ANY_t tmp; + ANY_t *st; + + if(!td || !sptr) { + errno = EINVAL; + return 0; + } + + memset(&tmp, 0, sizeof(tmp)); + + if(ANY_fromType(&tmp, td, sptr)) return 0; + + st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); + if(st) { + *st = tmp; + return st; + } else { + FREEMEM(tmp.buf); + return 0; + } +} + +int +ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { + asn_dec_rval_t rval; + void *newst = 0; + + if(!st || !td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + if(st->buf == 0) { + /* Nothing to convert, make it empty. */ + *struct_ptr = (void *)0; + return 0; + } + + rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); + if(rval.code == RC_OK) { + *struct_ptr = newst; + return 0; + } else { + /* Remove possibly partially decoded data. */ + ASN_STRUCT_FREE(*td, newst); + return -1; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/ANY_jer.c b/src/tmx/Asn_J2735/src/2020/ANY_jer.c new file mode 100644 index 000000000..a86db9c73 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ANY_jer.c @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +ANY_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + ASN__ENCODE_FAILED; + + /* Dump as binary */ + return OCTET_STRING_encode_jer(td, sptr, ilevel, flags, cb, app_key); +} diff --git a/src/tmx/Asn_J2735/src/2020/ANY_uper.c b/src/tmx/Asn_J2735/src/2020/ANY_uper.c new file mode 100644 index 000000000..65f1519bb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ANY_uper.c @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +asn_dec_rval_t +ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_ANY_specs; + size_t consumed_myself = 0; + int repeat; + ANY_t *st = (ANY_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + + /* + * Allocate the structure. + */ + if(!st) { + st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("UPER Decoding ANY type"); + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, -1, 0, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len; + len_bits = len_bytes * 8; + + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += len_bits; + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + RETURN(RC_OK); +} + +asn_enc_rval_t +ANY_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const ANY_t *st = (const ANY_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + const uint8_t *buf; + size_t size; + int ret; + + (void)constraints; + + if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; + + buf = st->buf; + size = st->size; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ret = per_put_many_bits(po, buf, may_save * 8); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save; + size -= may_save; + assert(!(may_save & 0x07) || !size); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size); + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/ANY_xer.c b/src/tmx/Asn_J2735/src/2020/ANY_xer.c new file mode 100644 index 000000000..112c21328 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ANY_xer.c @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + if(flags & XER_F_CANONICAL) { + /* + * Canonical XER-encoding of ANY type is not supported. + */ + ASN__ENCODE_FAILED; + } + + /* Dump as binary */ + return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); +} diff --git a/src/tmx/Asn_J2735/src/2020/AccelSteerYawRateConfidence.c b/src/tmx/Asn_J2735/src/2020/AccelSteerYawRateConfidence.c new file mode 100644 index 000000000..69b76148d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AccelSteerYawRateConfidence.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AccelSteerYawRateConfidence.h" + +asn_TYPE_member_t asn_MBR_AccelSteerYawRateConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AccelSteerYawRateConfidence, yawRate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yawRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct AccelSteerYawRateConfidence, acceleration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "acceleration" + }, + { ATF_NOFLAGS, 0, offsetof(struct AccelSteerYawRateConfidence, steeringWheelAngle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "steeringWheelAngle" + }, +}; +static const ber_tlv_tag_t asn_DEF_AccelSteerYawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AccelSteerYawRateConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* acceleration */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* steeringWheelAngle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AccelSteerYawRateConfidence_specs_1 = { + sizeof(struct AccelSteerYawRateConfidence), + offsetof(struct AccelSteerYawRateConfidence, _asn_ctx), + asn_MAP_AccelSteerYawRateConfidence_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AccelSteerYawRateConfidence = { + "AccelSteerYawRateConfidence", + "AccelSteerYawRateConfidence", + &asn_OP_SEQUENCE, + asn_DEF_AccelSteerYawRateConfidence_tags_1, + sizeof(asn_DEF_AccelSteerYawRateConfidence_tags_1) + /sizeof(asn_DEF_AccelSteerYawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelSteerYawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelSteerYawRateConfidence_tags_1) + /sizeof(asn_DEF_AccelSteerYawRateConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_AccelSteerYawRateConfidence_1, + 3, /* Elements count */ + &asn_SPC_AccelSteerYawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Acceleration.c b/src/tmx/Asn_J2735/src/2020/Acceleration.c new file mode 100644 index 000000000..4e8c53b8c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Acceleration.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Acceleration.h" + +int +Acceleration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2000L && value <= 2001L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Acceleration_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2000..2001) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Acceleration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2000, 2001 } /* (-2000..2001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Acceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Acceleration = { + "Acceleration", + "Acceleration", + &asn_OP_NativeInteger, + asn_DEF_Acceleration_tags_1, + sizeof(asn_DEF_Acceleration_tags_1) + /sizeof(asn_DEF_Acceleration_tags_1[0]), /* 1 */ + asn_DEF_Acceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_Acceleration_tags_1) + /sizeof(asn_DEF_Acceleration_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Acceleration_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Acceleration_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Acceleration_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AccelerationConfidence.c b/src/tmx/Asn_J2735/src/2020/AccelerationConfidence.c new file mode 100644 index 000000000..44927873c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AccelerationConfidence.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AccelerationConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_AccelerationConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "accl-100-00" }, + { 2, 11, "accl-010-00" }, + { 3, 11, "accl-005-00" }, + { 4, 11, "accl-001-00" }, + { 5, 11, "accl-000-10" }, + { 6, 11, "accl-000-05" }, + { 7, 11, "accl-000-01" } +}; +static const unsigned int asn_MAP_AccelerationConfidence_enum2value_1[] = { + 7, /* accl-000-01(7) */ + 6, /* accl-000-05(6) */ + 5, /* accl-000-10(5) */ + 4, /* accl-001-00(4) */ + 3, /* accl-005-00(3) */ + 2, /* accl-010-00(2) */ + 1, /* accl-100-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AccelerationConfidence_specs_1 = { + asn_MAP_AccelerationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AccelerationConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AccelerationConfidence_tags_1, + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AccelerationConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AccelerationConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AccelerationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AccelerationSet4Way.c b/src/tmx/Asn_J2735/src/2020/AccelerationSet4Way.c new file mode 100644 index 000000000..ccf109f19 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AccelerationSet4Way.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AccelerationSet4Way.h" + +asn_TYPE_member_t asn_MBR_AccelerationSet4Way_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AccelerationSet4Way, Long), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Acceleration, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct AccelerationSet4Way, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Acceleration, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct AccelerationSet4Way, vert), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAcceleration, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vert" + }, + { ATF_NOFLAGS, 0, offsetof(struct AccelerationSet4Way, yaw), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yaw" + }, +}; +static const ber_tlv_tag_t asn_DEF_AccelerationSet4Way_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AccelerationSet4Way_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* vert */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* yaw */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AccelerationSet4Way_specs_1 = { + sizeof(struct AccelerationSet4Way), + offsetof(struct AccelerationSet4Way, _asn_ctx), + asn_MAP_AccelerationSet4Way_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AccelerationSet4Way = { + "AccelerationSet4Way", + "AccelerationSet4Way", + &asn_OP_SEQUENCE, + asn_DEF_AccelerationSet4Way_tags_1, + sizeof(asn_DEF_AccelerationSet4Way_tags_1) + /sizeof(asn_DEF_AccelerationSet4Way_tags_1[0]), /* 1 */ + asn_DEF_AccelerationSet4Way_tags_1, /* Same as above */ + sizeof(asn_DEF_AccelerationSet4Way_tags_1) + /sizeof(asn_DEF_AccelerationSet4Way_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_AccelerationSet4Way_1, + 4, /* Elements count */ + &asn_SPC_AccelerationSet4Way_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AddGrpB_Angle.c b/src/tmx/Asn_J2735/src/2020/AddGrpB_Angle.c new file mode 100644 index 000000000..188389be9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AddGrpB_Angle.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AddGrpB_Angle.h" + +int +AddGrpB_Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 239L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AddGrpB_Angle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..239) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_AddGrpB_Angle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 239 } /* (0..239) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AddGrpB_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AddGrpB_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_AddGrpB_Angle_tags_1, + sizeof(asn_DEF_AddGrpB_Angle_tags_1) + /sizeof(asn_DEF_AddGrpB_Angle_tags_1[0]), /* 1 */ + asn_DEF_AddGrpB_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_AddGrpB_Angle_tags_1) + /sizeof(asn_DEF_AddGrpB_Angle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AddGrpB_Angle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AddGrpB_Angle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AddGrpB_Angle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AddGrpB_Elevation.c b/src/tmx/Asn_J2735/src/2020/AddGrpB_Elevation.c new file mode 100644 index 000000000..390ada0e0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AddGrpB_Elevation.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AddGrpB_Elevation.h" + +int +AddGrpB_Elevation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AddGrpB_Elevation_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AddGrpB_Elevation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AddGrpB_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AddGrpB_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_AddGrpB_Elevation_tags_1, + sizeof(asn_DEF_AddGrpB_Elevation_tags_1) + /sizeof(asn_DEF_AddGrpB_Elevation_tags_1[0]), /* 1 */ + asn_DEF_AddGrpB_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_AddGrpB_Elevation_tags_1) + /sizeof(asn_DEF_AddGrpB_Elevation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AddGrpB_Elevation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AddGrpB_Elevation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AddGrpB_Elevation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AddGrpB_MsgCount.c b/src/tmx/Asn_J2735/src/2020/AddGrpB_MsgCount.c new file mode 100644 index 000000000..ad3b26c85 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AddGrpB_MsgCount.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AddGrpB_MsgCount.h" + +int +AddGrpB_MsgCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AddGrpB_MsgCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_AddGrpB_MsgCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AddGrpB_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AddGrpB_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_AddGrpB_MsgCount_tags_1, + sizeof(asn_DEF_AddGrpB_MsgCount_tags_1) + /sizeof(asn_DEF_AddGrpB_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_AddGrpB_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_AddGrpB_MsgCount_tags_1) + /sizeof(asn_DEF_AddGrpB_MsgCount_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AddGrpB_MsgCount_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AddGrpB_MsgCount_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AddGrpB_MsgCount_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AddGrpB_TimeMark.c b/src/tmx/Asn_J2735/src/2020/AddGrpB_TimeMark.c new file mode 100644 index 000000000..e2c534c04 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AddGrpB_TimeMark.c @@ -0,0 +1,228 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AddGrpB_TimeMark.h" + +static asn_TYPE_member_t asn_MBR_AddGrpB_TimeMark_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AddGrpB_TimeMark, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Year, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "year" + }, + { ATF_NOFLAGS, 0, offsetof(struct AddGrpB_TimeMark, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Month, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "month" + }, + { ATF_NOFLAGS, 0, offsetof(struct AddGrpB_TimeMark, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Day, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "day" + }, + { ATF_NOFLAGS, 0, offsetof(struct AddGrpB_TimeMark, summerTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SummerTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "summerTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct AddGrpB_TimeMark, holiday), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Holiday, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "holiday" + }, + { ATF_NOFLAGS, 0, offsetof(struct AddGrpB_TimeMark, dayofWeek), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DayOfWeek, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dayofWeek" + }, + { ATF_NOFLAGS, 0, offsetof(struct AddGrpB_TimeMark, hour), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Hour, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_NOFLAGS, 0, offsetof(struct AddGrpB_TimeMark, minute), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Minute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_NOFLAGS, 0, offsetof(struct AddGrpB_TimeMark, second), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Second, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_NOFLAGS, 0, offsetof(struct AddGrpB_TimeMark, tenthSecond), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TenthSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "tenthSecond" + }, +}; +static const ber_tlv_tag_t asn_DEF_AddGrpB_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AddGrpB_TimeMark_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* summerTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* holiday */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dayofWeek */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* tenthSecond */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_AddGrpB_TimeMark_specs_1 = { + sizeof(struct AddGrpB_TimeMark), + offsetof(struct AddGrpB_TimeMark, _asn_ctx), + asn_MAP_AddGrpB_TimeMark_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AddGrpB_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_SEQUENCE, + asn_DEF_AddGrpB_TimeMark_tags_1, + sizeof(asn_DEF_AddGrpB_TimeMark_tags_1) + /sizeof(asn_DEF_AddGrpB_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_AddGrpB_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_AddGrpB_TimeMark_tags_1) + /sizeof(asn_DEF_AddGrpB_TimeMark_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_AddGrpB_TimeMark_1, + 10, /* Elements count */ + &asn_SPC_AddGrpB_TimeMark_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AdvisorySpeed.c b/src/tmx/Asn_J2735/src/2020/AdvisorySpeed.c new file mode 100644 index 000000000..75105fe42 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AdvisorySpeed.c @@ -0,0 +1,262 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AdvisorySpeed.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_AdvisorySpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct AdvisorySpeed__regional), + offsetof(struct AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 5, offsetof(struct AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedAdvice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 3, offsetof(struct AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "distance" + }, + { ATF_POINTER, 2, offsetof(struct AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "class" + }, + { ATF_POINTER, 1, offsetof(struct AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AdvisorySpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* class */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1 = { + sizeof(struct AdvisorySpeed), + offsetof(struct AdvisorySpeed, _asn_ctx), + asn_MAP_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_AdvisorySpeed_tags_1, + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AdvisorySpeedList.c b/src/tmx/Asn_J2735/src/2020/AdvisorySpeedList.c new file mode 100644 index 000000000..b9977a459 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AdvisorySpeedList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AdvisorySpeedList.h" + +#include "AdvisorySpeed.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AdvisorySpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1 = { + sizeof(struct AdvisorySpeedList), + offsetof(struct AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AdvisorySpeedList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AdvisorySpeedList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AdvisorySpeedType.c b/src/tmx/Asn_J2735/src/2020/AdvisorySpeedType.c new file mode 100644 index 000000000..e8abc092a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AdvisorySpeedType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AdvisorySpeedType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_AdvisorySpeedType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 9, "greenwave" }, + { 2, 8, "ecoDrive" }, + { 3, 7, "transit" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_AdvisorySpeedType_enum2value_1[] = { + 2, /* ecoDrive(2) */ + 1, /* greenwave(1) */ + 0, /* none(0) */ + 3 /* transit(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1 = { + asn_MAP_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AdvisorySpeedType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AdvisorySpeedType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AdvisorySpeedType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AllowedManeuvers.c b/src/tmx/Asn_J2735/src/2020/AllowedManeuvers.c new file mode 100644 index 000000000..5b743709c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AllowedManeuvers.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AllowedManeuvers.h" + +int +AllowedManeuvers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 12UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_AllowedManeuvers_tags_1, + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AllowedManeuvers_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AllowedManeuvers_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AllowedManeuvers_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Altitude.c b/src/tmx/Asn_J2735/src/2020/Altitude.c new file mode 100644 index 000000000..9b35698b6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Altitude.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Altitude, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Altitude, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AltitudeConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = { + sizeof(struct Altitude), + offsetof(struct Altitude, _asn_ctx), + asn_MAP_Altitude_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Altitude_tags_1, + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Altitude_tags_1) + /sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AltitudeConfidence.c b/src/tmx/Asn_J2735/src/2020/AltitudeConfidence.c new file mode 100644 index 000000000..0c8dc297e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AltitudeConfidence.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = { + { 0, 10, "alt-000-01" }, + { 1, 10, "alt-000-02" }, + { 2, 10, "alt-000-05" }, + { 3, 10, "alt-000-10" }, + { 4, 10, "alt-000-20" }, + { 5, 10, "alt-000-50" }, + { 6, 10, "alt-001-00" }, + { 7, 10, "alt-002-00" }, + { 8, 10, "alt-005-00" }, + { 9, 10, "alt-010-00" }, + { 10, 10, "alt-020-00" }, + { 11, 10, "alt-050-00" }, + { 12, 10, "alt-100-00" }, + { 13, 10, "alt-200-00" }, + { 14, 10, "outOfRange" }, + { 15, 11, "unavailable" } +}; +static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = { + 0, /* alt-000-01(0) */ + 1, /* alt-000-02(1) */ + 2, /* alt-000-05(2) */ + 3, /* alt-000-10(3) */ + 4, /* alt-000-20(4) */ + 5, /* alt-000-50(5) */ + 6, /* alt-001-00(6) */ + 7, /* alt-002-00(7) */ + 8, /* alt-005-00(8) */ + 9, /* alt-010-00(9) */ + 10, /* alt-020-00(10) */ + 11, /* alt-050-00(11) */ + 12, /* alt-100-00(12) */ + 13, /* alt-200-00(13) */ + 14, /* outOfRange(14) */ + 15 /* unavailable(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = { + asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_AltitudeConfidence_tags_1, + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AltitudeConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AltitudeConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AltitudeValue.c b/src/tmx/Asn_J2735/src/2020/AltitudeValue.c new file mode 100644 index 000000000..657dbc0f5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AltitudeValue.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AltitudeValue.h" + +int +AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -100000L && value <= 800001L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-100000..800001) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_AltitudeValue_tags_1, + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_AltitudeValue_tags_1) + /sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AltitudeValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AltitudeValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AltitudeValue_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AmbientAirPressure.c b/src/tmx/Asn_J2735/src/2020/AmbientAirPressure.c new file mode 100644 index 000000000..45270b50b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AmbientAirPressure.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AmbientAirPressure.h" + +int +AmbientAirPressure_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AmbientAirPressure_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AmbientAirPressure_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AmbientAirPressure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AmbientAirPressure = { + "AmbientAirPressure", + "AmbientAirPressure", + &asn_OP_NativeInteger, + asn_DEF_AmbientAirPressure_tags_1, + sizeof(asn_DEF_AmbientAirPressure_tags_1) + /sizeof(asn_DEF_AmbientAirPressure_tags_1[0]), /* 1 */ + asn_DEF_AmbientAirPressure_tags_1, /* Same as above */ + sizeof(asn_DEF_AmbientAirPressure_tags_1) + /sizeof(asn_DEF_AmbientAirPressure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AmbientAirPressure_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AmbientAirPressure_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AmbientAirPressure_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AmbientAirTemperature.c b/src/tmx/Asn_J2735/src/2020/AmbientAirTemperature.c new file mode 100644 index 000000000..9b6cad33b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AmbientAirTemperature.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AmbientAirTemperature.h" + +int +AmbientAirTemperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 191L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AmbientAirTemperature_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..191) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AmbientAirTemperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 191 } /* (0..191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AmbientAirTemperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AmbientAirTemperature = { + "AmbientAirTemperature", + "AmbientAirTemperature", + &asn_OP_NativeInteger, + asn_DEF_AmbientAirTemperature_tags_1, + sizeof(asn_DEF_AmbientAirTemperature_tags_1) + /sizeof(asn_DEF_AmbientAirTemperature_tags_1[0]), /* 1 */ + asn_DEF_AmbientAirTemperature_tags_1, /* Same as above */ + sizeof(asn_DEF_AmbientAirTemperature_tags_1) + /sizeof(asn_DEF_AmbientAirTemperature_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AmbientAirTemperature_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AmbientAirTemperature_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AmbientAirTemperature_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AnimalPropelledType.c b/src/tmx/Asn_J2735/src/2020/AnimalPropelledType.c new file mode 100644 index 000000000..f65d7e018 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AnimalPropelledType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AnimalPropelledType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AnimalPropelledType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AnimalPropelledType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_AnimalPropelledType_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 10, "otherTypes" }, + { 2, 13, "animalMounted" }, + { 3, 19, "animalDrawnCarriage" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_AnimalPropelledType_enum2value_1[] = { + 3, /* animalDrawnCarriage(3) */ + 2, /* animalMounted(2) */ + 1, /* otherTypes(1) */ + 0 /* unavailable(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_AnimalPropelledType_specs_1 = { + asn_MAP_AnimalPropelledType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AnimalPropelledType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AnimalPropelledType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AnimalPropelledType = { + "AnimalPropelledType", + "AnimalPropelledType", + &asn_OP_NativeEnumerated, + asn_DEF_AnimalPropelledType_tags_1, + sizeof(asn_DEF_AnimalPropelledType_tags_1) + /sizeof(asn_DEF_AnimalPropelledType_tags_1[0]), /* 1 */ + asn_DEF_AnimalPropelledType_tags_1, /* Same as above */ + sizeof(asn_DEF_AnimalPropelledType_tags_1) + /sizeof(asn_DEF_AnimalPropelledType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AnimalPropelledType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AnimalPropelledType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AnimalPropelledType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AnimalType.c b/src/tmx/Asn_J2735/src/2020/AnimalType.c new file mode 100644 index 000000000..2ed523a60 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AnimalType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AnimalType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AnimalType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AnimalType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_AnimalType_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 10, "serviceUse" }, + { 2, 3, "pet" }, + { 3, 4, "farm" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_AnimalType_enum2value_1[] = { + 3, /* farm(3) */ + 2, /* pet(2) */ + 1, /* serviceUse(1) */ + 0 /* unavailable(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_AnimalType_specs_1 = { + asn_MAP_AnimalType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AnimalType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AnimalType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AnimalType = { + "AnimalType", + "AnimalType", + &asn_OP_NativeEnumerated, + asn_DEF_AnimalType_tags_1, + sizeof(asn_DEF_AnimalType_tags_1) + /sizeof(asn_DEF_AnimalType_tags_1[0]), /* 1 */ + asn_DEF_AnimalType_tags_1, /* Same as above */ + sizeof(asn_DEF_AnimalType_tags_1) + /sizeof(asn_DEF_AnimalType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AnimalType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AnimalType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AnimalType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AntennaOffsetSet.c b/src/tmx/Asn_J2735/src/2020/AntennaOffsetSet.c new file mode 100644 index 000000000..48771f2cd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AntennaOffsetSet.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "antOffsetX" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B09, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "antOffsetY" + }, + { ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "antOffsetZ" + }, +}; +static const ber_tlv_tag_t asn_DEF_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AntennaOffsetSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* antOffsetX */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* antOffsetY */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* antOffsetZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1 = { + sizeof(struct AntennaOffsetSet), + offsetof(struct AntennaOffsetSet, _asn_ctx), + asn_MAP_AntennaOffsetSet_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AntiLockBrakeStatus.c b/src/tmx/Asn_J2735/src/2020/AntiLockBrakeStatus.c new file mode 100644 index 000000000..f5e5e182f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AntiLockBrakeStatus.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AntiLockBrakeStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AntiLockBrakeStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AntiLockBrakeStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_AntiLockBrakeStatus_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 3, "off" }, + { 2, 2, "on" }, + { 3, 7, "engaged" } +}; +static const unsigned int asn_MAP_AntiLockBrakeStatus_enum2value_1[] = { + 3, /* engaged(3) */ + 1, /* off(1) */ + 2, /* on(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AntiLockBrakeStatus_specs_1 = { + asn_MAP_AntiLockBrakeStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AntiLockBrakeStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AntiLockBrakeStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AntiLockBrakeStatus = { + "AntiLockBrakeStatus", + "AntiLockBrakeStatus", + &asn_OP_NativeEnumerated, + asn_DEF_AntiLockBrakeStatus_tags_1, + sizeof(asn_DEF_AntiLockBrakeStatus_tags_1) + /sizeof(asn_DEF_AntiLockBrakeStatus_tags_1[0]), /* 1 */ + asn_DEF_AntiLockBrakeStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_AntiLockBrakeStatus_tags_1) + /sizeof(asn_DEF_AntiLockBrakeStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AntiLockBrakeStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AntiLockBrakeStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AntiLockBrakeStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ApproachID.c b/src/tmx/Asn_J2735/src/2020/ApproachID.c new file mode 100644 index 000000000..c7f375082 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ApproachID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ApproachID.h" + +int +ApproachID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 15L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ApproachID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ApproachID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_ApproachID_tags_1, + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_ApproachID_tags_1) + /sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ApproachID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ApproachID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ApproachID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ApproachOrLane.c b/src/tmx/Asn_J2735/src/2020/ApproachOrLane.c new file mode 100644 index 000000000..44465c865 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ApproachOrLane.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IntersectionCollision" + * found in "J2735-IntersectionCollision.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ApproachOrLane.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ApproachOrLane_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ApproachOrLane_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ApproachOrLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ApproachOrLane, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "approach" + }, + { ATF_NOFLAGS, 0, offsetof(struct ApproachOrLane, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lane" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ApproachOrLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* approach */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lane */ +}; +asn_CHOICE_specifics_t asn_SPC_ApproachOrLane_specs_1 = { + sizeof(struct ApproachOrLane), + offsetof(struct ApproachOrLane, _asn_ctx), + offsetof(struct ApproachOrLane, present), + sizeof(((struct ApproachOrLane *)0)->present), + asn_MAP_ApproachOrLane_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ApproachOrLane = { + "ApproachOrLane", + "ApproachOrLane", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ApproachOrLane_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ApproachOrLane_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_ApproachOrLane_1, + 2, /* Elements count */ + &asn_SPC_ApproachOrLane_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Attachment.c b/src/tmx/Asn_J2735/src/2020/Attachment.c new file mode 100644 index 000000000..972de18c3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Attachment.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Attachment.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Attachment_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Attachment_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_Attachment_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 8, "stroller" }, + { 2, 14, "bicycleTrailer" }, + { 3, 4, "cart" }, + { 4, 10, "wheelchair" }, + { 5, 26, "otherWalkAssistAttachments" }, + { 6, 3, "pet" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Attachment_enum2value_1[] = { + 2, /* bicycleTrailer(2) */ + 3, /* cart(3) */ + 5, /* otherWalkAssistAttachments(5) */ + 6, /* pet(6) */ + 1, /* stroller(1) */ + 0, /* unavailable(0) */ + 4 /* wheelchair(4) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Attachment_specs_1 = { + asn_MAP_Attachment_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Attachment_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Attachment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Attachment = { + "Attachment", + "Attachment", + &asn_OP_NativeEnumerated, + asn_DEF_Attachment_tags_1, + sizeof(asn_DEF_Attachment_tags_1) + /sizeof(asn_DEF_Attachment_tags_1[0]), /* 1 */ + asn_DEF_Attachment_tags_1, /* Same as above */ + sizeof(asn_DEF_Attachment_tags_1) + /sizeof(asn_DEF_Attachment_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Attachment_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Attachment_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Attachment_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AttachmentRadius.c b/src/tmx/Asn_J2735/src/2020/AttachmentRadius.c new file mode 100644 index 000000000..6d88c83d0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AttachmentRadius.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AttachmentRadius.h" + +int +AttachmentRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 200L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AttachmentRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..200) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AttachmentRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 200 } /* (0..200) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AttachmentRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AttachmentRadius = { + "AttachmentRadius", + "AttachmentRadius", + &asn_OP_NativeInteger, + asn_DEF_AttachmentRadius_tags_1, + sizeof(asn_DEF_AttachmentRadius_tags_1) + /sizeof(asn_DEF_AttachmentRadius_tags_1[0]), /* 1 */ + asn_DEF_AttachmentRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_AttachmentRadius_tags_1) + /sizeof(asn_DEF_AttachmentRadius_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AttachmentRadius_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AttachmentRadius_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AttachmentRadius_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AuxiliaryBrakeStatus.c b/src/tmx/Asn_J2735/src/2020/AuxiliaryBrakeStatus.c new file mode 100644 index 000000000..143bd1fc0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AuxiliaryBrakeStatus.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AuxiliaryBrakeStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AuxiliaryBrakeStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AuxiliaryBrakeStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_AuxiliaryBrakeStatus_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 3, "off" }, + { 2, 2, "on" }, + { 3, 8, "reserved" } +}; +static const unsigned int asn_MAP_AuxiliaryBrakeStatus_enum2value_1[] = { + 1, /* off(1) */ + 2, /* on(2) */ + 3, /* reserved(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_AuxiliaryBrakeStatus_specs_1 = { + asn_MAP_AuxiliaryBrakeStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_AuxiliaryBrakeStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_AuxiliaryBrakeStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AuxiliaryBrakeStatus = { + "AuxiliaryBrakeStatus", + "AuxiliaryBrakeStatus", + &asn_OP_NativeEnumerated, + asn_DEF_AuxiliaryBrakeStatus_tags_1, + sizeof(asn_DEF_AuxiliaryBrakeStatus_tags_1) + /sizeof(asn_DEF_AuxiliaryBrakeStatus_tags_1[0]), /* 1 */ + asn_DEF_AuxiliaryBrakeStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_AuxiliaryBrakeStatus_tags_1) + /sizeof(asn_DEF_AuxiliaryBrakeStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AuxiliaryBrakeStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AuxiliaryBrakeStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AuxiliaryBrakeStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AxleLocation.c b/src/tmx/Asn_J2735/src/2020/AxleLocation.c new file mode 100644 index 000000000..74caf918f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AxleLocation.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AxleLocation.h" + +int +AxleLocation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AxleLocation_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AxleLocation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AxleLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AxleLocation = { + "AxleLocation", + "AxleLocation", + &asn_OP_NativeInteger, + asn_DEF_AxleLocation_tags_1, + sizeof(asn_DEF_AxleLocation_tags_1) + /sizeof(asn_DEF_AxleLocation_tags_1[0]), /* 1 */ + asn_DEF_AxleLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_AxleLocation_tags_1) + /sizeof(asn_DEF_AxleLocation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AxleLocation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AxleLocation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AxleLocation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AxleWeight.c b/src/tmx/Asn_J2735/src/2020/AxleWeight.c new file mode 100644 index 000000000..23ae46e42 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AxleWeight.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AxleWeight.h" + +int +AxleWeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 64255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AxleWeight_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..64255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AxleWeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 64255 } /* (0..64255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_AxleWeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AxleWeight = { + "AxleWeight", + "AxleWeight", + &asn_OP_NativeInteger, + asn_DEF_AxleWeight_tags_1, + sizeof(asn_DEF_AxleWeight_tags_1) + /sizeof(asn_DEF_AxleWeight_tags_1[0]), /* 1 */ + asn_DEF_AxleWeight_tags_1, /* Same as above */ + sizeof(asn_DEF_AxleWeight_tags_1) + /sizeof(asn_DEF_AxleWeight_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AxleWeight_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AxleWeight_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + AxleWeight_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AxleWeightList.c b/src/tmx/Asn_J2735/src/2020/AxleWeightList.c new file mode 100644 index 000000000..d656f6451 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AxleWeightList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AxleWeightList.h" + +#include "AxleWeightSet.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_AxleWeightList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_AxleWeightList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_AxleWeightList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AxleWeightSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AxleWeightList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AxleWeightList_specs_1 = { + sizeof(struct AxleWeightList), + offsetof(struct AxleWeightList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AxleWeightList = { + "AxleWeightList", + "AxleWeightList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AxleWeightList_tags_1, + sizeof(asn_DEF_AxleWeightList_tags_1) + /sizeof(asn_DEF_AxleWeightList_tags_1[0]), /* 1 */ + asn_DEF_AxleWeightList_tags_1, /* Same as above */ + sizeof(asn_DEF_AxleWeightList_tags_1) + /sizeof(asn_DEF_AxleWeightList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_AxleWeightList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_AxleWeightList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_AxleWeightList_1, + 1, /* Single element */ + &asn_SPC_AxleWeightList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/AxleWeightSet.c b/src/tmx/Asn_J2735/src/2020/AxleWeightSet.c new file mode 100644 index 000000000..57952a502 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/AxleWeightSet.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "AxleWeightSet.h" + +asn_TYPE_member_t asn_MBR_AxleWeightSet_1[] = { + { ATF_POINTER, 2, offsetof(struct AxleWeightSet, location), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AxleLocation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "location" + }, + { ATF_POINTER, 1, offsetof(struct AxleWeightSet, weight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AxleWeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "weight" + }, +}; +static const int asn_MAP_AxleWeightSet_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_AxleWeightSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AxleWeightSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* location */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* weight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AxleWeightSet_specs_1 = { + sizeof(struct AxleWeightSet), + offsetof(struct AxleWeightSet, _asn_ctx), + asn_MAP_AxleWeightSet_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_AxleWeightSet_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AxleWeightSet = { + "AxleWeightSet", + "AxleWeightSet", + &asn_OP_SEQUENCE, + asn_DEF_AxleWeightSet_tags_1, + sizeof(asn_DEF_AxleWeightSet_tags_1) + /sizeof(asn_DEF_AxleWeightSet_tags_1[0]), /* 1 */ + asn_DEF_AxleWeightSet_tags_1, /* Same as above */ + sizeof(asn_DEF_AxleWeightSet_tags_1) + /sizeof(asn_DEF_AxleWeightSet_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_AxleWeightSet_1, + 2, /* Elements count */ + &asn_SPC_AxleWeightSet_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/BIT_STRING.c b/src/tmx/Asn_J2735/src/2020/BIT_STRING.c new file mode 100644 index 000000000..b5ba94017 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BIT_STRING.c @@ -0,0 +1,213 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * BIT STRING basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { + sizeof(BIT_STRING_t), + offsetof(BIT_STRING_t, _asn_ctx), + ASN_OSUBV_BIT +}; +asn_TYPE_operation_t asn_OP_BIT_STRING = { + OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + BIT_STRING_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + BIT_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_binary, + BIT_STRING_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + BIT_STRING_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + BIT_STRING_decode_oer, + BIT_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + BIT_STRING_decode_uper, /* Unaligned PER decoder */ + BIT_STRING_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, /* Aligned PER decoder */ + OCTET_STRING_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + BIT_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { + "BIT STRING", + "BIT_STRING", + &asn_OP_BIT_STRING, + asn_DEF_BIT_STRING_tags, + sizeof(asn_DEF_BIT_STRING_tags) + / sizeof(asn_DEF_BIT_STRING_tags[0]), + asn_DEF_BIT_STRING_tags, /* Same as above */ + sizeof(asn_DEF_BIT_STRING_tags) + / sizeof(asn_DEF_BIT_STRING_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BIT_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs +}; + +/* + * BIT STRING generic constraint. + */ +int +BIT_STRING_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + + if(st && st->buf) { + if((st->size == 0 && st->bits_unused) + || st->bits_unused < 0 || st->bits_unused > 7) { + ASN__CTFAIL(app_key, td, sptr, + "%s: invalid padding byte (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + +/* + * Non-destructively remove the trailing 0-bits from the given bit string. + */ +const BIT_STRING_t * +BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { + const uint8_t *b; + union { + const uint8_t *c_buf; + uint8_t *nc_buf; + } unconst; + + if(st->size == 0) { + assert(st->bits_unused == 0); + return st; + } else { + for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { + ; + } + /* b points to the last byte which may contain data */ + if(*b) { + int unused = 7; + uint8_t v = *b; + v &= -(int8_t)v; + if(v & 0x0F) unused -= 4; + if(v & 0x33) unused -= 2; + if(v & 0x55) unused -= 1; + tmp->size = b-st->buf + 1; + tmp->bits_unused = unused; + } else { + tmp->size = b-st->buf; + tmp->bits_unused = 0; + } + + assert(b >= st->buf); + } + + unconst.c_buf = st->buf; + tmp->buf = unconst.nc_buf; + return tmp; +} + +/* + * Lexicographically compare the common prefix of both strings, + * and if it is the same return -1 for the smallest string. + */ +int +BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + /* + * Remove information about trailing bits, since + * X.680 (08/2015) #22.7 "ensure that different semantics are not" + * "associated with [values that differ only in] the trailing 0 bits." + */ + BIT_STRING_t compact_a, compact_b; + const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); + const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + + (void)specs; + assert(specs && specs->subvariant == ASN_OSUBV_BIT); + + if(a && b) { + size_t common_prefix_size = a->size <= b->size ? a->size : b->size; + int ret = memcmp(a->buf, b->buf, common_prefix_size); + if(ret == 0) { + /* Figure out which string with equal prefixes is longer. */ + if(a->size < b->size) { + return -1; + } else if(a->size > b->size) { + return 1; + } else { + /* Figure out how many unused bits */ + if(a->bits_unused > b->bits_unused) { + return -1; + } else if(a->bits_unused < b->bits_unused) { + return 1; + } else { + return 0; + } + } + } else { + return ret; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/BIT_STRING_jer.c b/src/tmx/Asn_J2735/src/2020/BIT_STRING_jer.c new file mode 100644 index 000000000..f66238dee --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BIT_STRING_jer.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +BIT_STRING_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + const char * const h2c = "0123456789ABCDEF"; + char scratch[16 * 3 + 4]; + char *p = scratch; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + uint8_t *buf; + uint8_t *end; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + buf = st->buf; + end = buf + st->size - 1; /* Last byte is special */ + + /* + * Hex dump + */ + *p++ = '"'; + for(int i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + ASN__CALLBACK(scratch, p-scratch); + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + } + + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + + if(buf == end) { + int ubits = st->bits_unused; + uint8_t v = *buf & (0xff << ubits); + *p++ = h2c[v >> 4]; + *p++ = h2c[v & 0x0F]; + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + } + *p++ = '"'; + ASN__CALLBACK(scratch, p - scratch); + ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/BIT_STRING_oer.c b/src/tmx/Asn_J2735/src/2020/BIT_STRING_oer.c new file mode 100644 index 000000000..95c955896 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BIT_STRING_oer.c @@ -0,0 +1,168 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +BIT_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + const asn_oer_constraints_t *cts = + constraints ? constraints : td->encoding_constraints.oer_constraints; + ssize_t ct_size = cts ? cts->size : -1; + asn_dec_rval_t rval = {RC_OK, 0}; + size_t expected_length = 0; + + (void)opt_codec_ctx; + + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(ct_size >= 0) { + expected_length = (ct_size + 7) >> 3; + st->bits_unused = (8 - (ct_size & 7)) & 7; + } else { + /* + * X.696 (08/2015) #13.3.1 + * Encode length determinant as _number of octets_, but only + * if upper bound is not equal to lower bound. + */ + ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); + if(len_len > 0) { + ptr = (const char *)ptr + len_len; + size -= len_len; + } else if(len_len == 0) { + ASN__DECODE_STARVED; + } else if(len_len < 0) { + ASN__DECODE_FAILED; + } + + if(expected_length < 1) { + ASN__DECODE_FAILED; + } else if(expected_length > size) { + ASN__DECODE_STARVED; + } + + st->bits_unused = ((const uint8_t *)ptr)[0]; + if(st->bits_unused & ~7) { + ASN_DEBUG("%s: unused bits outside of 0..7 range", td->name); + ASN__DECODE_FAILED; + } + ptr = (const char *)ptr + 1; + size--; + expected_length--; + rval.consumed = len_len + 1; + } + + if(size < expected_length) { + ASN__DECODE_STARVED; + } else { + uint8_t *buf = MALLOC(expected_length + 1); + if(buf == NULL) { + ASN__DECODE_FAILED; + } else { + memcpy(buf, ptr, expected_length); + buf[expected_length] = '\0'; + } + FREEMEM(st->buf); + st->buf = buf; + st->size = expected_length; + if(expected_length > 0) { + buf[expected_length - 1] &= (0xff << st->bits_unused); + } + + rval.consumed += expected_length; + return rval; + } +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +BIT_STRING_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, + void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + asn_enc_rval_t erval = {0, 0, 0}; + const asn_oer_constraints_t *cts = + constraints ? constraints : td->encoding_constraints.oer_constraints; + ssize_t ct_size = cts ? cts->size : -1; + size_t trailing_zeros = 0; + int fix_last_byte = 0; + + if(!st) ASN__ENCODE_FAILED; + + if(st->bits_unused & ~7) { + ASN_DEBUG("BIT STRING unused bits %d out of 0..7 range", + st->bits_unused); + ASN__ENCODE_FAILED; + } + if(st->bits_unused && !(st->size && st->buf)) { + ASN_DEBUG("BIT STRING %s size 0 can't support unused bits %d", td->name, + st->bits_unused); + ASN__ENCODE_FAILED; + } + + if(ct_size >= 0) { + size_t ct_bytes = (ct_size + 7) >> 3; + if(st->size > ct_bytes) { + ASN_DEBUG("More bits in BIT STRING %s (%" ASN_PRI_SSIZE ") than constrained %" ASN_PRI_SSIZE "", + td->name, 8 * st->size - st->bits_unused, ct_size); + ASN__ENCODE_FAILED; + } + trailing_zeros = ct_bytes - st->size; /* Allow larger constraint */ + } else { + uint8_t ub = st->bits_unused & 7; + ssize_t len_len = oer_serialize_length(1 + st->size, cb, app_key); + if(len_len < 0) ASN__ENCODE_FAILED; + if(cb(&ub, 1, app_key) < 0) { + ASN__ENCODE_FAILED; + } + erval.encoded += len_len + 1; + } + + if(st->bits_unused) { + if(st->buf[st->size - 1] & (0xff << st->bits_unused)) { + fix_last_byte = 1; + } + } + + if(cb(st->buf, st->size - fix_last_byte, app_key) < 0) { + ASN__ENCODE_FAILED; + } + + if(fix_last_byte) { + uint8_t b = st->buf[st->size - 1] & (0xff << st->bits_unused); + if(cb(&b, 1, app_key) < 0) { + ASN__ENCODE_FAILED; + } + } + + erval.encoded += st->size; + + if(trailing_zeros) { + static uint8_t zeros[16]; + while(trailing_zeros > 0) { + int ret; + if(trailing_zeros < sizeof(zeros)) { + ret = cb(zeros, trailing_zeros, app_key); + erval.encoded += trailing_zeros; + } else { + ret = cb(zeros, sizeof(zeros), app_key); + erval.encoded += sizeof(zeros); + } + if(ret < 0) ASN__ENCODE_FAILED; + } + } + + return erval; +} diff --git a/src/tmx/Asn_J2735/src/2020/BIT_STRING_print.c b/src/tmx/Asn_J2735/src/2020/BIT_STRING_print.c new file mode 100644 index 000000000..bab1ea522 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BIT_STRING_print.c @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * BIT STRING specific contents printer. + */ +int +BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + char scratch[64]; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + uint8_t *buf; + uint8_t *end; + char *p = scratch; + + (void)td; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + ilevel++; + buf = st->buf; + end = buf + st->size; + + /* + * Hexadecimal dump. + */ + for(; buf < end; buf++) { + if((buf - st->buf) % 16 == 0 && (st->size > 16) + && buf != st->buf) { + _i_INDENT(1); + /* Dump the string */ + if(cb(scratch, p - scratch, app_key) < 0) return -1; + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + + if(p > scratch) { + p--; /* Eat the tailing space */ + + if((st->size > 16)) { + _i_INDENT(1); + } + + /* Dump the incomplete 16-bytes row */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + } + + if(st->bits_unused) { + int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", + st->bits_unused, st->bits_unused == 1 ? "" : "s"); + assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); + if(ret > 0 && ret < (ssize_t)sizeof(scratch) + && cb(scratch, ret, app_key) < 0) + return -1; + } + + return 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/BIT_STRING_rfill.c b/src/tmx/Asn_J2735/src/2020/BIT_STRING_rfill.c new file mode 100644 index 000000000..a6e6a9544 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BIT_STRING_rfill.c @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + static unsigned lengths[] = {0, 1, 2, 3, 4, 8, + 126, 127, 128, 16383, 16384, 16385, + 65534, 65535, 65536, 65537}; + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_bits, rnd_len; + BIT_STRING_t *st; + + if(max_length == 0) return result_skipped; + + switch(specs->subvariant) { + case ASN_OSUBV_ANY: + return result_failed; + case ASN_OSUBV_BIT: + break; + default: + break; + } + + /* Figure out how far we should go */ + rnd_bits = lengths[asn_random_between( + 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_CONSTRAINED) { + long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length + ? pc->upper_bound + : (ssize_t)max_length; + if(max_length < (size_t)pc->lower_bound) { + return result_skipped; + } + if(pc->flags & APC_EXTENSIBLE) { + switch(asn_random_between(0, 5)) { + case 0: + if(pc->lower_bound > 0) { + rnd_bits = pc->lower_bound - 1; + break; + } + /* Fall through */ + case 1: + rnd_bits = pc->upper_bound + 1; + break; + case 2: + /* Keep rnd_bits from the table */ + if(rnd_bits < max_length) { + break; + } + /* Fall through */ + default: + rnd_bits = asn_random_between(pc->lower_bound, + suggested_upper_bound); + } + } else { + rnd_bits = + asn_random_between(pc->lower_bound, suggested_upper_bound); + } + } else { + rnd_bits = asn_random_between(0, max_length - 1); + } + } else { +#else + if(!constraints) constraints = &td->encoding_constraints; + { +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + if(rnd_bits >= max_length) { + rnd_bits = asn_random_between(0, max_length - 1); + } + } + + rnd_len = (rnd_bits + 7) / 8; + buf = CALLOC(1, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[rnd_len]; + + for(b = buf; b < bend; b++) { + *(uint8_t *)b = asn_random_between(0, 255); + } + *b = 0; /* Zero-terminate just in case. */ + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = rnd_len; + st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; + if(st->bits_unused) { + assert(st->size > 0); + st->buf[st->size-1] &= 0xff << st->bits_unused; + } + + result_ok.length = st->size; + return result_ok; +} diff --git a/src/tmx/Asn_J2735/src/2020/BIT_STRING_uper.c b/src/tmx/Asn_J2735/src/2020/BIT_STRING_uper.c new file mode 100644 index 000000000..d82349eed --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BIT_STRING_uper.c @@ -0,0 +1,244 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { + APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; + +asn_dec_rval_t +BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + + (void)opt_codec_ctx; + + if(pc) { + csiz = &pc->size; + } else { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + + if(specs->subvariant != ASN_OSUBV_BIT) { + ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); + RETURN(RC_FAIL); + } + + /* + * Allocate the string. + */ + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + st->size = (csiz->upper_bound + 7) >> 3; + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += csiz->upper_bound; + st->buf[st->size] = 0; + st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, + &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + len_bits = raw_len; + len_bytes = (len_bits + 7) >> 3; + if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); + /* len_bits be multiple of 16K if repeat is set */ + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *csiz; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + BIT_STRING_t compact_bstr; /* Do not modify this directly! */ + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + size_t size_in_bits; + const uint8_t *buf; + int ret; + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(specs->subvariant == ASN_OSUBV_BIT) { + if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + + if(pc) { + csiz = &pc->size; + } else { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + /* Figure out the size without the trailing bits */ + st = BIT_STRING__compactify(st, &compact_bstr); + size_in_bits = 8 * st->size - st->bits_unused; + + ASN_DEBUG( + "Encoding %s into %" ASN_PRI_SIZE " bits" + " (%ld..%ld, effective %d)%s", + td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out whether size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((ssize_t)size_in_bits > csiz->upper_bound) { + if(ct_extensible) { + csiz = &asn_DEF_BIT_STRING_constraint_size; + inext = 1; + } else { + ASN__ENCODE_FAILED; + } + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + if(csiz->effective_bits >= 0 && !inext) { + int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; + ASN_DEBUG( + "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " + "value %" ASN_PRI_SSIZE "", + st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, + add_trailer, + add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); + ret = per_put_few_bits( + po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, + csiz->effective_bits); + if(ret) ASN__ENCODE_FAILED; + ret = per_put_many_bits(po, st->buf, size_in_bits); + if(ret) ASN__ENCODE_FAILED; + if(add_trailer) { + static const uint8_t zeros[16]; + size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; + while(trailing_zero_bits > 0) { + if(trailing_zero_bits > 8 * sizeof(zeros)) { + ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); + trailing_zero_bits -= 8 * sizeof(zeros); + } else { + ret = per_put_many_bits(po, zeros, trailing_zero_bits); + trailing_zero_bits = 0; + } + if(ret) ASN__ENCODE_FAILED; + } + } + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); + + buf = st->buf; + do { + int need_eom = 0; + ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); + if(maySave < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); + + ret = per_put_many_bits(po, buf, maySave); + if(ret) ASN__ENCODE_FAILED; + + buf += maySave >> 3; + size_in_bits -= maySave; + assert(!(maySave & 0x07) || !size_in_bits); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size_in_bits); + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/BIT_STRING_xer.c b/src/tmx/Asn_J2735/src/2020/BIT_STRING_xer.c new file mode 100644 index 000000000..67d5cb8db --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BIT_STRING_xer.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +static const char *_bit_pattern[16] = { + "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", + "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" +}; + +asn_enc_rval_t +BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + char scratch[128]; + char *p = scratch; + char *scend = scratch + (sizeof(scratch) - 10); + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + int xcan = (flags & XER_F_CANONICAL); + uint8_t *buf; + uint8_t *end; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + buf = st->buf; + end = buf + st->size - 1; /* Last byte is special */ + + /* + * Binary dump + */ + for(; buf < end; buf++) { + int v = *buf; + int nline = xcan?0:(((buf - st->buf) % 8) == 0); + if(p >= scend || nline) { + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + if(nline) ASN__TEXT_INDENT(1, ilevel); + } + memcpy(p + 0, _bit_pattern[v >> 4], 4); + memcpy(p + 4, _bit_pattern[v & 0x0f], 4); + p += 8; + } + + if(!xcan && ((buf - st->buf) % 8) == 0) + ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + + if(buf == end) { + int v = *buf; + int ubits = st->bits_unused; + int i; + for(i = 7; i >= ubits; i--) + *p++ = (v & (1 << i)) ? 0x31 : 0x30; + ASN__CALLBACK(scratch, p - scratch); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/BOOLEAN.c b/src/tmx/Asn_J2735/src/2020/BOOLEAN.c new file mode 100644 index 000000000..1373a6f15 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BOOLEAN.c @@ -0,0 +1,128 @@ +/*- + * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * BOOLEAN basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BOOLEAN_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_operation_t asn_OP_BOOLEAN = { + BOOLEAN_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + BOOLEAN_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + BOOLEAN_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + BOOLEAN_decode_ber, + BOOLEAN_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + BOOLEAN_decode_xer, + BOOLEAN_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + BOOLEAN_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + BOOLEAN_decode_oer, + BOOLEAN_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + BOOLEAN_decode_uper, /* Unaligned PER decoder */ + BOOLEAN_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + BOOLEAN_decode_aper, /* Aligned PER decoder */ + BOOLEAN_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + BOOLEAN_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BOOLEAN = { + "BOOLEAN", + "BOOLEAN", + &asn_OP_BOOLEAN, + asn_DEF_BOOLEAN_tags, + sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), + asn_DEF_BOOLEAN_tags, /* Same as above */ + sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +void +BOOLEAN_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(BOOLEAN_t)); + break; + } + } +} + +int +BOOLEAN_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const BOOLEAN_t *a = aptr; + const BOOLEAN_t *b = bptr; + + (void)td; + + if(a && b) { + if(!*a == !*b) { /* TRUE can be encoded by any non-zero byte. */ + return 0; + } else if(!*a) { + return -1; + } else { + return 1; + } + } else if(!a) { + return -1; + } else { + return 1; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/BOOLEAN_aper.c b/src/tmx/Asn_J2735/src/2020/BOOLEAN_aper.c new file mode 100644 index 000000000..d697cf571 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BOOLEAN_aper.c @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +BOOLEAN_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + BOOLEAN_t *st = (BOOLEAN_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + (void)td; + + if(!st) { + st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + /* + * Extract a single bit + */ + switch(per_get_few_bits(pd, 1)) { + case 1: + *st = 1; + break; + case 0: + *st = 0; + break; + case -1: + default: + ASN__DECODE_STARVED; + } + + ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); + + rv.code = RC_OK; + rv.consumed = 1; + return rv; +} + +asn_enc_rval_t +BOOLEAN_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + if(per_put_few_bits(po, *st ? 1 : 0, 1)) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/BOOLEAN_ber.c b/src/tmx/Asn_J2735/src/2020/BOOLEAN_ber.c new file mode 100644 index 000000000..176a4a4b7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BOOLEAN_ber.c @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Decode BOOLEAN type. + */ +asn_dec_rval_t +BOOLEAN_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **bool_value, + const void *buf_ptr, size_t size, int tag_mode) { + BOOLEAN_t *st = (BOOLEAN_t *)*bool_value; + asn_dec_rval_t rval; + ber_tlv_len_t length; + ber_tlv_len_t lidx; + + if(st == NULL) { + st = (BOOLEAN_t *)(*bool_value = CALLOC(1, sizeof(*st))); + if(st == NULL) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + ASN_DEBUG("Decoding %s as BOOLEAN (tm=%d)", + td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("Boolean length is %d bytes", (int)length); + + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + /* + * Compute boolean value. + */ + for(*st = 0, lidx = 0; + (lidx < length) && *st == 0; lidx++) { + /* + * Very simple approach: read bytes until the end or + * value is already TRUE. + * BOOLEAN is not supposed to contain meaningful data anyway. + */ + *st |= ((const uint8_t *)buf_ptr)[lidx]; + } + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s, value=%d", + (long)rval.consumed, (long)length, + td->name, *st); + + return rval; +} + +asn_enc_rval_t +BOOLEAN_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t erval = {0,0,0}; + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + + erval.encoded = der_write_tags(td, 1, tag_mode, 0, tag, cb, app_key); + if(erval.encoded == -1) { + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + + if(cb) { + uint8_t bool_value; + + bool_value = *st ? 0xff : 0; /* 0xff mandated by DER */ + + if(cb(&bool_value, 1, app_key) < 0) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + } + + erval.encoded += 1; + + ASN__ENCODED_OK(erval); +} diff --git a/src/tmx/Asn_J2735/src/2020/BOOLEAN_jer.c b/src/tmx/Asn_J2735/src/2020/BOOLEAN_jer.c new file mode 100644 index 000000000..6f4b0935f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BOOLEAN_jer.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_enc_rval_t +BOOLEAN_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + + (void)ilevel; + (void)flags; + + if(!st) ASN__ENCODE_FAILED; + + if(*st) { + ASN__CALLBACK("true", 4); + } else { + ASN__CALLBACK("false", 5); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/BOOLEAN_oer.c b/src/tmx/Asn_J2735/src/2020/BOOLEAN_oer.c new file mode 100644 index 000000000..0e92e602b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BOOLEAN_oer.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +BOOLEAN_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = { 1, 0, 0 }; + const BOOLEAN_t *st = sptr; + uint8_t bool_value = *st ? 0xff : 0; /* 0xff mandated by OER */ + + (void)td; + (void)constraints; /* Constraints are unused in OER */ + + if(cb(&bool_value, 1, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + ASN__ENCODED_OK(er); + } +} + +asn_dec_rval_t +BOOLEAN_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + asn_dec_rval_t ok = {RC_OK, 1}; + BOOLEAN_t *st; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; /* Constraints are unused in OER */ + + if(size < 1) { + ASN__DECODE_STARVED; + } + + if(!(st = *sptr)) { + st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + *st = *(const uint8_t *)ptr; + + return ok; +} diff --git a/src/tmx/Asn_J2735/src/2020/BOOLEAN_print.c b/src/tmx/Asn_J2735/src/2020/BOOLEAN_print.c new file mode 100644 index 000000000..23aaadea8 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BOOLEAN_print.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +BOOLEAN_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + const char *buf; + size_t buflen; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st) { + if(*st) { + buf = "TRUE"; + buflen = 4; + } else { + buf = "FALSE"; + buflen = 5; + } + } else { + buf = ""; + buflen = 8; + } + + return (cb(buf, buflen, app_key) < 0) ? -1 : 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/BOOLEAN_rfill.c b/src/tmx/Asn_J2735/src/2020/BOOLEAN_rfill.c new file mode 100644 index 000000000..5ec628bbf --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BOOLEAN_rfill.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +BOOLEAN_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + BOOLEAN_t *st = *sptr; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(st == NULL) { + return result_failed; + } + } + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->value; + if(pc->flags & APC_CONSTRAINED) { + *st = asn_random_between(pc->lower_bound, pc->upper_bound); + return result_ok; + } + } +#else + if(!constraints) constraints = &td->encoding_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + + /* Simulate booleans that are sloppily set and biased. */ + switch(asn_random_between(0, 7)) { + case 0: + case 1: + case 2: + *st = 0; break; + case 3: *st = -1; break; + case 4: *st = 1; break; + case 5: *st = INT_MIN; break; + case 6: *st = INT_MAX; break; + default: + *st = asn_random_between(INT_MIN, INT_MAX); + break; + } + return result_ok; +} diff --git a/src/tmx/Asn_J2735/src/2020/BOOLEAN_uper.c b/src/tmx/Asn_J2735/src/2020/BOOLEAN_uper.c new file mode 100644 index 000000000..8181ec9ca --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BOOLEAN_uper.c @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +BOOLEAN_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + BOOLEAN_t *st = (BOOLEAN_t *)*sptr; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + + if(!st) { + st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + /* + * Extract a single bit + */ + switch(per_get_few_bits(pd, 1)) { + case 1: *st = 1; break; + case 0: *st = 0; break; + case -1: default: ASN__DECODE_STARVED; + } + + ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); + + rv.code = RC_OK; + rv.consumed = 1; + return rv; +} + + +asn_enc_rval_t +BOOLEAN_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + if(per_put_few_bits(po, *st ? 1 : 0, 1)) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/BOOLEAN_xer.c b/src/tmx/Asn_J2735/src/2020/BOOLEAN_xer.c new file mode 100644 index 000000000..7e9d8f853 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BOOLEAN_xer.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +static enum xer_pbd_rval +BOOLEAN__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + BOOLEAN_t *st = (BOOLEAN_t *)sptr; + const char *p = (const char *)chunk_buf; + + (void)td; + + if(chunk_size && p[0] == 0x3c /* '<' */) { + switch(xer_check_tag(chunk_buf, chunk_size, "false")) { + case XCT_BOTH: + /* "" */ + *st = 0; + break; + case XCT_UNKNOWN_BO: + if(xer_check_tag(chunk_buf, chunk_size, "true") != XCT_BOTH) + return XPBD_BROKEN_ENCODING; + /* "" */ + *st = 1; /* Or 0xff as in DER?.. */ + break; + default: + return XPBD_BROKEN_ENCODING; + } + return XPBD_BODY_CONSUMED; + } else { + return XPBD_BROKEN_ENCODING; + } +} + + +asn_dec_rval_t +BOOLEAN_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(BOOLEAN_t), opt_mname, buf_ptr, size, + BOOLEAN__xer_body_decode); +} + +asn_enc_rval_t +BOOLEAN_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + + (void)ilevel; + (void)flags; + + if(!st) ASN__ENCODE_FAILED; + + if(*st) { + ASN__CALLBACK("", 7); + } else { + ASN__CALLBACK("", 8); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/BSMcoreData.c b/src/tmx/Asn_J2735/src/2020/BSMcoreData.c new file mode 100644 index 000000000..58f4400b6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BSMcoreData.c @@ -0,0 +1,300 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "BSMcoreData.h" + +asn_TYPE_member_t asn_MBR_BSMcoreData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, secMark), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "secMark" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, lat), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, Long), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, elev), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_Elevation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elev" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, accuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accuracy" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, transmission), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transmission" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, speed), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Speed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, heading), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Heading, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, angle), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "angle" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, accelSet), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationSet4Way, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accelSet" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, brakes), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BrakeSystemStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "brakes" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMcoreData, size), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleSize, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "size" + }, +}; +static const ber_tlv_tag_t asn_DEF_BSMcoreData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BSMcoreData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* secMark */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* elev */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* accuracy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transmission */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* angle */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* accelSet */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* brakes */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 } /* size */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BSMcoreData_specs_1 = { + sizeof(struct BSMcoreData), + offsetof(struct BSMcoreData, _asn_ctx), + asn_MAP_BSMcoreData_tag2el_1, + 14, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BSMcoreData = { + "BSMcoreData", + "BSMcoreData", + &asn_OP_SEQUENCE, + asn_DEF_BSMcoreData_tags_1, + sizeof(asn_DEF_BSMcoreData_tags_1) + /sizeof(asn_DEF_BSMcoreData_tags_1[0]), /* 1 */ + asn_DEF_BSMcoreData_tags_1, /* Same as above */ + sizeof(asn_DEF_BSMcoreData_tags_1) + /sizeof(asn_DEF_BSMcoreData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_BSMcoreData_1, + 14, /* Elements count */ + &asn_SPC_BSMcoreData_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/BasicSafetyMessage.c b/src/tmx/Asn_J2735/src/2020/BasicSafetyMessage.c new file mode 100644 index 000000000..fc413535b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BasicSafetyMessage.c @@ -0,0 +1,312 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "BasicSafetyMessage.h" + +#include "PartIIcontent.h" +#include "RegionalExtension.h" +static int +memb_partII_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 8UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_partII_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_partII_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_partII_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_partII_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_partII_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_BSMpartIIExtension, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_partII_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_partII_specs_3 = { + sizeof(struct BasicSafetyMessage__partII), + offsetof(struct BasicSafetyMessage__partII, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_partII_3 = { + "partII", + "partII", + &asn_OP_SEQUENCE_OF, + asn_DEF_partII_tags_3, + sizeof(asn_DEF_partII_tags_3) + /sizeof(asn_DEF_partII_tags_3[0]) - 1, /* 1 */ + asn_DEF_partII_tags_3, /* Same as above */ + sizeof(asn_DEF_partII_tags_3) + /sizeof(asn_DEF_partII_tags_3[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_partII_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_partII_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_partII_3, + 1, /* Single element */ + &asn_SPC_partII_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_BasicSafetyMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct BasicSafetyMessage__regional), + offsetof(struct BasicSafetyMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BasicSafetyMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BasicSafetyMessage, coreData), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BSMcoreData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "coreData" + }, + { ATF_POINTER, 2, offsetof(struct BasicSafetyMessage, partII), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_partII_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_partII_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_partII_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_partII_constraint_1 + }, + 0, 0, /* No default value */ + "partII" + }, + { ATF_POINTER, 1, offsetof(struct BasicSafetyMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_BasicSafetyMessage_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_BasicSafetyMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BasicSafetyMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* coreData */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* partII */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BasicSafetyMessage_specs_1 = { + sizeof(struct BasicSafetyMessage), + offsetof(struct BasicSafetyMessage, _asn_ctx), + asn_MAP_BasicSafetyMessage_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_BasicSafetyMessage_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BasicSafetyMessage = { + "BasicSafetyMessage", + "BasicSafetyMessage", + &asn_OP_SEQUENCE, + asn_DEF_BasicSafetyMessage_tags_1, + sizeof(asn_DEF_BasicSafetyMessage_tags_1) + /sizeof(asn_DEF_BasicSafetyMessage_tags_1[0]), /* 1 */ + asn_DEF_BasicSafetyMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicSafetyMessage_tags_1) + /sizeof(asn_DEF_BasicSafetyMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_BasicSafetyMessage_1, + 3, /* Elements count */ + &asn_SPC_BasicSafetyMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/BasicVehicleClass.c b/src/tmx/Asn_J2735/src/2020/BasicVehicleClass.c new file mode 100644 index 000000000..19240d328 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BasicVehicleClass.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "BasicVehicleClass.h" + +int +BasicVehicleClass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_BasicVehicleClass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_BasicVehicleClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_BasicVehicleClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleClass = { + "BasicVehicleClass", + "BasicVehicleClass", + &asn_OP_NativeInteger, + asn_DEF_BasicVehicleClass_tags_1, + sizeof(asn_DEF_BasicVehicleClass_tags_1) + /sizeof(asn_DEF_BasicVehicleClass_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleClass_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleClass_tags_1) + /sizeof(asn_DEF_BasicVehicleClass_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_BasicVehicleClass_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_BasicVehicleClass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BasicVehicleClass_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/BasicVehicleRole.c b/src/tmx/Asn_J2735/src/2020/BasicVehicleRole.c new file mode 100644 index 000000000..3971477fd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BasicVehicleRole.c @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "BasicVehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_BasicVehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 22 } /* (0..22,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_BasicVehicleRole_value2enum_1[] = { + { 0, 12, "basicVehicle" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 10, "roadRescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 12, "none-unknown" }, + { 9, 5, "truck" }, + { 10, 10, "motorcycle" }, + { 11, 14, "roadSideSource" }, + { 12, 6, "police" }, + { 13, 4, "fire" }, + { 14, 9, "ambulance" }, + { 15, 3, "dot" }, + { 16, 7, "transit" }, + { 17, 10, "slowMoving" }, + { 18, 7, "stopNgo" }, + { 19, 7, "cyclist" }, + { 20, 10, "pedestrian" }, + { 21, 12, "nonMotorized" }, + { 22, 8, "military" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BasicVehicleRole_enum2value_1[] = { + 14, /* ambulance(14) */ + 0, /* basicVehicle(0) */ + 19, /* cyclist(19) */ + 3, /* dangerousGoods(3) */ + 15, /* dot(15) */ + 6, /* emergency(6) */ + 13, /* fire(13) */ + 22, /* military(22) */ + 10, /* motorcycle(10) */ + 21, /* nonMotorized(21) */ + 8, /* none-unknown(8) */ + 20, /* pedestrian(20) */ + 12, /* police(12) */ + 1, /* publicTransport(1) */ + 5, /* roadRescue(5) */ + 11, /* roadSideSource(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 17, /* slowMoving(17) */ + 2, /* specialTransport(2) */ + 18, /* stopNgo(18) */ + 16, /* transit(16) */ + 9 /* truck(9) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_BasicVehicleRole_specs_1 = { + asn_MAP_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BasicVehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 23, /* Number of elements in the maps */ + 24, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_BasicVehicleRole_tags_1, + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_BasicVehicleRole_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_BasicVehicleRole_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_BasicVehicleRole_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/BrakeAppliedPressure.c b/src/tmx/Asn_J2735/src/2020/BrakeAppliedPressure.c new file mode 100644 index 000000000..e23e68c2a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BrakeAppliedPressure.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "BrakeAppliedPressure.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_BrakeAppliedPressure_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_BrakeAppliedPressure_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_BrakeAppliedPressure_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "minPressure" }, + { 2, 7, "bkLvl-2" }, + { 3, 7, "bkLvl-3" }, + { 4, 7, "bkLvl-4" }, + { 5, 7, "bkLvl-5" }, + { 6, 7, "bkLvl-6" }, + { 7, 7, "bkLvl-7" }, + { 8, 7, "bkLvl-8" }, + { 9, 7, "bkLvl-9" }, + { 10, 8, "bkLvl-10" }, + { 11, 8, "bkLvl-11" }, + { 12, 8, "bkLvl-12" }, + { 13, 8, "bkLvl-13" }, + { 14, 8, "bkLvl-14" }, + { 15, 11, "maxPressure" } +}; +static const unsigned int asn_MAP_BrakeAppliedPressure_enum2value_1[] = { + 10, /* bkLvl-10(10) */ + 11, /* bkLvl-11(11) */ + 12, /* bkLvl-12(12) */ + 13, /* bkLvl-13(13) */ + 14, /* bkLvl-14(14) */ + 2, /* bkLvl-2(2) */ + 3, /* bkLvl-3(3) */ + 4, /* bkLvl-4(4) */ + 5, /* bkLvl-5(5) */ + 6, /* bkLvl-6(6) */ + 7, /* bkLvl-7(7) */ + 8, /* bkLvl-8(8) */ + 9, /* bkLvl-9(9) */ + 15, /* maxPressure(15) */ + 1, /* minPressure(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_BrakeAppliedPressure_specs_1 = { + asn_MAP_BrakeAppliedPressure_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BrakeAppliedPressure_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BrakeAppliedPressure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BrakeAppliedPressure = { + "BrakeAppliedPressure", + "BrakeAppliedPressure", + &asn_OP_NativeEnumerated, + asn_DEF_BrakeAppliedPressure_tags_1, + sizeof(asn_DEF_BrakeAppliedPressure_tags_1) + /sizeof(asn_DEF_BrakeAppliedPressure_tags_1[0]), /* 1 */ + asn_DEF_BrakeAppliedPressure_tags_1, /* Same as above */ + sizeof(asn_DEF_BrakeAppliedPressure_tags_1) + /sizeof(asn_DEF_BrakeAppliedPressure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_BrakeAppliedPressure_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_BrakeAppliedPressure_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BrakeAppliedPressure_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/BrakeAppliedStatus.c b/src/tmx/Asn_J2735/src/2020/BrakeAppliedStatus.c new file mode 100644 index 000000000..c51a80e94 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BrakeAppliedStatus.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "BrakeAppliedStatus.h" + +int +BrakeAppliedStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 5UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_BrakeAppliedStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 5 /* (SIZE(5..5)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_BrakeAppliedStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 5, 5 } /* (SIZE(5..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_BrakeAppliedStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BrakeAppliedStatus = { + "BrakeAppliedStatus", + "BrakeAppliedStatus", + &asn_OP_BIT_STRING, + asn_DEF_BrakeAppliedStatus_tags_1, + sizeof(asn_DEF_BrakeAppliedStatus_tags_1) + /sizeof(asn_DEF_BrakeAppliedStatus_tags_1[0]), /* 1 */ + asn_DEF_BrakeAppliedStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_BrakeAppliedStatus_tags_1) + /sizeof(asn_DEF_BrakeAppliedStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_BrakeAppliedStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_BrakeAppliedStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BrakeAppliedStatus_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/BrakeBoostApplied.c b/src/tmx/Asn_J2735/src/2020/BrakeBoostApplied.c new file mode 100644 index 000000000..e56f1fa65 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BrakeBoostApplied.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "BrakeBoostApplied.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_BrakeBoostApplied_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_BrakeBoostApplied_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_BrakeBoostApplied_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 3, "off" }, + { 2, 2, "on" } +}; +static const unsigned int asn_MAP_BrakeBoostApplied_enum2value_1[] = { + 1, /* off(1) */ + 2, /* on(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_BrakeBoostApplied_specs_1 = { + asn_MAP_BrakeBoostApplied_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BrakeBoostApplied_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BrakeBoostApplied_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BrakeBoostApplied = { + "BrakeBoostApplied", + "BrakeBoostApplied", + &asn_OP_NativeEnumerated, + asn_DEF_BrakeBoostApplied_tags_1, + sizeof(asn_DEF_BrakeBoostApplied_tags_1) + /sizeof(asn_DEF_BrakeBoostApplied_tags_1[0]), /* 1 */ + asn_DEF_BrakeBoostApplied_tags_1, /* Same as above */ + sizeof(asn_DEF_BrakeBoostApplied_tags_1) + /sizeof(asn_DEF_BrakeBoostApplied_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_BrakeBoostApplied_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_BrakeBoostApplied_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BrakeBoostApplied_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/BrakeSystemStatus.c b/src/tmx/Asn_J2735/src/2020/BrakeSystemStatus.c new file mode 100644 index 000000000..3b313dbde --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BrakeSystemStatus.c @@ -0,0 +1,156 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "BrakeSystemStatus.h" + +asn_TYPE_member_t asn_MBR_BrakeSystemStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BrakeSystemStatus, wheelBrakes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BrakeAppliedStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "wheelBrakes" + }, + { ATF_NOFLAGS, 0, offsetof(struct BrakeSystemStatus, traction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TractionControlStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "traction" + }, + { ATF_NOFLAGS, 0, offsetof(struct BrakeSystemStatus, abs), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AntiLockBrakeStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "abs" + }, + { ATF_NOFLAGS, 0, offsetof(struct BrakeSystemStatus, scs), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StabilityControlStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "scs" + }, + { ATF_NOFLAGS, 0, offsetof(struct BrakeSystemStatus, brakeBoost), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BrakeBoostApplied, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "brakeBoost" + }, + { ATF_NOFLAGS, 0, offsetof(struct BrakeSystemStatus, auxBrakes), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AuxiliaryBrakeStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "auxBrakes" + }, +}; +static const ber_tlv_tag_t asn_DEF_BrakeSystemStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BrakeSystemStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wheelBrakes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* traction */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* abs */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* scs */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* brakeBoost */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* auxBrakes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BrakeSystemStatus_specs_1 = { + sizeof(struct BrakeSystemStatus), + offsetof(struct BrakeSystemStatus, _asn_ctx), + asn_MAP_BrakeSystemStatus_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BrakeSystemStatus = { + "BrakeSystemStatus", + "BrakeSystemStatus", + &asn_OP_SEQUENCE, + asn_DEF_BrakeSystemStatus_tags_1, + sizeof(asn_DEF_BrakeSystemStatus_tags_1) + /sizeof(asn_DEF_BrakeSystemStatus_tags_1[0]), /* 1 */ + asn_DEF_BrakeSystemStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_BrakeSystemStatus_tags_1) + /sizeof(asn_DEF_BrakeSystemStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_BrakeSystemStatus_1, + 6, /* Elements count */ + &asn_SPC_BrakeSystemStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/BumperHeight.c b/src/tmx/Asn_J2735/src/2020/BumperHeight.c new file mode 100644 index 000000000..e3177905a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BumperHeight.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "BumperHeight.h" + +int +BumperHeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_BumperHeight_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_BumperHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_BumperHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BumperHeight = { + "BumperHeight", + "BumperHeight", + &asn_OP_NativeInteger, + asn_DEF_BumperHeight_tags_1, + sizeof(asn_DEF_BumperHeight_tags_1) + /sizeof(asn_DEF_BumperHeight_tags_1[0]), /* 1 */ + asn_DEF_BumperHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_BumperHeight_tags_1) + /sizeof(asn_DEF_BumperHeight_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_BumperHeight_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_BumperHeight_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BumperHeight_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/BumperHeights.c b/src/tmx/Asn_J2735/src/2020/BumperHeights.c new file mode 100644 index 000000000..ee98b5af9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/BumperHeights.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "BumperHeights.h" + +asn_TYPE_member_t asn_MBR_BumperHeights_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BumperHeights, front), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BumperHeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "front" + }, + { ATF_NOFLAGS, 0, offsetof(struct BumperHeights, rear), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BumperHeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rear" + }, +}; +static const ber_tlv_tag_t asn_DEF_BumperHeights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BumperHeights_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* front */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rear */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BumperHeights_specs_1 = { + sizeof(struct BumperHeights), + offsetof(struct BumperHeights, _asn_ctx), + asn_MAP_BumperHeights_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BumperHeights = { + "BumperHeights", + "BumperHeights", + &asn_OP_SEQUENCE, + asn_DEF_BumperHeights_tags_1, + sizeof(asn_DEF_BumperHeights_tags_1) + /sizeof(asn_DEF_BumperHeights_tags_1[0]), /* 1 */ + asn_DEF_BumperHeights_tags_1, /* Same as above */ + sizeof(asn_DEF_BumperHeights_tags_1) + /sizeof(asn_DEF_BumperHeights_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_BumperHeights_1, + 2, /* Elements count */ + &asn_SPC_BumperHeights_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/CargoWeight.c b/src/tmx/Asn_J2735/src/2020/CargoWeight.c new file mode 100644 index 000000000..c7b2ff436 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/CargoWeight.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "CargoWeight.h" + +int +CargoWeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 64255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_CargoWeight_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..64255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_CargoWeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 64255 } /* (0..64255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_CargoWeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CargoWeight = { + "CargoWeight", + "CargoWeight", + &asn_OP_NativeInteger, + asn_DEF_CargoWeight_tags_1, + sizeof(asn_DEF_CargoWeight_tags_1) + /sizeof(asn_DEF_CargoWeight_tags_1[0]), /* 1 */ + asn_DEF_CargoWeight_tags_1, /* Same as above */ + sizeof(asn_DEF_CargoWeight_tags_1) + /sizeof(asn_DEF_CargoWeight_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_CargoWeight_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CargoWeight_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CargoWeight_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Circle.c b/src/tmx/Asn_J2735/src/2020/Circle.c new file mode 100644 index 000000000..49da2c4b3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Circle.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Circle.h" + +asn_TYPE_member_t asn_MBR_Circle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Circle, center), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "center" + }, + { ATF_NOFLAGS, 0, offsetof(struct Circle, radius), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Radius_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "radius" + }, + { ATF_NOFLAGS, 0, offsetof(struct Circle, units), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DistanceUnits, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "units" + }, +}; +static const ber_tlv_tag_t asn_DEF_Circle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Circle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* center */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* radius */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* units */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Circle_specs_1 = { + sizeof(struct Circle), + offsetof(struct Circle, _asn_ctx), + asn_MAP_Circle_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Circle = { + "Circle", + "Circle", + &asn_OP_SEQUENCE, + asn_DEF_Circle_tags_1, + sizeof(asn_DEF_Circle_tags_1) + /sizeof(asn_DEF_Circle_tags_1[0]), /* 1 */ + asn_DEF_Circle_tags_1, /* Same as above */ + sizeof(asn_DEF_Circle_tags_1) + /sizeof(asn_DEF_Circle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Circle_1, + 3, /* Elements count */ + &asn_SPC_Circle_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/CoarseHeading.c b/src/tmx/Asn_J2735/src/2020/CoarseHeading.c new file mode 100644 index 000000000..3791ea679 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/CoarseHeading.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "CoarseHeading.h" + +int +CoarseHeading_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 240L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_CoarseHeading_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..240) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_CoarseHeading_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 240 } /* (0..240) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_CoarseHeading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CoarseHeading = { + "CoarseHeading", + "CoarseHeading", + &asn_OP_NativeInteger, + asn_DEF_CoarseHeading_tags_1, + sizeof(asn_DEF_CoarseHeading_tags_1) + /sizeof(asn_DEF_CoarseHeading_tags_1[0]), /* 1 */ + asn_DEF_CoarseHeading_tags_1, /* Same as above */ + sizeof(asn_DEF_CoarseHeading_tags_1) + /sizeof(asn_DEF_CoarseHeading_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_CoarseHeading_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CoarseHeading_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CoarseHeading_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/CodeWord.c b/src/tmx/Asn_J2735/src/2020/CodeWord.c new file mode 100644 index 000000000..5bc8a9c73 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/CodeWord.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "CodeWord.h" + +int +CodeWord_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_CodeWord_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_CodeWord_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_CodeWord_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CodeWord = { + "CodeWord", + "CodeWord", + &asn_OP_OCTET_STRING, + asn_DEF_CodeWord_tags_1, + sizeof(asn_DEF_CodeWord_tags_1) + /sizeof(asn_DEF_CodeWord_tags_1[0]), /* 1 */ + asn_DEF_CodeWord_tags_1, /* Same as above */ + sizeof(asn_DEF_CodeWord_tags_1) + /sizeof(asn_DEF_CodeWord_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_CodeWord_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CodeWord_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CodeWord_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/CoefficientOfFriction.c b/src/tmx/Asn_J2735/src/2020/CoefficientOfFriction.c new file mode 100644 index 000000000..fa52baf11 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/CoefficientOfFriction.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "CoefficientOfFriction.h" + +int +CoefficientOfFriction_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 50L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_CoefficientOfFriction_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..50) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_CoefficientOfFriction_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 50 } /* (0..50) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_CoefficientOfFriction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CoefficientOfFriction = { + "CoefficientOfFriction", + "CoefficientOfFriction", + &asn_OP_NativeInteger, + asn_DEF_CoefficientOfFriction_tags_1, + sizeof(asn_DEF_CoefficientOfFriction_tags_1) + /sizeof(asn_DEF_CoefficientOfFriction_tags_1[0]), /* 1 */ + asn_DEF_CoefficientOfFriction_tags_1, /* Same as above */ + sizeof(asn_DEF_CoefficientOfFriction_tags_1) + /sizeof(asn_DEF_CoefficientOfFriction_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_CoefficientOfFriction_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_CoefficientOfFriction_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CoefficientOfFriction_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/CommonSafetyRequest.c b/src/tmx/Asn_J2735/src/2020/CommonSafetyRequest.c new file mode 100644 index 000000000..202821aed --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/CommonSafetyRequest.c @@ -0,0 +1,244 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CommonSafetyRequest" + * found in "J2735-CommonSafetyRequest.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "CommonSafetyRequest.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_CommonSafetyRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct CommonSafetyRequest__regional), + offsetof(struct CommonSafetyRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CommonSafetyRequest_1[] = { + { ATF_POINTER, 3, offsetof(struct CommonSafetyRequest, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct CommonSafetyRequest, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_POINTER, 1, offsetof(struct CommonSafetyRequest, id), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct CommonSafetyRequest, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestedItemList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requests" + }, + { ATF_POINTER, 1, offsetof(struct CommonSafetyRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_CommonSafetyRequest_oms_1[] = { 0, 1, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_CommonSafetyRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CommonSafetyRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* requests */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CommonSafetyRequest_specs_1 = { + sizeof(struct CommonSafetyRequest), + offsetof(struct CommonSafetyRequest, _asn_ctx), + asn_MAP_CommonSafetyRequest_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_CommonSafetyRequest_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CommonSafetyRequest = { + "CommonSafetyRequest", + "CommonSafetyRequest", + &asn_OP_SEQUENCE, + asn_DEF_CommonSafetyRequest_tags_1, + sizeof(asn_DEF_CommonSafetyRequest_tags_1) + /sizeof(asn_DEF_CommonSafetyRequest_tags_1[0]), /* 1 */ + asn_DEF_CommonSafetyRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_CommonSafetyRequest_tags_1) + /sizeof(asn_DEF_CommonSafetyRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_CommonSafetyRequest_1, + 5, /* Elements count */ + &asn_SPC_CommonSafetyRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Common_Angle.c b/src/tmx/Asn_J2735/src/2020/Common_Angle.c new file mode 100644 index 000000000..0b2a34295 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Common_Angle.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Common_Angle.h" + +int +Common_Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 28800L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Common_Angle_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Common_Angle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Common_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Common_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_Common_Angle_tags_1, + sizeof(asn_DEF_Common_Angle_tags_1) + /sizeof(asn_DEF_Common_Angle_tags_1[0]), /* 1 */ + asn_DEF_Common_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_Common_Angle_tags_1) + /sizeof(asn_DEF_Common_Angle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Common_Angle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Common_Angle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Common_Angle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Common_Elevation.c b/src/tmx/Asn_J2735/src/2020/Common_Elevation.c new file mode 100644 index 000000000..f6a0ac83a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Common_Elevation.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Common_Elevation.h" + +int +Common_Elevation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096L && value <= 61439L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Common_Elevation_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-4096..61439) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Common_Elevation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -4096, 61439 } /* (-4096..61439) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Common_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Common_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_Common_Elevation_tags_1, + sizeof(asn_DEF_Common_Elevation_tags_1) + /sizeof(asn_DEF_Common_Elevation_tags_1[0]), /* 1 */ + asn_DEF_Common_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_Common_Elevation_tags_1) + /sizeof(asn_DEF_Common_Elevation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Common_Elevation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Common_Elevation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Common_Elevation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Common_MsgCount.c b/src/tmx/Asn_J2735/src/2020/Common_MsgCount.c new file mode 100644 index 000000000..9510d6667 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Common_MsgCount.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Common_MsgCount.h" + +int +Common_MsgCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Common_MsgCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Common_MsgCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Common_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Common_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_Common_MsgCount_tags_1, + sizeof(asn_DEF_Common_MsgCount_tags_1) + /sizeof(asn_DEF_Common_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_Common_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_Common_MsgCount_tags_1) + /sizeof(asn_DEF_Common_MsgCount_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Common_MsgCount_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Common_MsgCount_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Common_MsgCount_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ComputedLane.c b/src/tmx/Asn_J2735/src/2020/ComputedLane.c new file mode 100644 index 000000000..24e8446d5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ComputedLane.c @@ -0,0 +1,450 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ComputedLane.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_offsetXaxis_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_offsetYaxis_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetXaxis_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetXaxis_specs_3 = { + sizeof(struct ComputedLane__offsetXaxis), + offsetof(struct ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetXaxis, present), + sizeof(((struct ComputedLane__offsetXaxis *)0)->present), + asn_MAP_offsetXaxis_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetXaxis_3 = { + "offsetXaxis", + "offsetXaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_offsetXaxis_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_offsetXaxis_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetSm, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivenLineOffsetLg, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offsetYaxis_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_offsetYaxis_specs_6 = { + sizeof(struct ComputedLane__offsetYaxis), + offsetof(struct ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct ComputedLane__offsetYaxis, present), + sizeof(((struct ComputedLane__offsetYaxis *)0)->present), + asn_MAP_offsetYaxis_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offsetYaxis_6 = { + "offsetYaxis", + "offsetYaxis", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_offsetYaxis_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_offsetYaxis_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ComputedLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_12 = { + sizeof(struct ComputedLane__regional), + offsetof(struct ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_12, + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_12, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_12, + 1, /* Single element */ + &asn_SPC_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "referenceLaneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetXaxis_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offsetXaxis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offsetYaxis_6, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offsetYaxis" + }, + { ATF_POINTER, 4, offsetof(struct ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_Angle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rotateXY" + }, + { ATF_POINTER, 3, offsetof(struct ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "scaleXaxis" + }, + { ATF_POINTER, 2, offsetof(struct ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Scale_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "scaleYaxis" + }, + { ATF_POINTER, 1, offsetof(struct ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_12, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ComputedLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceLaneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offsetXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* offsetYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rotateXY */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scaleXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* scaleYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ComputedLane_specs_1 = { + sizeof(struct ComputedLane), + offsetof(struct ComputedLane, _asn_ctx), + asn_MAP_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_ComputedLane_tags_1, + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ComputedLane_tags_1) + /sizeof(asn_DEF_ComputedLane_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Confidence.c b/src/tmx/Asn_J2735/src/2020/Confidence.c new file mode 100644 index 000000000..fc0af2311 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Confidence.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Confidence.h" + +int +Confidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 200L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Confidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..200) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Confidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 200 } /* (0..200) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Confidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Confidence = { + "Confidence", + "Confidence", + &asn_OP_NativeInteger, + asn_DEF_Confidence_tags_1, + sizeof(asn_DEF_Confidence_tags_1) + /sizeof(asn_DEF_Confidence_tags_1[0]), /* 1 */ + asn_DEF_Confidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Confidence_tags_1) + /sizeof(asn_DEF_Confidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Confidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Confidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Confidence_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ConfidenceSet.c b/src/tmx/Asn_J2735/src/2020/ConfidenceSet.c new file mode 100644 index 000000000..e06a001fd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ConfidenceSet.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ConfidenceSet.h" + +#include "AccelSteerYawRateConfidence.h" +#include "SpeedandHeadingandThrottleConfidence.h" +#include "PositionConfidenceSet.h" +asn_TYPE_member_t asn_MBR_ConfidenceSet_1[] = { + { ATF_POINTER, 7, offsetof(struct ConfidenceSet, accelConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelSteerYawRateConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accelConfidence" + }, + { ATF_POINTER, 6, offsetof(struct ConfidenceSet, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedandHeadingandThrottleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedConfidence" + }, + { ATF_POINTER, 5, offsetof(struct ConfidenceSet, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeConfidence" + }, + { ATF_POINTER, 4, offsetof(struct ConfidenceSet, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidenceSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posConfidence" + }, + { ATF_POINTER, 3, offsetof(struct ConfidenceSet, steerConfidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "steerConfidence" + }, + { ATF_POINTER, 2, offsetof(struct ConfidenceSet, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "headingConfidence" + }, + { ATF_POINTER, 1, offsetof(struct ConfidenceSet, throttleConfidence), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThrottleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "throttleConfidence" + }, +}; +static const int asn_MAP_ConfidenceSet_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConfidenceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accelConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speedConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* posConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* steerConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* headingConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* throttleConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConfidenceSet_specs_1 = { + sizeof(struct ConfidenceSet), + offsetof(struct ConfidenceSet, _asn_ctx), + asn_MAP_ConfidenceSet_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ConfidenceSet_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConfidenceSet = { + "ConfidenceSet", + "ConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_ConfidenceSet_tags_1, + sizeof(asn_DEF_ConfidenceSet_tags_1) + /sizeof(asn_DEF_ConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_ConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ConfidenceSet_tags_1) + /sizeof(asn_DEF_ConfidenceSet_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ConfidenceSet_1, + 7, /* Elements count */ + &asn_SPC_ConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ConnectingLane.c b/src/tmx/Asn_J2735/src/2020/ConnectingLane.c new file mode 100644 index 000000000..28f937ea5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ConnectingLane.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 1, offsetof(struct ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maneuver" + }, +}; +static const int asn_MAP_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectingLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maneuver */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectingLane_specs_1 = { + sizeof(struct ConnectingLane), + offsetof(struct ConnectingLane, _asn_ctx), + asn_MAP_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_ConnectingLane_tags_1, + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectingLane_tags_1) + /sizeof(asn_DEF_ConnectingLane_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Connection.c b/src/tmx/Asn_J2735/src/2020/Connection.c new file mode 100644 index 000000000..97799b245 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Connection.c @@ -0,0 +1,141 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Connection.h" + +#include "IntersectionReferenceID.h" +asn_TYPE_member_t asn_MBR_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectingLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectingLane" + }, + { ATF_POINTER, 4, offsetof(struct Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "remoteIntersection" + }, + { ATF_POINTER, 3, offsetof(struct Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_POINTER, 2, offsetof(struct Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "userClass" + }, + { ATF_POINTER, 1, offsetof(struct Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectionID" + }, +}; +static const int asn_MAP_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Connection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* remoteIntersection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* userClass */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Connection_specs_1 = { + sizeof(struct Connection), + offsetof(struct Connection, _asn_ctx), + asn_MAP_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_Connection_tags_1, + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + asn_DEF_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_Connection_tags_1) + /sizeof(asn_DEF_Connection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Connection_1, + 5, /* Elements count */ + &asn_SPC_Connection_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ConnectionManeuverAssist-addGrpC.c b/src/tmx/Asn_J2735/src/2020/ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 000000000..11562a60d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ConnectionManeuverAssist-addGrpC.c @@ -0,0 +1,87 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ConnectionManeuverAssist-addGrpC.h" + +#include "NodeOffsetPointXY.h" +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionManeuverAssist_addGrpC, vehicleToLanePositions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleToLanePositionList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleToLanePositions" + }, + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist_addGrpC, rsuDistanceFromAnchor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rsuDistanceFromAnchor" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleToLanePositions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rsuDistanceFromAnchor */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct ConnectionManeuverAssist_addGrpC), + offsetof(struct ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ConnectionManeuverAssist_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ConnectionManeuverAssist.c b/src/tmx/Asn_J2735/src/2020/ConnectionManeuverAssist.c new file mode 100644 index 000000000..c1b8a627b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ConnectionManeuverAssist.c @@ -0,0 +1,262 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ConnectionManeuverAssist.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ConnectionManeuverAssist, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct ConnectionManeuverAssist__regional), + offsetof(struct ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectionID" + }, + { ATF_POINTER, 5, offsetof(struct ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "queueLength" + }, + { ATF_POINTER, 4, offsetof(struct ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZoneLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "availableStorageLength" + }, + { ATF_POINTER, 3, offsetof(struct ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WaitOnStopline, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "waitOnStop" + }, + { ATF_POINTER, 2, offsetof(struct ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PedestrianBicycleDetect, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pedBicycleDetect" + }, + { ATF_POINTER, 1, offsetof(struct ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ConnectionManeuverAssist_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* queueLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* availableStorageLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* waitOnStop */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pedBicycleDetect */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConnectionManeuverAssist_specs_1 = { + sizeof(struct ConnectionManeuverAssist), + offsetof(struct ConnectionManeuverAssist, _asn_ctx), + asn_MAP_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ConnectsToList.c b/src/tmx/Asn_J2735/src/2020/ConnectsToList.c new file mode 100644 index 000000000..da71ec49c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ConnectsToList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ConnectsToList.h" + +#include "Connection.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ConnectsToList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Connection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ConnectsToList_specs_1 = { + sizeof(struct ConnectsToList), + offsetof(struct ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ConnectsToList_tags_1, + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnectsToList_tags_1) + /sizeof(asn_DEF_ConnectsToList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ConnectsToList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ConnectsToList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Count.c b/src/tmx/Asn_J2735/src/2020/Count.c new file mode 100644 index 000000000..af449140e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Count.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Count.h" + +int +Count_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 32L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Count_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..32) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_Count_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Count_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Count = { + "Count", + "Count", + &asn_OP_NativeInteger, + asn_DEF_Count_tags_1, + sizeof(asn_DEF_Count_tags_1) + /sizeof(asn_DEF_Count_tags_1[0]), /* 1 */ + asn_DEF_Count_tags_1, /* Same as above */ + sizeof(asn_DEF_Count_tags_1) + /sizeof(asn_DEF_Count_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Count_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Count_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Count_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DDate.c b/src/tmx/Asn_J2735/src/2020/DDate.c new file mode 100644 index 000000000..957a4fb7e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DDate.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DDate.h" + +static asn_TYPE_member_t asn_MBR_DDate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DDate, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "year" + }, + { ATF_NOFLAGS, 0, offsetof(struct DDate, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "month" + }, + { ATF_NOFLAGS, 0, offsetof(struct DDate, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "day" + }, +}; +static const ber_tlv_tag_t asn_DEF_DDate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DDate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* day */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DDate_specs_1 = { + sizeof(struct DDate), + offsetof(struct DDate, _asn_ctx), + asn_MAP_DDate_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DDate = { + "DDate", + "DDate", + &asn_OP_SEQUENCE, + asn_DEF_DDate_tags_1, + sizeof(asn_DEF_DDate_tags_1) + /sizeof(asn_DEF_DDate_tags_1[0]), /* 1 */ + asn_DEF_DDate_tags_1, /* Same as above */ + sizeof(asn_DEF_DDate_tags_1) + /sizeof(asn_DEF_DDate_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_DDate_1, + 3, /* Elements count */ + &asn_SPC_DDate_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DDateTime.c b/src/tmx/Asn_J2735/src/2020/DDateTime.c new file mode 100644 index 000000000..d6f4c9061 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DDateTime.c @@ -0,0 +1,176 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DDateTime.h" + +asn_TYPE_member_t asn_MBR_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 6, offsetof(struct DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "month" + }, + { ATF_POINTER, 5, offsetof(struct DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "day" + }, + { ATF_POINTER, 4, offsetof(struct DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DHour, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_POINTER, 3, offsetof(struct DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMinute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DOffset, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DDateTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DDateTime_specs_1 = { + sizeof(struct DDateTime), + offsetof(struct DDateTime, _asn_ctx), + asn_MAP_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_DDateTime_tags_1, + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DDateTime_tags_1) + /sizeof(asn_DEF_DDateTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DDay.c b/src/tmx/Asn_J2735/src/2020/DDay.c new file mode 100644 index 000000000..c957b7693 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DDay.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DDay.h" + +int +DDay_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 31L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DDay_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DDay_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_DDay_tags_1, + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + asn_DEF_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_DDay_tags_1) + /sizeof(asn_DEF_DDay_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DDay_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DDay_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DDay_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DFullTime.c b/src/tmx/Asn_J2735/src/2020/DFullTime.c new file mode 100644 index 000000000..b27927546 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DFullTime.c @@ -0,0 +1,138 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DFullTime.h" + +static asn_TYPE_member_t asn_MBR_DFullTime_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DFullTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "year" + }, + { ATF_NOFLAGS, 0, offsetof(struct DFullTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "month" + }, + { ATF_NOFLAGS, 0, offsetof(struct DFullTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "day" + }, + { ATF_NOFLAGS, 0, offsetof(struct DFullTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DHour, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_NOFLAGS, 0, offsetof(struct DFullTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMinute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minute" + }, +}; +static const ber_tlv_tag_t asn_DEF_DFullTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DFullTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* minute */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DFullTime_specs_1 = { + sizeof(struct DFullTime), + offsetof(struct DFullTime, _asn_ctx), + asn_MAP_DFullTime_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DFullTime = { + "DFullTime", + "DFullTime", + &asn_OP_SEQUENCE, + asn_DEF_DFullTime_tags_1, + sizeof(asn_DEF_DFullTime_tags_1) + /sizeof(asn_DEF_DFullTime_tags_1[0]), /* 1 */ + asn_DEF_DFullTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DFullTime_tags_1) + /sizeof(asn_DEF_DFullTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_DFullTime_1, + 5, /* Elements count */ + &asn_SPC_DFullTime_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DHour.c b/src/tmx/Asn_J2735/src/2020/DHour.c new file mode 100644 index 000000000..cfb450ca2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DHour.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DHour.h" + +int +DHour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 31L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DHour_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DHour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_DHour_tags_1, + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + asn_DEF_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_DHour_tags_1) + /sizeof(asn_DEF_DHour_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DHour_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DHour_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DHour_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DMinute.c b/src/tmx/Asn_J2735/src/2020/DMinute.c new file mode 100644 index 000000000..e29176e7f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DMinute.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DMinute.h" + +int +DMinute_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 60L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DMinute_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..60) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DMinute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 60 } /* (0..60) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_DMinute_tags_1, + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + asn_DEF_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_DMinute_tags_1) + /sizeof(asn_DEF_DMinute_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DMinute_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DMinute_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DMinute_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DMonth.c b/src/tmx/Asn_J2735/src/2020/DMonth.c new file mode 100644 index 000000000..6f79a388b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DMonth.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DMonth.h" + +int +DMonth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 12L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DMonth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..12) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DMonth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_DMonth_tags_1, + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + asn_DEF_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_DMonth_tags_1) + /sizeof(asn_DEF_DMonth_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DMonth_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DMonth_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DMonth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DMonthDay.c b/src/tmx/Asn_J2735/src/2020/DMonthDay.c new file mode 100644 index 000000000..5172f87dd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DMonthDay.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DMonthDay.h" + +static asn_TYPE_member_t asn_MBR_DMonthDay_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DMonthDay, month), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "month" + }, + { ATF_NOFLAGS, 0, offsetof(struct DMonthDay, day), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDay, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "day" + }, +}; +static const ber_tlv_tag_t asn_DEF_DMonthDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DMonthDay_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* day */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DMonthDay_specs_1 = { + sizeof(struct DMonthDay), + offsetof(struct DMonthDay, _asn_ctx), + asn_MAP_DMonthDay_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DMonthDay = { + "DMonthDay", + "DMonthDay", + &asn_OP_SEQUENCE, + asn_DEF_DMonthDay_tags_1, + sizeof(asn_DEF_DMonthDay_tags_1) + /sizeof(asn_DEF_DMonthDay_tags_1[0]), /* 1 */ + asn_DEF_DMonthDay_tags_1, /* Same as above */ + sizeof(asn_DEF_DMonthDay_tags_1) + /sizeof(asn_DEF_DMonthDay_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_DMonthDay_1, + 2, /* Elements count */ + &asn_SPC_DMonthDay_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DOffset.c b/src/tmx/Asn_J2735/src/2020/DOffset.c new file mode 100644 index 000000000..9848e4822 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DOffset.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DOffset.h" + +int +DOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -840L && value <= 840L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DOffset_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-840..840) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -840, 840 } /* (-840..840) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_DOffset_tags_1, + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + asn_DEF_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_DOffset_tags_1) + /sizeof(asn_DEF_DOffset_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DOffset_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DOffset_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DOffset_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DSRCmsgID.c b/src/tmx/Asn_J2735/src/2020/DSRCmsgID.c new file mode 100644 index 000000000..9e196cd6f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DSRCmsgID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MessageFrame" + * found in "J2735-MessageFrame.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DSRCmsgID.h" + +int +DSRCmsgID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_DSRCmsgID_tags_1, + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_DSRCmsgID_tags_1) + /sizeof(asn_DEF_DSRCmsgID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DSRCmsgID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DSRCmsgID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DSRCmsgID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DSecond.c b/src/tmx/Asn_J2735/src/2020/DSecond.c new file mode 100644 index 000000000..189aa3417 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DSecond.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DSecond.h" + +int +DSecond_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DSecond_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_DSecond_tags_1, + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + asn_DEF_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_DSecond_tags_1) + /sizeof(asn_DEF_DSecond_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DSecond_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DSecond_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DSecond_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DTime.c b/src/tmx/Asn_J2735/src/2020/DTime.c new file mode 100644 index 000000000..ce927312a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DTime.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DTime.h" + +static asn_TYPE_member_t asn_MBR_DTime_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DTime, hour), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DHour, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_NOFLAGS, 0, offsetof(struct DTime, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMinute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_NOFLAGS, 0, offsetof(struct DTime, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct DTime, offset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DOffset, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_DTime_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_DTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* offset */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DTime_specs_1 = { + sizeof(struct DTime), + offsetof(struct DTime, _asn_ctx), + asn_MAP_DTime_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DTime_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DTime = { + "DTime", + "DTime", + &asn_OP_SEQUENCE, + asn_DEF_DTime_tags_1, + sizeof(asn_DEF_DTime_tags_1) + /sizeof(asn_DEF_DTime_tags_1[0]), /* 1 */ + asn_DEF_DTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DTime_tags_1) + /sizeof(asn_DEF_DTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_DTime_1, + 4, /* Elements count */ + &asn_SPC_DTime_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DYear.c b/src/tmx/Asn_J2735/src/2020/DYear.c new file mode 100644 index 000000000..7cb419da7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DYear.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DYear.h" + +int +DYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 4095L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DYear_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_DYear_tags_1, + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + asn_DEF_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_DYear_tags_1) + /sizeof(asn_DEF_DYear_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DYear_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DYear_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DYear_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DYearMonth.c b/src/tmx/Asn_J2735/src/2020/DYearMonth.c new file mode 100644 index 000000000..34df843d2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DYearMonth.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DYearMonth.h" + +static asn_TYPE_member_t asn_MBR_DYearMonth_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DYearMonth, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "year" + }, + { ATF_NOFLAGS, 0, offsetof(struct DYearMonth, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMonth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "month" + }, +}; +static const ber_tlv_tag_t asn_DEF_DYearMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DYearMonth_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* month */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DYearMonth_specs_1 = { + sizeof(struct DYearMonth), + offsetof(struct DYearMonth, _asn_ctx), + asn_MAP_DYearMonth_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DYearMonth = { + "DYearMonth", + "DYearMonth", + &asn_OP_SEQUENCE, + asn_DEF_DYearMonth_tags_1, + sizeof(asn_DEF_DYearMonth_tags_1) + /sizeof(asn_DEF_DYearMonth_tags_1[0]), /* 1 */ + asn_DEF_DYearMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_DYearMonth_tags_1) + /sizeof(asn_DEF_DYearMonth_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_DYearMonth_1, + 2, /* Elements count */ + &asn_SPC_DYearMonth_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DataParameters.c b/src/tmx/Asn_J2735/src/2020/DataParameters.c new file mode 100644 index 000000000..ffaf9fc72 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DataParameters.c @@ -0,0 +1,330 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DataParameters.h" + +static int check_permitted_alphabet_2(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_3(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_4(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +static int check_permitted_alphabet_5(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +static int +memb_processMethod_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 255UL) + && !check_permitted_alphabet_2(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_processAgency_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 255UL) + && !check_permitted_alphabet_3(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_lastCheckedDate_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 255UL) + && !check_permitted_alphabet_4(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_geoidUsed_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 255UL) + && !check_permitted_alphabet_5(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_processMethod_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_processMethod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_processAgency_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_processAgency_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_lastCheckedDate_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_geoidUsed_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct DataParameters, processMethod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_processMethod_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_processMethod_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_processMethod_constraint_1 + }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct DataParameters, processAgency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_processAgency_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_processAgency_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_processAgency_constraint_1 + }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct DataParameters, lastCheckedDate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_lastCheckedDate_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_lastCheckedDate_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_lastCheckedDate_constraint_1 + }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct DataParameters, geoidUsed), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_geoidUsed_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_geoidUsed_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_geoidUsed_constraint_1 + }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DataParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* processMethod */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* processAgency */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lastCheckedDate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* geoidUsed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DataParameters_specs_1 = { + sizeof(struct DataParameters), + offsetof(struct DataParameters, _asn_ctx), + asn_MAP_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_DataParameters_tags_1, + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_DataParameters_tags_1) + /sizeof(asn_DEF_DataParameters_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Day.c b/src/tmx/Asn_J2735/src/2020/Day.c new file mode 100644 index 000000000..7b2d4caca --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Day.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Day.h" + +int +Day_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Day_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Day_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Day_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Day = { + "Day", + "Day", + &asn_OP_NativeInteger, + asn_DEF_Day_tags_1, + sizeof(asn_DEF_Day_tags_1) + /sizeof(asn_DEF_Day_tags_1[0]), /* 1 */ + asn_DEF_Day_tags_1, /* Same as above */ + sizeof(asn_DEF_Day_tags_1) + /sizeof(asn_DEF_Day_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Day_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Day_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Day_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DayOfWeek.c b/src/tmx/Asn_J2735/src/2020/DayOfWeek.c new file mode 100644 index 000000000..0c4e0ee8a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DayOfWeek.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DayOfWeek.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DayOfWeek_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DayOfWeek_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_DayOfWeek_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 6, "monday" }, + { 2, 7, "tuesday" }, + { 3, 9, "wednesday" }, + { 4, 8, "thursday" }, + { 5, 6, "friday" }, + { 6, 8, "saturday" }, + { 7, 6, "sunday" } +}; +static const unsigned int asn_MAP_DayOfWeek_enum2value_1[] = { + 5, /* friday(5) */ + 1, /* monday(1) */ + 6, /* saturday(6) */ + 7, /* sunday(7) */ + 4, /* thursday(4) */ + 2, /* tuesday(2) */ + 0, /* unknown(0) */ + 3 /* wednesday(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DayOfWeek_specs_1 = { + asn_MAP_DayOfWeek_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DayOfWeek_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DayOfWeek_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DayOfWeek = { + "DayOfWeek", + "DayOfWeek", + &asn_OP_NativeEnumerated, + asn_DEF_DayOfWeek_tags_1, + sizeof(asn_DEF_DayOfWeek_tags_1) + /sizeof(asn_DEF_DayOfWeek_tags_1[0]), /* 1 */ + asn_DEF_DayOfWeek_tags_1, /* Same as above */ + sizeof(asn_DEF_DayOfWeek_tags_1) + /sizeof(asn_DEF_DayOfWeek_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DayOfWeek_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DayOfWeek_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DayOfWeek_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DegreesLat.c b/src/tmx/Asn_J2735/src/2020/DegreesLat.c new file mode 100644 index 000000000..439eefd71 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DegreesLat.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DegreesLat.h" + +int +DegreesLat_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -90L && value <= 90L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DegreesLat_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-90..90) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DegreesLat_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -90, 90 } /* (-90..90) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DegreesLat_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DegreesLat = { + "DegreesLat", + "DegreesLat", + &asn_OP_NativeInteger, + asn_DEF_DegreesLat_tags_1, + sizeof(asn_DEF_DegreesLat_tags_1) + /sizeof(asn_DEF_DegreesLat_tags_1[0]), /* 1 */ + asn_DEF_DegreesLat_tags_1, /* Same as above */ + sizeof(asn_DEF_DegreesLat_tags_1) + /sizeof(asn_DEF_DegreesLat_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DegreesLat_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DegreesLat_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DegreesLat_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DegreesLong.c b/src/tmx/Asn_J2735/src/2020/DegreesLong.c new file mode 100644 index 000000000..2ca1802ca --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DegreesLong.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DegreesLong.h" + +int +DegreesLong_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -180L && value <= 180L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DegreesLong_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-180..180) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DegreesLong_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -180, 180 } /* (-180..180) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DegreesLong_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DegreesLong = { + "DegreesLong", + "DegreesLong", + &asn_OP_NativeInteger, + asn_DEF_DegreesLong_tags_1, + sizeof(asn_DEF_DegreesLong_tags_1) + /sizeof(asn_DEF_DegreesLong_tags_1[0]), /* 1 */ + asn_DEF_DegreesLong_tags_1, /* Same as above */ + sizeof(asn_DEF_DegreesLong_tags_1) + /sizeof(asn_DEF_DegreesLong_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DegreesLong_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DegreesLong_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DegreesLong_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DeltaAngle.c b/src/tmx/Asn_J2735/src/2020/DeltaAngle.c new file mode 100644 index 000000000..e6de53b1b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DeltaAngle.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DeltaAngle.h" + +int +DeltaAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -150L && value <= 150L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-150..150) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DeltaAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -150, 150 } /* (-150..150) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_DeltaAngle_tags_1, + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaAngle_tags_1) + /sizeof(asn_DEF_DeltaAngle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DeltaAngle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DeltaAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DeltaAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DeltaTime.c b/src/tmx/Asn_J2735/src/2020/DeltaTime.c new file mode 100644 index 000000000..fe9602188 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DeltaTime.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DeltaTime.h" + +int +DeltaTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -122L && value <= 121L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DeltaTime_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-122..121) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -122, 121 } /* (-122..121) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_DeltaTime_tags_1, + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_DeltaTime_tags_1) + /sizeof(asn_DEF_DeltaTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DeltaTime_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DeltaTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DeltaTime_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DescriptiveName.c b/src/tmx/Asn_J2735/src/2020/DescriptiveName.c new file mode 100644 index 000000000..7288aff8b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DescriptiveName.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DescriptiveName.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +int +DescriptiveName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 63UL) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DescriptiveName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_DescriptiveName_tags_1, + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_DescriptiveName_tags_1) + /sizeof(asn_DEF_DescriptiveName_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DescriptiveName_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DescriptiveName_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DescriptiveName_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DirectionOfUse.c b/src/tmx/Asn_J2735/src/2020/DirectionOfUse.c new file mode 100644 index 000000000..e9f4313e6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DirectionOfUse.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DirectionOfUse.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DirectionOfUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DirectionOfUse_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_DirectionOfUse_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 7, "forward" }, + { 2, 7, "reverse" }, + { 3, 4, "both" } +}; +static const unsigned int asn_MAP_DirectionOfUse_enum2value_1[] = { + 3, /* both(3) */ + 1, /* forward(1) */ + 2, /* reverse(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DirectionOfUse_specs_1 = { + asn_MAP_DirectionOfUse_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DirectionOfUse_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DirectionOfUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DirectionOfUse = { + "DirectionOfUse", + "DirectionOfUse", + &asn_OP_NativeEnumerated, + asn_DEF_DirectionOfUse_tags_1, + sizeof(asn_DEF_DirectionOfUse_tags_1) + /sizeof(asn_DEF_DirectionOfUse_tags_1[0]), /* 1 */ + asn_DEF_DirectionOfUse_tags_1, /* Same as above */ + sizeof(asn_DEF_DirectionOfUse_tags_1) + /sizeof(asn_DEF_DirectionOfUse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DirectionOfUse_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DirectionOfUse_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DirectionOfUse_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DisabledVehicle.c b/src/tmx/Asn_J2735/src/2020/DisabledVehicle.c new file mode 100644 index 000000000..aee0cdc98 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DisabledVehicle.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DisabledVehicle.h" + +static int +memb_statusDetails_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 523L && value <= 541L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_statusDetails_constr_2 CC_NOTUSED = { + { 2, 1 } /* (523..541) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_statusDetails_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 523, 541 } /* (523..541) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_DisabledVehicle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DisabledVehicle, statusDetails), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_statusDetails_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_statusDetails_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_statusDetails_constraint_1 + }, + 0, 0, /* No default value */ + "statusDetails" + }, + { ATF_POINTER, 1, offsetof(struct DisabledVehicle, locationDetails), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GenericLocations, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "locationDetails" + }, +}; +static const int asn_MAP_DisabledVehicle_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_DisabledVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DisabledVehicle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* statusDetails */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* locationDetails */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DisabledVehicle_specs_1 = { + sizeof(struct DisabledVehicle), + offsetof(struct DisabledVehicle, _asn_ctx), + asn_MAP_DisabledVehicle_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_DisabledVehicle_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DisabledVehicle = { + "DisabledVehicle", + "DisabledVehicle", + &asn_OP_SEQUENCE, + asn_DEF_DisabledVehicle_tags_1, + sizeof(asn_DEF_DisabledVehicle_tags_1) + /sizeof(asn_DEF_DisabledVehicle_tags_1[0]), /* 1 */ + asn_DEF_DisabledVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_DisabledVehicle_tags_1) + /sizeof(asn_DEF_DisabledVehicle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_DisabledVehicle_1, + 2, /* Elements count */ + &asn_SPC_DisabledVehicle_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DistanceUnits.c b/src/tmx/Asn_J2735/src/2020/DistanceUnits.c new file mode 100644 index 000000000..8882fdc6b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DistanceUnits.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DistanceUnits.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DistanceUnits_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DistanceUnits_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_DistanceUnits_value2enum_1[] = { + { 0, 10, "centimeter" }, + { 1, 5, "cm2-5" }, + { 2, 9, "decimeter" }, + { 3, 5, "meter" }, + { 4, 9, "kilometer" }, + { 5, 4, "foot" }, + { 6, 4, "yard" }, + { 7, 4, "mile" } +}; +static const unsigned int asn_MAP_DistanceUnits_enum2value_1[] = { + 0, /* centimeter(0) */ + 1, /* cm2-5(1) */ + 2, /* decimeter(2) */ + 5, /* foot(5) */ + 4, /* kilometer(4) */ + 3, /* meter(3) */ + 7, /* mile(7) */ + 6 /* yard(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DistanceUnits_specs_1 = { + asn_MAP_DistanceUnits_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DistanceUnits_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DistanceUnits_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DistanceUnits = { + "DistanceUnits", + "DistanceUnits", + &asn_OP_NativeEnumerated, + asn_DEF_DistanceUnits_tags_1, + sizeof(asn_DEF_DistanceUnits_tags_1) + /sizeof(asn_DEF_DistanceUnits_tags_1[0]), /* 1 */ + asn_DEF_DistanceUnits_tags_1, /* Same as above */ + sizeof(asn_DEF_DistanceUnits_tags_1) + /sizeof(asn_DEF_DistanceUnits_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DistanceUnits_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DistanceUnits_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DistanceUnits_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DriveAxleLiftAirPressure.c b/src/tmx/Asn_J2735/src/2020/DriveAxleLiftAirPressure.c new file mode 100644 index 000000000..38fb19e2d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DriveAxleLiftAirPressure.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DriveAxleLiftAirPressure.h" + +int +DriveAxleLiftAirPressure_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 1000L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DriveAxleLiftAirPressure_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1000) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DriveAxleLiftAirPressure_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1000 } /* (0..1000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DriveAxleLiftAirPressure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveAxleLiftAirPressure = { + "DriveAxleLiftAirPressure", + "DriveAxleLiftAirPressure", + &asn_OP_NativeInteger, + asn_DEF_DriveAxleLiftAirPressure_tags_1, + sizeof(asn_DEF_DriveAxleLiftAirPressure_tags_1) + /sizeof(asn_DEF_DriveAxleLiftAirPressure_tags_1[0]), /* 1 */ + asn_DEF_DriveAxleLiftAirPressure_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveAxleLiftAirPressure_tags_1) + /sizeof(asn_DEF_DriveAxleLiftAirPressure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DriveAxleLiftAirPressure_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DriveAxleLiftAirPressure_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DriveAxleLiftAirPressure_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DriveAxleLocation.c b/src/tmx/Asn_J2735/src/2020/DriveAxleLocation.c new file mode 100644 index 000000000..2f98b25f3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DriveAxleLocation.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DriveAxleLocation.h" + +int +DriveAxleLocation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DriveAxleLocation_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DriveAxleLocation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DriveAxleLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveAxleLocation = { + "DriveAxleLocation", + "DriveAxleLocation", + &asn_OP_NativeInteger, + asn_DEF_DriveAxleLocation_tags_1, + sizeof(asn_DEF_DriveAxleLocation_tags_1) + /sizeof(asn_DEF_DriveAxleLocation_tags_1[0]), /* 1 */ + asn_DEF_DriveAxleLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveAxleLocation_tags_1) + /sizeof(asn_DEF_DriveAxleLocation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DriveAxleLocation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DriveAxleLocation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DriveAxleLocation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DriveAxleLubePressure.c b/src/tmx/Asn_J2735/src/2020/DriveAxleLubePressure.c new file mode 100644 index 000000000..ac23b3cdc --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DriveAxleLubePressure.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DriveAxleLubePressure.h" + +int +DriveAxleLubePressure_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 250L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DriveAxleLubePressure_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..250) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DriveAxleLubePressure_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 250 } /* (0..250) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DriveAxleLubePressure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveAxleLubePressure = { + "DriveAxleLubePressure", + "DriveAxleLubePressure", + &asn_OP_NativeInteger, + asn_DEF_DriveAxleLubePressure_tags_1, + sizeof(asn_DEF_DriveAxleLubePressure_tags_1) + /sizeof(asn_DEF_DriveAxleLubePressure_tags_1[0]), /* 1 */ + asn_DEF_DriveAxleLubePressure_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveAxleLubePressure_tags_1) + /sizeof(asn_DEF_DriveAxleLubePressure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DriveAxleLubePressure_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DriveAxleLubePressure_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DriveAxleLubePressure_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DriveAxleTemperature.c b/src/tmx/Asn_J2735/src/2020/DriveAxleTemperature.c new file mode 100644 index 000000000..84cdd7b85 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DriveAxleTemperature.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DriveAxleTemperature.h" + +int +DriveAxleTemperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -40L && value <= 210L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DriveAxleTemperature_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-40..210) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DriveAxleTemperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -40, 210 } /* (-40..210) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DriveAxleTemperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DriveAxleTemperature = { + "DriveAxleTemperature", + "DriveAxleTemperature", + &asn_OP_NativeInteger, + asn_DEF_DriveAxleTemperature_tags_1, + sizeof(asn_DEF_DriveAxleTemperature_tags_1) + /sizeof(asn_DEF_DriveAxleTemperature_tags_1[0]), /* 1 */ + asn_DEF_DriveAxleTemperature_tags_1, /* Same as above */ + sizeof(asn_DEF_DriveAxleTemperature_tags_1) + /sizeof(asn_DEF_DriveAxleTemperature_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DriveAxleTemperature_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DriveAxleTemperature_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DriveAxleTemperature_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DrivenLineOffsetLg.c b/src/tmx/Asn_J2735/src/2020/DrivenLineOffsetLg.c new file mode 100644 index 000000000..c709abc20 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DrivenLineOffsetLg.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DrivenLineOffsetLg.h" + +int +DrivenLineOffsetLg_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DrivenLineOffsetLg_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DrivenLineOffsetLg_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DrivenLineOffsetLg_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DrivenLineOffsetSm.c b/src/tmx/Asn_J2735/src/2020/DrivenLineOffsetSm.c new file mode 100644 index 000000000..74462a8d2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DrivenLineOffsetSm.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DrivenLineOffsetSm.h" + +int +DrivenLineOffsetSm_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2047L && value <= 2047L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2047..2047) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2047, 2047 } /* (-2047..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DrivenLineOffsetSm_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DrivenLineOffsetSm_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DrivenLineOffsetSm_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/DrivingWheelAngle.c b/src/tmx/Asn_J2735/src/2020/DrivingWheelAngle.c new file mode 100644 index 000000000..467354d50 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/DrivingWheelAngle.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "DrivingWheelAngle.h" + +int +DrivingWheelAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_DrivingWheelAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_DrivingWheelAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_DrivingWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DrivingWheelAngle = { + "DrivingWheelAngle", + "DrivingWheelAngle", + &asn_OP_NativeInteger, + asn_DEF_DrivingWheelAngle_tags_1, + sizeof(asn_DEF_DrivingWheelAngle_tags_1) + /sizeof(asn_DEF_DrivingWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_DrivingWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_DrivingWheelAngle_tags_1) + /sizeof(asn_DEF_DrivingWheelAngle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_DrivingWheelAngle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_DrivingWheelAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + DrivingWheelAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Duration.c b/src/tmx/Asn_J2735/src/2020/Duration.c new file mode 100644 index 000000000..c2f048916 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Duration.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Duration.h" + +int +Duration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 3600L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Duration_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3600) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_Duration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3600 } /* (0..3600) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Duration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Duration = { + "Duration", + "Duration", + &asn_OP_NativeInteger, + asn_DEF_Duration_tags_1, + sizeof(asn_DEF_Duration_tags_1) + /sizeof(asn_DEF_Duration_tags_1[0]), /* 1 */ + asn_DEF_Duration_tags_1, /* Same as above */ + sizeof(asn_DEF_Duration_tags_1) + /sizeof(asn_DEF_Duration_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Duration_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Duration_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Duration_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EXTERNAL.c b/src/tmx/Asn_J2735/src/2020/EXTERNAL.c new file mode 100644 index 000000000..775cdcb73 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EXTERNAL.c @@ -0,0 +1,228 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ASN1C-UsefulInformationObjectClasses" + * found in "/usr/local/share/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EXTERNAL.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_encoding_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_encoding_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_encoding_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct EXTERNAL__encoding, choice.single_ASN1_type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ANY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "single-ASN1-type" + }, + { ATF_NOFLAGS, 0, offsetof(struct EXTERNAL__encoding, choice.octet_aligned), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "octet-aligned" + }, + { ATF_NOFLAGS, 0, offsetof(struct EXTERNAL__encoding, choice.arbitrary), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "arbitrary" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_encoding_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* single-ASN1-type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* octet-aligned */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* arbitrary */ +}; +static asn_CHOICE_specifics_t asn_SPC_encoding_specs_5 = { + sizeof(struct EXTERNAL__encoding), + offsetof(struct EXTERNAL__encoding, _asn_ctx), + offsetof(struct EXTERNAL__encoding, present), + sizeof(((struct EXTERNAL__encoding *)0)->present), + asn_MAP_encoding_tag2el_5, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_encoding_5 = { + "encoding", + "encoding", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_encoding_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_encoding_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_encoding_5, + 3, /* Elements count */ + &asn_SPC_encoding_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_EXTERNAL_1[] = { + { ATF_POINTER, 3, offsetof(struct EXTERNAL, direct_reference), + (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)), + 0, + &asn_DEF_OBJECT_IDENTIFIER, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "direct-reference" + }, + { ATF_POINTER, 2, offsetof(struct EXTERNAL, indirect_reference), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "indirect-reference" + }, + { ATF_POINTER, 1, offsetof(struct EXTERNAL, data_value_descriptor), + (ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), + 0, + &asn_DEF_ObjectDescriptor, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "data-value-descriptor" + }, + { ATF_NOFLAGS, 0, offsetof(struct EXTERNAL, encoding), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_encoding_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "encoding" + }, +}; +static const int asn_MAP_EXTERNAL_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_EXTERNAL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EXTERNAL_tag2el_1[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* indirect-reference */ + { (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)), 0, 0, 0 }, /* direct-reference */ + { (ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), 2, 0, 0 }, /* data-value-descriptor */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* single-ASN1-type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* octet-aligned */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 } /* arbitrary */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_EXTERNAL_specs_1 = { + sizeof(struct EXTERNAL), + offsetof(struct EXTERNAL, _asn_ctx), + asn_MAP_EXTERNAL_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_EXTERNAL_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EXTERNAL = { + "EXTERNAL", + "EXTERNAL", + &asn_OP_SEQUENCE, + asn_DEF_EXTERNAL_tags_1, + sizeof(asn_DEF_EXTERNAL_tags_1) + /sizeof(asn_DEF_EXTERNAL_tags_1[0]) - 1, /* 1 */ + asn_DEF_EXTERNAL_tags_1, /* Same as above */ + sizeof(asn_DEF_EXTERNAL_tags_1) + /sizeof(asn_DEF_EXTERNAL_tags_1[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_EXTERNAL_1, + 4, /* Elements count */ + &asn_SPC_EXTERNAL_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ElevationConfidence.c b/src/tmx/Asn_J2735/src/2020/ElevationConfidence.c new file mode 100644 index 000000000..112fef1e2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ElevationConfidence.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ElevationConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ElevationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_ElevationConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "elev-500-00" }, + { 2, 11, "elev-200-00" }, + { 3, 11, "elev-100-00" }, + { 4, 11, "elev-050-00" }, + { 5, 11, "elev-020-00" }, + { 6, 11, "elev-010-00" }, + { 7, 11, "elev-005-00" }, + { 8, 11, "elev-002-00" }, + { 9, 11, "elev-001-00" }, + { 10, 11, "elev-000-50" }, + { 11, 11, "elev-000-20" }, + { 12, 11, "elev-000-10" }, + { 13, 11, "elev-000-05" }, + { 14, 11, "elev-000-02" }, + { 15, 11, "elev-000-01" } +}; +static const unsigned int asn_MAP_ElevationConfidence_enum2value_1[] = { + 15, /* elev-000-01(15) */ + 14, /* elev-000-02(14) */ + 13, /* elev-000-05(13) */ + 12, /* elev-000-10(12) */ + 11, /* elev-000-20(11) */ + 10, /* elev-000-50(10) */ + 9, /* elev-001-00(9) */ + 8, /* elev-002-00(8) */ + 7, /* elev-005-00(7) */ + 6, /* elev-010-00(6) */ + 5, /* elev-020-00(5) */ + 4, /* elev-050-00(4) */ + 3, /* elev-100-00(3) */ + 2, /* elev-200-00(2) */ + 1, /* elev-500-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ElevationConfidence_specs_1 = { + asn_MAP_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ElevationConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ElevationConfidence_tags_1, + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ElevationConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ElevationConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ElevationConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EmergencyDetails.c b/src/tmx/Asn_J2735/src/2020/EmergencyDetails.c new file mode 100644 index 000000000..7c7680397 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EmergencyDetails.c @@ -0,0 +1,159 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EmergencyDetails.h" + +#include "PrivilegedEvents.h" +asn_TYPE_member_t asn_MBR_EmergencyDetails_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EmergencyDetails, notUsed), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSPindex, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "notUsed" + }, + { ATF_NOFLAGS, 0, offsetof(struct EmergencyDetails, sirenUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SirenInUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sirenUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct EmergencyDetails, lightsUse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightbarInUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lightsUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct EmergencyDetails, multi), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiVehicleResponse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "multi" + }, + { ATF_POINTER, 2, offsetof(struct EmergencyDetails, events), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrivilegedEvents, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "events" + }, + { ATF_POINTER, 1, offsetof(struct EmergencyDetails, responseType), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResponseType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "responseType" + }, +}; +static const int asn_MAP_EmergencyDetails_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_EmergencyDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EmergencyDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* notUsed */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sirenUse */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lightsUse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* multi */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* events */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* responseType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EmergencyDetails_specs_1 = { + sizeof(struct EmergencyDetails), + offsetof(struct EmergencyDetails, _asn_ctx), + asn_MAP_EmergencyDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_EmergencyDetails_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyDetails = { + "EmergencyDetails", + "EmergencyDetails", + &asn_OP_SEQUENCE, + asn_DEF_EmergencyDetails_tags_1, + sizeof(asn_DEF_EmergencyDetails_tags_1) + /sizeof(asn_DEF_EmergencyDetails_tags_1[0]), /* 1 */ + asn_DEF_EmergencyDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyDetails_tags_1) + /sizeof(asn_DEF_EmergencyDetails_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_EmergencyDetails_1, + 6, /* Elements count */ + &asn_SPC_EmergencyDetails_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EmergencyVehicleAlert.c b/src/tmx/Asn_J2735/src/2020/EmergencyVehicleAlert.c new file mode 100644 index 000000000..1cf133c96 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EmergencyVehicleAlert.c @@ -0,0 +1,353 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EmergencyVehicleAlert" + * found in "J2735-EmergencyVehicleAlert.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EmergencyVehicleAlert.h" + +#include "EmergencyDetails.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_EmergencyVehicleAlert, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_12 = { + sizeof(struct EmergencyVehicleAlert__regional), + offsetof(struct EmergencyVehicleAlert__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_12, + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_12, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_12, + 1, /* Single element */ + &asn_SPC_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EmergencyVehicleAlert_1[] = { + { ATF_POINTER, 2, offsetof(struct EmergencyVehicleAlert, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct EmergencyVehicleAlert, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct EmergencyVehicleAlert, rsaMsg), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSideAlert, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rsaMsg" + }, + { ATF_POINTER, 8, offsetof(struct EmergencyVehicleAlert, responseType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResponseType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "responseType" + }, + { ATF_POINTER, 7, offsetof(struct EmergencyVehicleAlert, details), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmergencyDetails, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "details" + }, + { ATF_POINTER, 6, offsetof(struct EmergencyVehicleAlert, mass), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mass" + }, + { ATF_POINTER, 5, offsetof(struct EmergencyVehicleAlert, basicType), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_POINTER, 4, offsetof(struct EmergencyVehicleAlert, vehicleType), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleGroupAffected, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleType" + }, + { ATF_POINTER, 3, offsetof(struct EmergencyVehicleAlert, responseEquip), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IncidentResponseEquipment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "responseEquip" + }, + { ATF_POINTER, 2, offsetof(struct EmergencyVehicleAlert, responderType), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResponderGroupAffected, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "responderType" + }, + { ATF_POINTER, 1, offsetof(struct EmergencyVehicleAlert, regional), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_regional_12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_12, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_EmergencyVehicleAlert_oms_1[] = { 0, 1, 3, 4, 5, 6, 7, 8, 9, 10 }; +static const ber_tlv_tag_t asn_DEF_EmergencyVehicleAlert_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EmergencyVehicleAlert_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rsaMsg */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* responseType */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* details */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* mass */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* vehicleType */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* responseEquip */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* responderType */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EmergencyVehicleAlert_specs_1 = { + sizeof(struct EmergencyVehicleAlert), + offsetof(struct EmergencyVehicleAlert, _asn_ctx), + asn_MAP_EmergencyVehicleAlert_tag2el_1, + 11, /* Count of tags in the map */ + asn_MAP_EmergencyVehicleAlert_oms_1, /* Optional members */ + 10, 0, /* Root/Additions */ + 11, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EmergencyVehicleAlert = { + "EmergencyVehicleAlert", + "EmergencyVehicleAlert", + &asn_OP_SEQUENCE, + asn_DEF_EmergencyVehicleAlert_tags_1, + sizeof(asn_DEF_EmergencyVehicleAlert_tags_1) + /sizeof(asn_DEF_EmergencyVehicleAlert_tags_1[0]), /* 1 */ + asn_DEF_EmergencyVehicleAlert_tags_1, /* Same as above */ + sizeof(asn_DEF_EmergencyVehicleAlert_tags_1) + /sizeof(asn_DEF_EmergencyVehicleAlert_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_EmergencyVehicleAlert_1, + 11, /* Elements count */ + &asn_SPC_EmergencyVehicleAlert_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EmissionType.c b/src/tmx/Asn_J2735/src/2020/EmissionType.c new file mode 100644 index 000000000..0581da271 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EmissionType.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EmissionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_EmissionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_EmissionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_EmissionType_value2enum_1[] = { + { 0, 5, "typeA" }, + { 1, 5, "typeB" }, + { 2, 5, "typeC" }, + { 3, 5, "typeD" }, + { 4, 5, "typeE" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EmissionType_enum2value_1[] = { + 0, /* typeA(0) */ + 1, /* typeB(1) */ + 2, /* typeC(2) */ + 3, /* typeD(3) */ + 4 /* typeE(4) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EmissionType_specs_1 = { + asn_MAP_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EmissionType_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_EmissionType_tags_1, + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_EmissionType_tags_1) + /sizeof(asn_DEF_EmissionType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_EmissionType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_EmissionType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EnabledLaneList.c b/src/tmx/Asn_J2735/src/2020/EnabledLaneList.c new file mode 100644 index 000000000..e7f265b28 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EnabledLaneList.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EnabledLaneList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_EnabledLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EnabledLaneList_specs_1 = { + sizeof(struct EnabledLaneList), + offsetof(struct EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EnabledLaneList_tags_1, + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_EnabledLaneList_tags_1) + /sizeof(asn_DEF_EnabledLaneList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_EnabledLaneList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_EnabledLaneList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EssMobileFriction.c b/src/tmx/Asn_J2735/src/2020/EssMobileFriction.c new file mode 100644 index 000000000..d375581f4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EssMobileFriction.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NTCIP" + * found in "J2735-NTCIP.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EssMobileFriction.h" + +int +EssMobileFriction_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 101L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_EssMobileFriction_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..101) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_EssMobileFriction_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 101 } /* (0..101) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_EssMobileFriction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EssMobileFriction = { + "EssMobileFriction", + "EssMobileFriction", + &asn_OP_NativeInteger, + asn_DEF_EssMobileFriction_tags_1, + sizeof(asn_DEF_EssMobileFriction_tags_1) + /sizeof(asn_DEF_EssMobileFriction_tags_1[0]), /* 1 */ + asn_DEF_EssMobileFriction_tags_1, /* Same as above */ + sizeof(asn_DEF_EssMobileFriction_tags_1) + /sizeof(asn_DEF_EssMobileFriction_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_EssMobileFriction_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_EssMobileFriction_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + EssMobileFriction_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EssPrecipRate.c b/src/tmx/Asn_J2735/src/2020/EssPrecipRate.c new file mode 100644 index 000000000..109e1b352 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EssPrecipRate.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NTCIP" + * found in "J2735-NTCIP.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EssPrecipRate.h" + +int +EssPrecipRate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_EssPrecipRate_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_EssPrecipRate_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_EssPrecipRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EssPrecipRate = { + "EssPrecipRate", + "EssPrecipRate", + &asn_OP_NativeInteger, + asn_DEF_EssPrecipRate_tags_1, + sizeof(asn_DEF_EssPrecipRate_tags_1) + /sizeof(asn_DEF_EssPrecipRate_tags_1[0]), /* 1 */ + asn_DEF_EssPrecipRate_tags_1, /* Same as above */ + sizeof(asn_DEF_EssPrecipRate_tags_1) + /sizeof(asn_DEF_EssPrecipRate_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_EssPrecipRate_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_EssPrecipRate_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + EssPrecipRate_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EssPrecipSituation.c b/src/tmx/Asn_J2735/src/2020/EssPrecipSituation.c new file mode 100644 index 000000000..685ff08a3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EssPrecipSituation.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NTCIP" + * found in "J2735-NTCIP.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EssPrecipSituation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_EssPrecipSituation_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_EssPrecipSituation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 14 } /* (0..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_EssPrecipSituation_value2enum_1[] = { + { 1, 5, "other" }, + { 2, 7, "unknown" }, + { 3, 15, "noPrecipitation" }, + { 4, 18, "unidentifiedSlight" }, + { 5, 20, "unidentifiedModerate" }, + { 6, 17, "unidentifiedHeavy" }, + { 7, 10, "snowSlight" }, + { 8, 12, "snowModerate" }, + { 9, 9, "snowHeavy" }, + { 10, 10, "rainSlight" }, + { 11, 12, "rainModerate" }, + { 12, 9, "rainHeavy" }, + { 13, 25, "frozenPrecipitationSlight" }, + { 14, 27, "frozenPrecipitationModerate" }, + { 15, 24, "frozenPrecipitationHeavy" } +}; +static const unsigned int asn_MAP_EssPrecipSituation_enum2value_1[] = { + 14, /* frozenPrecipitationHeavy(15) */ + 13, /* frozenPrecipitationModerate(14) */ + 12, /* frozenPrecipitationSlight(13) */ + 2, /* noPrecipitation(3) */ + 0, /* other(1) */ + 11, /* rainHeavy(12) */ + 10, /* rainModerate(11) */ + 9, /* rainSlight(10) */ + 8, /* snowHeavy(9) */ + 7, /* snowModerate(8) */ + 6, /* snowSlight(7) */ + 5, /* unidentifiedHeavy(6) */ + 4, /* unidentifiedModerate(5) */ + 3, /* unidentifiedSlight(4) */ + 1 /* unknown(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EssPrecipSituation_specs_1 = { + asn_MAP_EssPrecipSituation_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EssPrecipSituation_enum2value_1, /* N => "tag"; sorted by N */ + 15, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EssPrecipSituation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EssPrecipSituation = { + "EssPrecipSituation", + "EssPrecipSituation", + &asn_OP_NativeEnumerated, + asn_DEF_EssPrecipSituation_tags_1, + sizeof(asn_DEF_EssPrecipSituation_tags_1) + /sizeof(asn_DEF_EssPrecipSituation_tags_1[0]), /* 1 */ + asn_DEF_EssPrecipSituation_tags_1, /* Same as above */ + sizeof(asn_DEF_EssPrecipSituation_tags_1) + /sizeof(asn_DEF_EssPrecipSituation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_EssPrecipSituation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_EssPrecipSituation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EssPrecipSituation_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EssPrecipYesNo.c b/src/tmx/Asn_J2735/src/2020/EssPrecipYesNo.c new file mode 100644 index 000000000..2f1fc7858 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EssPrecipYesNo.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NTCIP" + * found in "J2735-NTCIP.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EssPrecipYesNo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_EssPrecipYesNo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_EssPrecipYesNo_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_EssPrecipYesNo_value2enum_1[] = { + { 1, 6, "precip" }, + { 2, 8, "noPrecip" }, + { 3, 5, "error" } +}; +static const unsigned int asn_MAP_EssPrecipYesNo_enum2value_1[] = { + 2, /* error(3) */ + 1, /* noPrecip(2) */ + 0 /* precip(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_EssPrecipYesNo_specs_1 = { + asn_MAP_EssPrecipYesNo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EssPrecipYesNo_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EssPrecipYesNo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EssPrecipYesNo = { + "EssPrecipYesNo", + "EssPrecipYesNo", + &asn_OP_NativeEnumerated, + asn_DEF_EssPrecipYesNo_tags_1, + sizeof(asn_DEF_EssPrecipYesNo_tags_1) + /sizeof(asn_DEF_EssPrecipYesNo_tags_1[0]), /* 1 */ + asn_DEF_EssPrecipYesNo_tags_1, /* Same as above */ + sizeof(asn_DEF_EssPrecipYesNo_tags_1) + /sizeof(asn_DEF_EssPrecipYesNo_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_EssPrecipYesNo_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_EssPrecipYesNo_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EssPrecipYesNo_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EssSolarRadiation.c b/src/tmx/Asn_J2735/src/2020/EssSolarRadiation.c new file mode 100644 index 000000000..e8de9242d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EssSolarRadiation.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NTCIP" + * found in "J2735-NTCIP.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EssSolarRadiation.h" + +int +EssSolarRadiation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_EssSolarRadiation_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_EssSolarRadiation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_EssSolarRadiation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EssSolarRadiation = { + "EssSolarRadiation", + "EssSolarRadiation", + &asn_OP_NativeInteger, + asn_DEF_EssSolarRadiation_tags_1, + sizeof(asn_DEF_EssSolarRadiation_tags_1) + /sizeof(asn_DEF_EssSolarRadiation_tags_1[0]), /* 1 */ + asn_DEF_EssSolarRadiation_tags_1, /* Same as above */ + sizeof(asn_DEF_EssSolarRadiation_tags_1) + /sizeof(asn_DEF_EssSolarRadiation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_EssSolarRadiation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_EssSolarRadiation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + EssSolarRadiation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/EventDescription.c b/src/tmx/Asn_J2735/src/2020/EventDescription.c new file mode 100644 index 000000000..2359a5579 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/EventDescription.c @@ -0,0 +1,365 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "EventDescription.h" + +#include "RegionalExtension.h" +static int +memb_description_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 8UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_description_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_description_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_description_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_description_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_description_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_description_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_description_specs_3 = { + sizeof(struct EventDescription__description), + offsetof(struct EventDescription__description, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_description_3 = { + "description", + "description", + &asn_OP_SEQUENCE_OF, + asn_DEF_description_tags_3, + sizeof(asn_DEF_description_tags_3) + /sizeof(asn_DEF_description_tags_3[0]) - 1, /* 1 */ + asn_DEF_description_tags_3, /* Same as above */ + sizeof(asn_DEF_description_tags_3) + /sizeof(asn_DEF_description_tags_3[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_description_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_description_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_description_3, + 1, /* Single element */ + &asn_SPC_description_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_EventDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct EventDescription__regional), + offsetof(struct EventDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EventDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventDescription, typeEvent), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "typeEvent" + }, + { ATF_POINTER, 5, offsetof(struct EventDescription, description), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_description_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_description_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_description_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_description_constraint_1 + }, + 0, 0, /* No default value */ + "description" + }, + { ATF_POINTER, 4, offsetof(struct EventDescription, priority), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Priority, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "priority" + }, + { ATF_POINTER, 3, offsetof(struct EventDescription, heading), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingSlice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 2, offsetof(struct EventDescription, extent), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Extent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "extent" + }, + { ATF_POINTER, 1, offsetof(struct EventDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_EventDescription_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_EventDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EventDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* typeEvent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* description */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* priority */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* extent */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EventDescription_specs_1 = { + sizeof(struct EventDescription), + offsetof(struct EventDescription, _asn_ctx), + asn_MAP_EventDescription_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_EventDescription_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventDescription = { + "EventDescription", + "EventDescription", + &asn_OP_SEQUENCE, + asn_DEF_EventDescription_tags_1, + sizeof(asn_DEF_EventDescription_tags_1) + /sizeof(asn_DEF_EventDescription_tags_1[0]), /* 1 */ + asn_DEF_EventDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_EventDescription_tags_1) + /sizeof(asn_DEF_EventDescription_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_EventDescription_1, + 6, /* Elements count */ + &asn_SPC_EventDescription_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ExitService.c b/src/tmx/Asn_J2735/src/2020/ExitService.c new file mode 100644 index 000000000..1da97dcf8 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ExitService.c @@ -0,0 +1,215 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ExitService.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_item_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_item_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ExitService_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ExitService_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_item_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ExitService__Member__item, choice.itis), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "itis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ExitService__Member__item, choice.text), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIStextPhrase, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "text" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_item_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* itis */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* text */ +}; +static asn_CHOICE_specifics_t asn_SPC_item_specs_3 = { + sizeof(struct ExitService__Member__item), + offsetof(struct ExitService__Member__item, _asn_ctx), + offsetof(struct ExitService__Member__item, present), + sizeof(((struct ExitService__Member__item *)0)->present), + asn_MAP_item_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_item_3 = { + "item", + "item", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_item_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_item_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_item_3, + 2, /* Elements count */ + &asn_SPC_item_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_Member_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ExitService__Member, item), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_item_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "item" + }, +}; +static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* item */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { + sizeof(struct ExitService__Member), + offsetof(struct ExitService__Member, _asn_ctx), + asn_MAP_Member_tag2el_2, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Member_2 = { + "SEQUENCE", + "SEQUENCE", + &asn_OP_SEQUENCE, + asn_DEF_Member_tags_2, + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + asn_DEF_Member_tags_2, /* Same as above */ + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Member_2, + 1, /* Elements count */ + &asn_SPC_Member_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ExitService_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Member_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ExitService_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ExitService_specs_1 = { + sizeof(struct ExitService), + offsetof(struct ExitService, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ExitService = { + "ExitService", + "ExitService", + &asn_OP_SEQUENCE_OF, + asn_DEF_ExitService_tags_1, + sizeof(asn_DEF_ExitService_tags_1) + /sizeof(asn_DEF_ExitService_tags_1[0]), /* 1 */ + asn_DEF_ExitService_tags_1, /* Same as above */ + sizeof(asn_DEF_ExitService_tags_1) + /sizeof(asn_DEF_ExitService_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ExitService_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ExitService_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ExitService_1, + 1, /* Single element */ + &asn_SPC_ExitService_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Extent.c b/src/tmx/Asn_J2735/src/2020/Extent.c new file mode 100644 index 000000000..9cbacf48e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Extent.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Extent.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Extent_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Extent_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_Extent_value2enum_1[] = { + { 0, 16, "useInstantlyOnly" }, + { 1, 13, "useFor3meters" }, + { 2, 14, "useFor10meters" }, + { 3, 14, "useFor50meters" }, + { 4, 15, "useFor100meters" }, + { 5, 15, "useFor500meters" }, + { 6, 16, "useFor1000meters" }, + { 7, 16, "useFor5000meters" }, + { 8, 17, "useFor10000meters" }, + { 9, 17, "useFor50000meters" }, + { 10, 18, "useFor100000meters" }, + { 11, 18, "useFor500000meters" }, + { 12, 19, "useFor1000000meters" }, + { 13, 19, "useFor5000000meters" }, + { 14, 20, "useFor10000000meters" }, + { 15, 7, "forever" } +}; +static const unsigned int asn_MAP_Extent_enum2value_1[] = { + 15, /* forever(15) */ + 14, /* useFor10000000meters(14) */ + 12, /* useFor1000000meters(12) */ + 10, /* useFor100000meters(10) */ + 8, /* useFor10000meters(8) */ + 6, /* useFor1000meters(6) */ + 4, /* useFor100meters(4) */ + 2, /* useFor10meters(2) */ + 1, /* useFor3meters(1) */ + 13, /* useFor5000000meters(13) */ + 11, /* useFor500000meters(11) */ + 9, /* useFor50000meters(9) */ + 7, /* useFor5000meters(7) */ + 5, /* useFor500meters(5) */ + 3, /* useFor50meters(3) */ + 0 /* useInstantlyOnly(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Extent_specs_1 = { + asn_MAP_Extent_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Extent_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Extent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Extent = { + "Extent", + "Extent", + &asn_OP_NativeEnumerated, + asn_DEF_Extent_tags_1, + sizeof(asn_DEF_Extent_tags_1) + /sizeof(asn_DEF_Extent_tags_1[0]), /* 1 */ + asn_DEF_Extent_tags_1, /* Same as above */ + sizeof(asn_DEF_Extent_tags_1) + /sizeof(asn_DEF_Extent_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Extent_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Extent_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Extent_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ExteriorLights.c b/src/tmx/Asn_J2735/src/2020/ExteriorLights.c new file mode 100644 index 000000000..00b597e11 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ExteriorLights.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ExteriorLights.h" + +int +ExteriorLights_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 9UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 9, 9 } /* (SIZE(9..9,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ExteriorLights_tags_1, + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ExteriorLights_tags_1) + /sizeof(asn_DEF_ExteriorLights_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ExteriorLights_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ExteriorLights_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ExteriorLights_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/FuelType.c b/src/tmx/Asn_J2735/src/2020/FuelType.c new file mode 100644 index 000000000..4140c662c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/FuelType.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "FuelType.h" + +int +FuelType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 15L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_FuelType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_FuelType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_FuelType_tags_1, + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + asn_DEF_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_FuelType_tags_1) + /sizeof(asn_DEF_FuelType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_FuelType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_FuelType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + FuelType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/FullPositionVector.c b/src/tmx/Asn_J2735/src/2020/FullPositionVector.c new file mode 100644 index 000000000..c721c7205 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/FullPositionVector.c @@ -0,0 +1,235 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "FullPositionVector.h" + +#include "DDateTime.h" +#include "TransmissionAndSpeed.h" +#include "PositionalAccuracy.h" +#include "PositionConfidenceSet.h" +#include "SpeedandHeadingandThrottleConfidence.h" +asn_TYPE_member_t asn_MBR_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDateTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "utcTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_POINTER, 7, offsetof(struct FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_Elevation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 6, offsetof(struct FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Heading, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 5, offsetof(struct FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posAccuracy" + }, + { ATF_POINTER, 3, offsetof(struct FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeConfidence" + }, + { ATF_POINTER, 2, offsetof(struct FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidenceSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posConfidence" + }, + { ATF_POINTER, 1, offsetof(struct FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedandHeadingandThrottleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const int asn_MAP_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FullPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* utcTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* posAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* timeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FullPositionVector_specs_1 = { + sizeof(struct FullPositionVector), + offsetof(struct FullPositionVector, _asn_ctx), + asn_MAP_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_FullPositionVector_tags_1, + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_FullPositionVector_tags_1) + /sizeof(asn_DEF_FullPositionVector_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/FurtherInfoID.c b/src/tmx/Asn_J2735/src/2020/FurtherInfoID.c new file mode 100644 index 000000000..c81907a32 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/FurtherInfoID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "FurtherInfoID.h" + +int +FurtherInfoID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_FurtherInfoID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_FurtherInfoID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_FurtherInfoID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FurtherInfoID = { + "FurtherInfoID", + "FurtherInfoID", + &asn_OP_OCTET_STRING, + asn_DEF_FurtherInfoID_tags_1, + sizeof(asn_DEF_FurtherInfoID_tags_1) + /sizeof(asn_DEF_FurtherInfoID_tags_1[0]), /* 1 */ + asn_DEF_FurtherInfoID_tags_1, /* Same as above */ + sizeof(asn_DEF_FurtherInfoID_tags_1) + /sizeof(asn_DEF_FurtherInfoID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_FurtherInfoID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_FurtherInfoID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + FurtherInfoID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/GNSSstatus.c b/src/tmx/Asn_J2735/src/2020/GNSSstatus.c new file mode 100644 index 000000000..9a4e74626 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/GNSSstatus.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "GNSSstatus.h" + +int +GNSSstatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GNSSstatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_GNSSstatus_tags_1, + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_GNSSstatus_tags_1) + /sizeof(asn_DEF_GNSSstatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_GNSSstatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GNSSstatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + GNSSstatus_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/GenericLane.c b/src/tmx/Asn_J2735/src/2020/GenericLane.c new file mode 100644 index 000000000..0bd8ab8c6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/GenericLane.c @@ -0,0 +1,336 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "GenericLane.h" + +#include "ConnectsToList.h" +#include "OverlayLaneList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_GenericLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct GenericLane__regional), + offsetof(struct GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_11, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneID" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ingressApproach" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "egressApproach" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneAttributes" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllowedManeuvers, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maneuvers" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodeList" + }, + { ATF_POINTER, 3, offsetof(struct GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnectsToList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectsTo" + }, + { ATF_POINTER, 2, offsetof(struct GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OverlayLaneList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "overlays" + }, + { ATF_POINTER, 1, offsetof(struct GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_11, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GenericLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ingressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* egressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAttributes */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maneuvers */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* nodeList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* connectsTo */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* overlays */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GenericLane_specs_1 = { + sizeof(struct GenericLane), + offsetof(struct GenericLane, _asn_ctx), + asn_MAP_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_GenericLane_tags_1, + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_GenericLane_tags_1) + /sizeof(asn_DEF_GenericLane_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/GenericLocations.c b/src/tmx/Asn_J2735/src/2020/GenericLocations.c new file mode 100644 index 000000000..fc5c21020 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/GenericLocations.c @@ -0,0 +1,258 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "GenericLocations.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_GenericLocations_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GenericLocations_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 95 } /* (0..95,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_GenericLocations_value2enum_1[] = { + { 7937, 10, "on-bridges" }, + { 7938, 10, "in-tunnels" }, + { 7939, 27, "entering-or-leaving-tunnels" }, + { 7940, 8, "on-ramps" }, + { 7941, 25, "in-road-construction-area" }, + { 7942, 14, "around-a-curve" }, + { 7943, 14, "on-minor-roads" }, + { 7944, 21, "in-the-opposing-lanes" }, + { 7945, 19, "adjacent-to-roadway" }, + { 7946, 7, "on-bend" }, + { 7947, 19, "entire-intersection" }, + { 7948, 13, "in-the-median" }, + { 7949, 21, "moved-to-side-of-road" }, + { 7950, 17, "moved-to-shoulder" }, + { 7951, 14, "on-the-roadway" }, + { 7952, 15, "in-shaded-areas" }, + { 7953, 18, "in-low-lying-areas" }, + { 7954, 20, "in-the-downtown-area" }, + { 7955, 22, "in-the-inner-city-area" }, + { 7956, 8, "in-parts" }, + { 7957, 14, "in-some-places" }, + { 7958, 12, "in-the-ditch" }, + { 7959, 13, "in-the-valley" }, + { 7960, 11, "on-hill-top" }, + { 7961, 18, "near-the-foothills" }, + { 7962, 17, "at-high-altitudes" }, + { 7963, 13, "near-the-lake" }, + { 7964, 14, "near-the-shore" }, + { 7965, 24, "over-the-crest-of-a-hill" }, + { 7966, 25, "other-than-on-the-roadway" }, + { 7967, 14, "near-the-beach" }, + { 7968, 23, "near-beach-access-point" }, + { 7969, 11, "lower-level" }, + { 7970, 11, "upper-level" }, + { 7971, 7, "airport" }, + { 7972, 9, "concourse" }, + { 7973, 4, "gate" }, + { 7974, 13, "baggage-claim" }, + { 7975, 13, "customs-point" }, + { 7976, 7, "station" }, + { 7977, 8, "platform" }, + { 7978, 4, "dock" }, + { 7979, 5, "depot" }, + { 7980, 17, "ev-charging-point" }, + { 7981, 25, "information-welcome-point" }, + { 7982, 12, "at-rest-area" }, + { 7983, 15, "at-service-area" }, + { 7984, 16, "at-weigh-station" }, + { 7985, 12, "picnic-areas" }, + { 7986, 9, "rest-area" }, + { 7987, 16, "service-stations" }, + { 7988, 7, "toilets" }, + { 7989, 12, "on-the-right" }, + { 7990, 11, "on-the-left" }, + { 7991, 13, "in-the-center" }, + { 7992, 25, "in-the-opposite-direction" }, + { 7993, 13, "cross-traffic" }, + { 7994, 18, "northbound-traffic" }, + { 7995, 17, "eastbound-traffic" }, + { 7996, 18, "southbound-traffic" }, + { 7997, 17, "westbound-traffic" }, + { 7998, 5, "north" }, + { 7999, 5, "south" }, + { 8000, 4, "east" }, + { 8001, 4, "west" }, + { 8002, 9, "northeast" }, + { 8003, 9, "northwest" }, + { 8004, 9, "southeast" }, + { 8005, 9, "southwest" }, + { 8006, 13, "mountain-pass" }, + { 8007, 18, "reservation-center" }, + { 8008, 12, "nearby-basin" }, + { 8009, 9, "on-tracks" }, + { 8010, 3, "dip" }, + { 8011, 14, "traffic-circle" }, + { 8012, 17, "park-and-ride-lot" }, + { 8014, 2, "to" }, + { 8015, 2, "by" }, + { 8016, 7, "through" }, + { 8017, 7, "area-of" }, + { 8018, 5, "under" }, + { 8019, 4, "over" }, + { 8020, 4, "from" }, + { 8021, 11, "approaching" }, + { 8022, 11, "entering-at" }, + { 8023, 10, "exiting-at" }, + { 8024, 13, "across-tracks" }, + { 8025, 9, "in-street" }, + { 8026, 8, "on-curve" }, + { 8027, 8, "shoulder" }, + { 8028, 9, "crossover" }, + { 8029, 10, "cross-road" }, + { 8030, 9, "side-road" }, + { 8031, 8, "bus-stop" }, + { 8032, 12, "intersection" }, + { 8033, 13, "roadside-park" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_GenericLocations_enum2value_1[] = { + 86, /* across-tracks(8024) */ + 8, /* adjacent-to-roadway(7945) */ + 34, /* airport(7971) */ + 83, /* approaching(8021) */ + 79, /* area-of(8017) */ + 5, /* around-a-curve(7942) */ + 25, /* at-high-altitudes(7962) */ + 45, /* at-rest-area(7982) */ + 46, /* at-service-area(7983) */ + 47, /* at-weigh-station(7984) */ + 37, /* baggage-claim(7974) */ + 93, /* bus-stop(8031) */ + 77, /* by(8015) */ + 35, /* concourse(7972) */ + 91, /* cross-road(8029) */ + 56, /* cross-traffic(7993) */ + 90, /* crossover(8028) */ + 38, /* customs-point(7975) */ + 42, /* depot(7979) */ + 73, /* dip(8010) */ + 41, /* dock(7978) */ + 63, /* east(8000) */ + 58, /* eastbound-traffic(7995) */ + 84, /* entering-at(8022) */ + 2, /* entering-or-leaving-tunnels(7939) */ + 10, /* entire-intersection(7947) */ + 43, /* ev-charging-point(7980) */ + 85, /* exiting-at(8023) */ + 82, /* from(8020) */ + 36, /* gate(7973) */ + 16, /* in-low-lying-areas(7953) */ + 19, /* in-parts(7956) */ + 4, /* in-road-construction-area(7941) */ + 15, /* in-shaded-areas(7952) */ + 20, /* in-some-places(7957) */ + 87, /* in-street(8025) */ + 54, /* in-the-center(7991) */ + 21, /* in-the-ditch(7958) */ + 17, /* in-the-downtown-area(7954) */ + 18, /* in-the-inner-city-area(7955) */ + 11, /* in-the-median(7948) */ + 7, /* in-the-opposing-lanes(7944) */ + 55, /* in-the-opposite-direction(7992) */ + 22, /* in-the-valley(7959) */ + 1, /* in-tunnels(7938) */ + 44, /* information-welcome-point(7981) */ + 94, /* intersection(8032) */ + 32, /* lower-level(7969) */ + 69, /* mountain-pass(8006) */ + 13, /* moved-to-shoulder(7950) */ + 12, /* moved-to-side-of-road(7949) */ + 31, /* near-beach-access-point(7968) */ + 30, /* near-the-beach(7967) */ + 24, /* near-the-foothills(7961) */ + 26, /* near-the-lake(7963) */ + 27, /* near-the-shore(7964) */ + 71, /* nearby-basin(8008) */ + 61, /* north(7998) */ + 57, /* northbound-traffic(7994) */ + 65, /* northeast(8002) */ + 66, /* northwest(8003) */ + 9, /* on-bend(7946) */ + 0, /* on-bridges(7937) */ + 88, /* on-curve(8026) */ + 23, /* on-hill-top(7960) */ + 6, /* on-minor-roads(7943) */ + 3, /* on-ramps(7940) */ + 53, /* on-the-left(7990) */ + 52, /* on-the-right(7989) */ + 14, /* on-the-roadway(7951) */ + 72, /* on-tracks(8009) */ + 29, /* other-than-on-the-roadway(7966) */ + 81, /* over(8019) */ + 28, /* over-the-crest-of-a-hill(7965) */ + 75, /* park-and-ride-lot(8012) */ + 48, /* picnic-areas(7985) */ + 40, /* platform(7977) */ + 70, /* reservation-center(8007) */ + 49, /* rest-area(7986) */ + 95, /* roadside-park(8033) */ + 50, /* service-stations(7987) */ + 89, /* shoulder(8027) */ + 92, /* side-road(8030) */ + 62, /* south(7999) */ + 59, /* southbound-traffic(7996) */ + 67, /* southeast(8004) */ + 68, /* southwest(8005) */ + 39, /* station(7976) */ + 78, /* through(8016) */ + 76, /* to(8014) */ + 51, /* toilets(7988) */ + 74, /* traffic-circle(8011) */ + 80, /* under(8018) */ + 33, /* upper-level(7970) */ + 64, /* west(8001) */ + 60 /* westbound-traffic(7997) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_GenericLocations_specs_1 = { + asn_MAP_GenericLocations_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_GenericLocations_enum2value_1, /* N => "tag"; sorted by N */ + 96, /* Number of elements in the maps */ + 97, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_GenericLocations_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GenericLocations = { + "GenericLocations", + "GenericLocations", + &asn_OP_NativeEnumerated, + asn_DEF_GenericLocations_tags_1, + sizeof(asn_DEF_GenericLocations_tags_1) + /sizeof(asn_DEF_GenericLocations_tags_1[0]), /* 1 */ + asn_DEF_GenericLocations_tags_1, /* Same as above */ + sizeof(asn_DEF_GenericLocations_tags_1) + /sizeof(asn_DEF_GenericLocations_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_GenericLocations_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GenericLocations_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_GenericLocations_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/GenericSignage.c b/src/tmx/Asn_J2735/src/2020/GenericSignage.c new file mode 100644 index 000000000..ee07419c6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/GenericSignage.c @@ -0,0 +1,215 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "GenericSignage.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_item_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_item_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_GenericSignage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GenericSignage_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_item_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct GenericSignage__Member__item, choice.itis), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "itis" + }, + { ATF_NOFLAGS, 0, offsetof(struct GenericSignage__Member__item, choice.text), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIStextPhrase, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "text" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_item_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* itis */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* text */ +}; +static asn_CHOICE_specifics_t asn_SPC_item_specs_3 = { + sizeof(struct GenericSignage__Member__item), + offsetof(struct GenericSignage__Member__item, _asn_ctx), + offsetof(struct GenericSignage__Member__item, present), + sizeof(((struct GenericSignage__Member__item *)0)->present), + asn_MAP_item_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_item_3 = { + "item", + "item", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_item_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_item_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_item_3, + 2, /* Elements count */ + &asn_SPC_item_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_Member_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct GenericSignage__Member, item), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_item_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "item" + }, +}; +static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* item */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { + sizeof(struct GenericSignage__Member), + offsetof(struct GenericSignage__Member, _asn_ctx), + asn_MAP_Member_tag2el_2, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Member_2 = { + "SEQUENCE", + "SEQUENCE", + &asn_OP_SEQUENCE, + asn_DEF_Member_tags_2, + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + asn_DEF_Member_tags_2, /* Same as above */ + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Member_2, + 1, /* Elements count */ + &asn_SPC_Member_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GenericSignage_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Member_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_GenericSignage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_GenericSignage_specs_1 = { + sizeof(struct GenericSignage), + offsetof(struct GenericSignage, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_GenericSignage = { + "GenericSignage", + "GenericSignage", + &asn_OP_SEQUENCE_OF, + asn_DEF_GenericSignage_tags_1, + sizeof(asn_DEF_GenericSignage_tags_1) + /sizeof(asn_DEF_GenericSignage_tags_1[0]), /* 1 */ + asn_DEF_GenericSignage_tags_1, /* Same as above */ + sizeof(asn_DEF_GenericSignage_tags_1) + /sizeof(asn_DEF_GenericSignage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_GenericSignage_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GenericSignage_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_GenericSignage_1, + 1, /* Single element */ + &asn_SPC_GenericSignage_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/GeographicalPath.c b/src/tmx/Asn_J2735/src/2020/GeographicalPath.c new file mode 100644 index 000000000..214cc8182 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/GeographicalPath.c @@ -0,0 +1,421 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "GeographicalPath.h" + +#include "RoadSegmentReferenceID.h" +#include "Position3D.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_description_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_description_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_description_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct GeographicalPath__description, choice.path), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetSystem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "path" + }, + { ATF_NOFLAGS, 0, offsetof(struct GeographicalPath__description, choice.geometry), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeometricProjection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "geometry" + }, + { ATF_NOFLAGS, 0, offsetof(struct GeographicalPath__description, choice.oldRegion), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ValidRegion, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "oldRegion" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_description_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* path */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* geometry */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oldRegion */ +}; +static asn_CHOICE_specifics_t asn_SPC_description_specs_9 = { + sizeof(struct GeographicalPath__description), + offsetof(struct GeographicalPath__description, _asn_ctx), + offsetof(struct GeographicalPath__description, present), + sizeof(((struct GeographicalPath__description *)0)->present), + asn_MAP_description_tag2el_9, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_description_9 = { + "description", + "description", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_description_constr_9, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_description_constr_9, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_description_9, + 3, /* Elements count */ + &asn_SPC_description_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_GeographicalPath, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_14 = { + sizeof(struct GeographicalPath__regional), + offsetof(struct GeographicalPath__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_14 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_14, + sizeof(asn_DEF_regional_tags_14) + /sizeof(asn_DEF_regional_tags_14[0]) - 1, /* 1 */ + asn_DEF_regional_tags_14, /* Same as above */ + sizeof(asn_DEF_regional_tags_14) + /sizeof(asn_DEF_regional_tags_14[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_14, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_14, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_14, + 1, /* Single element */ + &asn_SPC_regional_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GeographicalPath_1[] = { + { ATF_POINTER, 9, offsetof(struct GeographicalPath, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 8, offsetof(struct GeographicalPath, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 7, offsetof(struct GeographicalPath, anchor), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "anchor" + }, + { ATF_POINTER, 6, offsetof(struct GeographicalPath, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 5, offsetof(struct GeographicalPath, directionality), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DirectionOfUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "directionality" + }, + { ATF_POINTER, 4, offsetof(struct GeographicalPath, closedPath), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "closedPath" + }, + { ATF_POINTER, 3, offsetof(struct GeographicalPath, direction), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingSlice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "direction" + }, + { ATF_POINTER, 2, offsetof(struct GeographicalPath, description), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_description_9, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "description" + }, + { ATF_POINTER, 1, offsetof(struct GeographicalPath, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_14, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_14, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_GeographicalPath_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_GeographicalPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GeographicalPath_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* anchor */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* directionality */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* closedPath */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* description */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GeographicalPath_specs_1 = { + sizeof(struct GeographicalPath), + offsetof(struct GeographicalPath, _asn_ctx), + asn_MAP_GeographicalPath_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_GeographicalPath_oms_1, /* Optional members */ + 9, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GeographicalPath = { + "GeographicalPath", + "GeographicalPath", + &asn_OP_SEQUENCE, + asn_DEF_GeographicalPath_tags_1, + sizeof(asn_DEF_GeographicalPath_tags_1) + /sizeof(asn_DEF_GeographicalPath_tags_1[0]), /* 1 */ + asn_DEF_GeographicalPath_tags_1, /* Same as above */ + sizeof(asn_DEF_GeographicalPath_tags_1) + /sizeof(asn_DEF_GeographicalPath_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GeographicalPath_1, + 9, /* Elements count */ + &asn_SPC_GeographicalPath_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/GeometricProjection.c b/src/tmx/Asn_J2735/src/2020/GeometricProjection.c new file mode 100644 index 000000000..23928ca81 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/GeometricProjection.c @@ -0,0 +1,244 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "GeometricProjection.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_GeometricProjection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct GeometricProjection__regional), + offsetof(struct GeometricProjection__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GeometricProjection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GeometricProjection, direction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingSlice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "direction" + }, + { ATF_POINTER, 2, offsetof(struct GeometricProjection, extent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Extent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "extent" + }, + { ATF_POINTER, 1, offsetof(struct GeometricProjection, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct GeometricProjection, circle), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Circle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "circle" + }, + { ATF_POINTER, 1, offsetof(struct GeometricProjection, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_GeometricProjection_oms_1[] = { 1, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_GeometricProjection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GeometricProjection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* extent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* circle */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GeometricProjection_specs_1 = { + sizeof(struct GeometricProjection), + offsetof(struct GeometricProjection, _asn_ctx), + asn_MAP_GeometricProjection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_GeometricProjection_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GeometricProjection = { + "GeometricProjection", + "GeometricProjection", + &asn_OP_SEQUENCE, + asn_DEF_GeometricProjection_tags_1, + sizeof(asn_DEF_GeometricProjection_tags_1) + /sizeof(asn_DEF_GeometricProjection_tags_1[0]), /* 1 */ + asn_DEF_GeometricProjection_tags_1, /* Same as above */ + sizeof(asn_DEF_GeometricProjection_tags_1) + /sizeof(asn_DEF_GeometricProjection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_GeometricProjection_1, + 5, /* Elements count */ + &asn_SPC_GeometricProjection_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/GraphicString.c b/src/tmx/Asn_J2735/src/2020/GraphicString.c new file mode 100644 index 000000000..b76118710 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/GraphicString.c @@ -0,0 +1,91 @@ +/*- + * Copyright (c) 2003 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * GraphicString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_GraphicString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (25 << 2)), /* [UNIVERSAL 25] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_GraphicString = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print, /* non-ascii string */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, /* Can't expect it to be ASCII/UTF8 */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_encode_jer, /* Can't expect it to be ASCII/UTF8 */ +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OCTET_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_GraphicString = { + "GraphicString", + "GraphicString", + &asn_OP_GraphicString, + asn_DEF_GraphicString_tags, + sizeof(asn_DEF_GraphicString_tags) + / sizeof(asn_DEF_GraphicString_tags[0]) - 1, + asn_DEF_GraphicString_tags, + sizeof(asn_DEF_GraphicString_tags) + / sizeof(asn_DEF_GraphicString_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_unknown_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; diff --git a/src/tmx/Asn_J2735/src/2020/GrossDistance.c b/src/tmx/Asn_J2735/src/2020/GrossDistance.c new file mode 100644 index 000000000..09c1fcfeb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/GrossDistance.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "GrossDistance.h" + +int +GrossDistance_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 1023L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_GrossDistance_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GrossDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_GrossDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GrossDistance = { + "GrossDistance", + "GrossDistance", + &asn_OP_NativeInteger, + asn_DEF_GrossDistance_tags_1, + sizeof(asn_DEF_GrossDistance_tags_1) + /sizeof(asn_DEF_GrossDistance_tags_1[0]), /* 1 */ + asn_DEF_GrossDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_GrossDistance_tags_1) + /sizeof(asn_DEF_GrossDistance_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_GrossDistance_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GrossDistance_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + GrossDistance_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/GrossSpeed.c b/src/tmx/Asn_J2735/src/2020/GrossSpeed.c new file mode 100644 index 000000000..b3a76a107 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/GrossSpeed.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "GrossSpeed.h" + +int +GrossSpeed_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 31L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_GrossSpeed_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_GrossSpeed_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_GrossSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GrossSpeed = { + "GrossSpeed", + "GrossSpeed", + &asn_OP_NativeInteger, + asn_DEF_GrossSpeed_tags_1, + sizeof(asn_DEF_GrossSpeed_tags_1) + /sizeof(asn_DEF_GrossSpeed_tags_1[0]), /* 1 */ + asn_DEF_GrossSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_GrossSpeed_tags_1) + /sizeof(asn_DEF_GrossSpeed_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_GrossSpeed_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_GrossSpeed_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + GrossSpeed_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Header.c b/src/tmx/Asn_J2735/src/2020/Header.c new file mode 100644 index 000000000..3ff49d950 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Header.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Header.h" + +asn_TYPE_member_t asn_MBR_Header_1[] = { + { ATF_POINTER, 4, offsetof(struct Header, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 3, offsetof(struct Header, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct Header, secMark), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "secMark" + }, + { ATF_POINTER, 1, offsetof(struct Header, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgIssueRevision" + }, +}; +static const int asn_MAP_Header_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Header_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Header_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* secMark */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* msgIssueRevision */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Header_specs_1 = { + sizeof(struct Header), + offsetof(struct Header, _asn_ctx), + asn_MAP_Header_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Header_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Header = { + "Header", + "Header", + &asn_OP_SEQUENCE, + asn_DEF_Header_tags_1, + sizeof(asn_DEF_Header_tags_1) + /sizeof(asn_DEF_Header_tags_1[0]), /* 1 */ + asn_DEF_Header_tags_1, /* Same as above */ + sizeof(asn_DEF_Header_tags_1) + /sizeof(asn_DEF_Header_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Header_1, + 4, /* Elements count */ + &asn_SPC_Header_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Heading.c b/src/tmx/Asn_J2735/src/2020/Heading.c new file mode 100644 index 000000000..c33f8cd44 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Heading.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Heading.h" + +int +Heading_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 28800L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Heading_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Heading_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Heading = { + "Heading", + "Heading", + &asn_OP_NativeInteger, + asn_DEF_Heading_tags_1, + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + asn_DEF_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Heading_tags_1) + /sizeof(asn_DEF_Heading_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Heading_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Heading_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Heading_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/HeadingConfidence.c b/src/tmx/Asn_J2735/src/2020/HeadingConfidence.c new file mode 100644 index 000000000..e5f1ecff1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/HeadingConfidence.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "HeadingConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_HeadingConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec10deg" }, + { 2, 9, "prec05deg" }, + { 3, 9, "prec01deg" }, + { 4, 10, "prec0-1deg" }, + { 5, 11, "prec0-05deg" }, + { 6, 11, "prec0-01deg" }, + { 7, 13, "prec0-0125deg" } +}; +static const unsigned int asn_MAP_HeadingConfidence_enum2value_1[] = { + 7, /* prec0-0125deg(7) */ + 6, /* prec0-01deg(6) */ + 5, /* prec0-05deg(5) */ + 4, /* prec0-1deg(4) */ + 3, /* prec01deg(3) */ + 2, /* prec05deg(2) */ + 1, /* prec10deg(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_HeadingConfidence_specs_1 = { + asn_MAP_HeadingConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HeadingConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_HeadingConfidence_tags_1, + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingConfidence_tags_1) + /sizeof(asn_DEF_HeadingConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_HeadingConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_HeadingConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HeadingConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/HeadingSlice.c b/src/tmx/Asn_J2735/src/2020/HeadingSlice.c new file mode 100644 index 000000000..52489a8c7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/HeadingSlice.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "HeadingSlice.h" + +int +HeadingSlice_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_HeadingSlice_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_HeadingSlice_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_HeadingSlice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HeadingSlice = { + "HeadingSlice", + "HeadingSlice", + &asn_OP_BIT_STRING, + asn_DEF_HeadingSlice_tags_1, + sizeof(asn_DEF_HeadingSlice_tags_1) + /sizeof(asn_DEF_HeadingSlice_tags_1[0]), /* 1 */ + asn_DEF_HeadingSlice_tags_1, /* Same as above */ + sizeof(asn_DEF_HeadingSlice_tags_1) + /sizeof(asn_DEF_HeadingSlice_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_HeadingSlice_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_HeadingSlice_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + HeadingSlice_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Holiday.c b/src/tmx/Asn_J2735/src/2020/Holiday.c new file mode 100644 index 000000000..f750ffcbc --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Holiday.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Holiday.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Holiday_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Holiday_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_Holiday_value2enum_1[] = { + { 0, 7, "weekday" }, + { 1, 7, "holiday" } +}; +static const unsigned int asn_MAP_Holiday_enum2value_1[] = { + 1, /* holiday(1) */ + 0 /* weekday(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Holiday_specs_1 = { + asn_MAP_Holiday_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Holiday_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Holiday_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Holiday = { + "Holiday", + "Holiday", + &asn_OP_NativeEnumerated, + asn_DEF_Holiday_tags_1, + sizeof(asn_DEF_Holiday_tags_1) + /sizeof(asn_DEF_Holiday_tags_1[0]), /* 1 */ + asn_DEF_Holiday_tags_1, /* Same as above */ + sizeof(asn_DEF_Holiday_tags_1) + /sizeof(asn_DEF_Holiday_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Holiday_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Holiday_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Holiday_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Hour.c b/src/tmx/Asn_J2735/src/2020/Hour.c new file mode 100644 index 000000000..95645ea9c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Hour.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Hour.h" + +int +Hour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Hour_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Hour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Hour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Hour = { + "Hour", + "Hour", + &asn_OP_NativeInteger, + asn_DEF_Hour_tags_1, + sizeof(asn_DEF_Hour_tags_1) + /sizeof(asn_DEF_Hour_tags_1[0]), /* 1 */ + asn_DEF_Hour_tags_1, /* Same as above */ + sizeof(asn_DEF_Hour_tags_1) + /sizeof(asn_DEF_Hour_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Hour_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Hour_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Hour_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/HumanPropelledType.c b/src/tmx/Asn_J2735/src/2020/HumanPropelledType.c new file mode 100644 index 000000000..db3857d7e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/HumanPropelledType.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "HumanPropelledType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_HumanPropelledType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_HumanPropelledType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_HumanPropelledType_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 10, "otherTypes" }, + { 2, 6, "onFoot" }, + { 3, 10, "skateboard" }, + { 4, 17, "pushOrKickScooter" }, + { 5, 10, "wheelchair" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_HumanPropelledType_enum2value_1[] = { + 2, /* onFoot(2) */ + 1, /* otherTypes(1) */ + 4, /* pushOrKickScooter(4) */ + 3, /* skateboard(3) */ + 0, /* unavailable(0) */ + 5 /* wheelchair(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_HumanPropelledType_specs_1 = { + asn_MAP_HumanPropelledType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_HumanPropelledType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_HumanPropelledType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HumanPropelledType = { + "HumanPropelledType", + "HumanPropelledType", + &asn_OP_NativeEnumerated, + asn_DEF_HumanPropelledType_tags_1, + sizeof(asn_DEF_HumanPropelledType_tags_1) + /sizeof(asn_DEF_HumanPropelledType_tags_1[0]), /* 1 */ + asn_DEF_HumanPropelledType_tags_1, /* Same as above */ + sizeof(asn_DEF_HumanPropelledType_tags_1) + /sizeof(asn_DEF_HumanPropelledType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_HumanPropelledType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_HumanPropelledType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HumanPropelledType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IA5String.c b/src/tmx/Asn_J2735/src/2020/IA5String.c new file mode 100644 index 000000000..876142d39 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IA5String.c @@ -0,0 +1,133 @@ +/*- + * Copyright (c) 2003 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * IA5String basic type description. + */ +static const ber_tlv_tag_t asn_DEF_IA5String_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)), /* [UNIVERSAL 22] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_DEF_IA5String_per_constraints = { + { APC_CONSTRAINED, 7, 7, 0, 0x7f }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + 0, 0 +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_operation_t asn_OP_IA5String = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print_utf8, /* ASCII subset */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_encode_jer_utf8, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OCTET_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_IA5String = { + "IA5String", + "IA5String", + &asn_OP_IA5String, + asn_DEF_IA5String_tags, + sizeof(asn_DEF_IA5String_tags) + / sizeof(asn_DEF_IA5String_tags[0]) - 1, + asn_DEF_IA5String_tags, + sizeof(asn_DEF_IA5String_tags) + / sizeof(asn_DEF_IA5String_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_DEF_IA5String_per_constraints, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + IA5String_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +IA5String_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + /* + * IA5String is generally equivalent to 7bit ASCII. + * ISO/ITU-T T.50, 1963. + */ + for(; buf < end; buf++) { + if(*buf > 0x7F) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld out of range: " + "%d > 127 (%s:%d)", + td->name, + (long)((buf - st->buf) + 1), + *buf, + __FILE__, __LINE__); + return -1; + } + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + diff --git a/src/tmx/Asn_J2735/src/2020/INTEGER.c b/src/tmx/Asn_J2735/src/2020/INTEGER.c new file mode 100644 index 000000000..095063fef --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/INTEGER.c @@ -0,0 +1,738 @@ +/* + * Copyright (c) 2003-2019 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * INTEGER basic type description. + */ +static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_operation_t asn_OP_INTEGER = { + INTEGER_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + INTEGER_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + INTEGER_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + ber_decode_primitive, + INTEGER_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + INTEGER_decode_xer, + INTEGER_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + INTEGER_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + INTEGER_decode_oer, /* OER decoder */ + INTEGER_encode_oer, /* Canonical OER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + INTEGER_decode_uper, /* Unaligned PER decoder */ + INTEGER_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + INTEGER_decode_aper, /* Aligned PER decoder */ + INTEGER_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + INTEGER_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ +0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_INTEGER = { + "INTEGER", + "INTEGER", + &asn_OP_INTEGER, + asn_DEF_INTEGER_tags, + sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), + asn_DEF_INTEGER_tags, /* Same as above */ + sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * INTEGER specific human-readable output. + */ +ssize_t +INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; + uint8_t *buf = st->buf; + uint8_t *buf_end = st->buf + st->size; + intmax_t value; + ssize_t wrote = 0; + char *p; + int ret; + + if(specs && specs->field_unsigned) + ret = asn_INTEGER2umax(st, (uintmax_t *)&value); + else + ret = asn_INTEGER2imax(st, &value); + + /* Simple case: the integer size is small */ + if(ret == 0) { + const asn_INTEGER_enum_map_t *el; + el = (value >= 0 || !specs || !specs->field_unsigned) + ? INTEGER_map_value2enum(specs, value) : 0; + if(el) { + if(plainOrXER == 0) + return asn__format_to_callback(cb, app_key, + "%" ASN_PRIdMAX " (%s)", value, el->enum_name); + else + return asn__format_to_callback(cb, app_key, + "<%s/>", el->enum_name); + } else if(plainOrXER && specs && specs->strict_enumeration) { + ASN_DEBUG("ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + errno = EPERM; + return -1; + } else { + return asn__format_to_callback(cb, app_key, + (specs && specs->field_unsigned) + ? "%" ASN_PRIuMAX + : "%" ASN_PRIdMAX, + value); + } + } else if(plainOrXER && specs && specs->strict_enumeration) { + /* + * Here and earlier, we cannot encode the ENUMERATED values + * if there is no corresponding identifier. + */ + ASN_DEBUG("ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + errno = EPERM; + return -1; + } + + /* Output in the long xx:yy:zz... format */ + /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ + for(p = scratch; buf < buf_end; buf++) { + const char * const h2c = "0123456789ABCDEF"; + if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { + /* Flush buffer */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + wrote += p - scratch; + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x3a; /* ":" */ + } + if(p != scratch) + p--; /* Remove the last ":" */ + + wrote += p - scratch; + return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; +} + +static int +INTEGER__compar_value2enum(const void *kp, const void *am) { + long a = *(const long *)kp; + const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; + long b = el->nat_value; + if(a < b) return -1; + else if(a == b) return 0; + else return 1; +} + +const asn_INTEGER_enum_map_t * +INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { + int count = specs ? specs->map_count : 0; + if(!count) return 0; + return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, + count, sizeof(specs->value2enum[0]), + INTEGER__compar_value2enum); +} + +static intmax_t +asn__integer_convert(const uint8_t *b, const uint8_t *end) { + uintmax_t value; + + /* Perform the sign initialization */ + /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ + if((*b >> 7)) { + value = (uintmax_t)(-1); + } else { + value = 0; + } + + /* Conversion engine */ + for(; b < end; b++) { + value = (value << 8) | *b; + } + + return value; +} + +int +asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { + uint8_t *b, *end; + size_t size; + + /* Sanity checking */ + if(!iptr || !iptr->buf || !lptr) { + errno = EINVAL; + return -1; + } + + /* Cache the begin/end of the buffer */ + b = iptr->buf; /* Start of the INTEGER buffer */ + size = iptr->size; + end = b + size; /* Where to stop */ + + if(size > sizeof(intmax_t)) { + uint8_t *end1 = end - 1; + /* + * Slightly more advanced processing, + * able to process INTEGERs with >sizeof(intmax_t) bytes + * when the actual value is small, e.g. for intmax_t == int32_t + * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) + */ + /* Skip out the insignificant leading bytes */ + for(; b < end1; b++) { + switch(*b) { + case 0x00: if((b[1] & 0x80) == 0) continue; break; + case 0xff: if((b[1] & 0x80) != 0) continue; break; + } + break; + } + + size = end - b; + if(size > sizeof(intmax_t)) { + /* Still cannot fit the sizeof(intmax_t) */ + errno = ERANGE; + return -1; + } + } + + /* Shortcut processing of a corner case */ + if(end == b) { + *lptr = 0; + return 0; + } + + *lptr = asn__integer_convert(b, end); + return 0; +} + +/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ +int +asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { + uint8_t *b, *end; + uintmax_t value; + size_t size; + + if(!iptr || !iptr->buf || !lptr) { + errno = EINVAL; + return -1; + } + + b = iptr->buf; + size = iptr->size; + end = b + size; + + /* If all extra leading bytes are zeroes, ignore them */ + for(; size > sizeof(value); b++, size--) { + if(*b) { + /* Value won't fit into uintmax_t */ + errno = ERANGE; + return -1; + } + } + + /* Conversion engine */ + for(value = 0; b < end; b++) + value = (value << 8) | *b; + + *lptr = value; + return 0; +} + +int +asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { + uint8_t *buf; + uint8_t *end; + uint8_t *b; + int shr; + + if(value <= ((~(uintmax_t)0) >> 1)) { + return asn_imax2INTEGER(st, value); + } + + buf = (uint8_t *)MALLOC(1 + sizeof(value)); + if(!buf) return -1; + + end = buf + (sizeof(value) + 1); + buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ + for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) + *b = (uint8_t)(value >> shr); + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = 1 + sizeof(value); + + return 0; +} + +int +asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { + uint8_t *buf, *bp; + uint8_t *p; + uint8_t *pstart; + uint8_t *pend1; + int littleEndian = 1; /* Run-time detection */ + int add; + + if(!st) { + errno = EINVAL; + return -1; + } + + buf = (uint8_t *)(long *)MALLOC(sizeof(value)); + if(!buf) return -1; + + if(*(char *)&littleEndian) { + pstart = (uint8_t *)&value + sizeof(value) - 1; + pend1 = (uint8_t *)&value; + add = -1; + } else { + pstart = (uint8_t *)&value; + pend1 = pstart + sizeof(value) - 1; + add = 1; + } + + /* + * If the contents octet consists of more than one octet, + * then bits of the first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + for(p = pstart; p != pend1; p += add) { + switch(*p) { + case 0x00: if((*(p+add) & 0x80) == 0) + continue; + break; + case 0xff: if((*(p+add) & 0x80)) + continue; + break; + } + break; + } + /* Copy the integer body */ + for(bp = buf, pend1 += add; p != pend1; p += add) + *bp++ = *p; + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = bp - buf; + + return 0; +} + +int +asn_INTEGER2long(const INTEGER_t *iptr, long *l) { + intmax_t v; + if(asn_INTEGER2imax(iptr, &v) == 0) { + if(v < LONG_MIN || v > LONG_MAX) { + errno = ERANGE; + return -1; + } + *l = v; + return 0; + } else { + return -1; + } +} + +int +asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { + uintmax_t v; + if(asn_INTEGER2umax(iptr, &v) == 0) { + if(v > ULONG_MAX) { + errno = ERANGE; + return -1; + } + *l = v; + return 0; + } else { + return -1; + } +} + +int +asn_long2INTEGER(INTEGER_t *st, long value) { + return asn_imax2INTEGER(st, value); +} + +int +asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { + return asn_imax2INTEGER(st, value); +} + + +int +asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { + uint8_t *buf; + uint8_t *end; + uint8_t *b; + int shr; + + if(value <= INT64_MAX) + return asn_int642INTEGER(st, value); + + buf = (uint8_t *)MALLOC(1 + sizeof(value)); + if(!buf) return -1; + + end = buf + (sizeof(value) + 1); + buf[0] = 0; + for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) + *b = (uint8_t)(value >> shr); + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = 1 + sizeof(value); + + return 0; +} + +int +asn_int642INTEGER(INTEGER_t *st, int64_t value) { + uint8_t *buf, *bp; + uint8_t *p; + uint8_t *pstart; + uint8_t *pend1; + int littleEndian = 1; /* Run-time detection */ + int add; + + if(!st) { + errno = EINVAL; + return -1; + } + + buf = (uint8_t *)MALLOC(sizeof(value)); + if(!buf) return -1; + + if(*(char *)&littleEndian) { + pstart = (uint8_t *)&value + sizeof(value) - 1; + pend1 = (uint8_t *)&value; + add = -1; + } else { + pstart = (uint8_t *)&value; + pend1 = pstart + sizeof(value) - 1; + add = 1; + } + + /* + * If the contents octet consists of more than one octet, + * then bits of the first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + for(p = pstart; p != pend1; p += add) { + switch(*p) { + case 0x00: if((*(p+add) & 0x80) == 0) + continue; + break; + case 0xff: if((*(p+add) & 0x80)) + continue; + break; + } + break; + } + /* Copy the integer body */ + for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) + *bp++ = *p; + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = bp - buf; + + return 0; +} + +/* + * Parse the number in the given string until the given *end position, + * returning the position after the last parsed character back using the + * same (*end) pointer. + * WARNING: This behavior is different from the standard strtol/strtoimax(3). + */ +enum asn_strtox_result_e +asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { + int sign = 1; + intmax_t value; + + const intmax_t asn1_intmax_max = ((~(uintmax_t)0) >> 1); + const intmax_t upper_boundary = asn1_intmax_max / 10; + intmax_t last_digit_max = asn1_intmax_max % 10; + + if(str >= *end) return ASN_STRTOX_ERROR_INVAL; + + switch(*str) { + case '-': + last_digit_max++; + sign = -1; + /* FALL THROUGH */ + case '+': + str++; + if(str >= *end) { + *end = str; + return ASN_STRTOX_EXPECT_MORE; + } + } + + for(value = 0; str < (*end); str++) { + if(*str >= 0x30 && *str <= 0x39) { + int d = *str - '0'; + if(value < upper_boundary) { + value = value * 10 + d; + } else if(value == upper_boundary) { + if(d <= last_digit_max) { + if(sign > 0) { + value = value * 10 + d; + } else { + sign = 1; + value = -value * 10 - d; + } + str += 1; + if(str < *end) { + // If digits continue, we're guaranteed out of range. + *end = str; + if(*str >= 0x30 && *str <= 0x39) { + return ASN_STRTOX_ERROR_RANGE; + } else { + *intp = sign * value; + return ASN_STRTOX_EXTRA_DATA; + } + } + break; + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + *intp = sign * value; + return ASN_STRTOX_EXTRA_DATA; + } + } + + *end = str; + *intp = sign * value; + return ASN_STRTOX_OK; +} + +/* + * Parse the number in the given string until the given *end position, + * returning the position after the last parsed character back using the + * same (*end) pointer. + * WARNING: This behavior is different from the standard strtoul/strtoumax(3). + */ +enum asn_strtox_result_e +asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { + uintmax_t value; + + const uintmax_t asn1_uintmax_max = ((~(uintmax_t)0)); + const uintmax_t upper_boundary = asn1_uintmax_max / 10; + uintmax_t last_digit_max = asn1_uintmax_max % 10; + + if(str >= *end) return ASN_STRTOX_ERROR_INVAL; + + switch(*str) { + case '-': + return ASN_STRTOX_ERROR_INVAL; + case '+': + str++; + if(str >= *end) { + *end = str; + return ASN_STRTOX_EXPECT_MORE; + } + } + + for(value = 0; str < (*end); str++) { + if(*str >= 0x30 && *str <= 0x39) { + unsigned int d = *str - '0'; + if(value < upper_boundary) { + value = value * 10 + d; + } else if(value == upper_boundary) { + if(d <= last_digit_max) { + value = value * 10 + d; + str += 1; + if(str < *end) { + // If digits continue, we're guaranteed out of range. + *end = str; + if(*str >= 0x30 && *str <= 0x39) { + return ASN_STRTOX_ERROR_RANGE; + } else { + *uintp = value; + return ASN_STRTOX_EXTRA_DATA; + } + } + break; + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + *uintp = value; + return ASN_STRTOX_EXTRA_DATA; + } + } + + *end = str; + *uintp = value; + return ASN_STRTOX_OK; +} + +enum asn_strtox_result_e +asn_strtol_lim(const char *str, const char **end, long *lp) { + intmax_t value; + switch(asn_strtoimax_lim(str, end, &value)) { + case ASN_STRTOX_ERROR_RANGE: + return ASN_STRTOX_ERROR_RANGE; + case ASN_STRTOX_ERROR_INVAL: + return ASN_STRTOX_ERROR_INVAL; + case ASN_STRTOX_EXPECT_MORE: + return ASN_STRTOX_EXPECT_MORE; + case ASN_STRTOX_OK: + if(value >= LONG_MIN && value <= LONG_MAX) { + *lp = value; + return ASN_STRTOX_OK; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + case ASN_STRTOX_EXTRA_DATA: + if(value >= LONG_MIN && value <= LONG_MAX) { + *lp = value; + return ASN_STRTOX_EXTRA_DATA; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + } + + assert(!"Unreachable"); + return ASN_STRTOX_ERROR_INVAL; +} + +enum asn_strtox_result_e +asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { + uintmax_t value; + switch(asn_strtoumax_lim(str, end, &value)) { + case ASN_STRTOX_ERROR_RANGE: + return ASN_STRTOX_ERROR_RANGE; + case ASN_STRTOX_ERROR_INVAL: + return ASN_STRTOX_ERROR_INVAL; + case ASN_STRTOX_EXPECT_MORE: + return ASN_STRTOX_EXPECT_MORE; + case ASN_STRTOX_OK: + if(value <= ULONG_MAX) { + *ulp = value; + return ASN_STRTOX_OK; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + case ASN_STRTOX_EXTRA_DATA: + if(value <= ULONG_MAX) { + *ulp = value; + return ASN_STRTOX_EXTRA_DATA; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + } + + assert(!"Unreachable"); + return ASN_STRTOX_ERROR_INVAL; +} + +int +INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const INTEGER_t *a = aptr; + const INTEGER_t *b = bptr; + + (void)td; + + if(a && b) { + if(a->size && b->size) { + int sign_a = (a->buf[0] & 0x80) ? -1 : 1; + int sign_b = (b->buf[0] & 0x80) ? -1 : 1; + + if(sign_a < sign_b) return -1; + if(sign_a > sign_b) return 1; + + /* The shortest integer wins, unless comparing negatives */ + if(a->size < b->size) { + return -1 * sign_a; + } else if(a->size > b->size) { + return 1 * sign_b; + } + + return sign_a * memcmp(a->buf, b->buf, a->size); + } else if(a->size) { + int sign = (a->buf[0] & 0x80) ? -1 : 1; + return (1) * sign; + } else if(b->size) { + int sign = (a->buf[0] & 0x80) ? -1 : 1; + return (-1) * sign; + } else { + return 0; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} diff --git a/src/tmx/Asn_J2735/src/2020/INTEGER_aper.c b/src/tmx/Asn_J2735/src/2020/INTEGER_aper.c new file mode 100644 index 000000000..fc88268ef --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/INTEGER_aper.c @@ -0,0 +1,308 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + INTEGER_t *st = (INTEGER_t *)*sptr; + const asn_per_constraint_t *ct; + int repeat; + + (void)opt_codec_ctx; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + if(ct) { + if(ct->flags & APC_SEMI_CONSTRAINED) { + st->buf = (uint8_t *)CALLOC(1, 2); + if(!st->buf) ASN__DECODE_FAILED; + st->size = 1; + } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { + size_t size = (ct->range_bits + 7) >> 3; + st->buf = (uint8_t *)MALLOC(1 + size + 1); + if(!st->buf) ASN__DECODE_FAILED; + st->size = size; + } + } + + /* X.691, #12.2.2 */ + if(ct && ct->flags != APC_UNCONSTRAINED) { + /* #10.5.6 */ + ASN_DEBUG("Integer with range %d bits", ct->range_bits); + if(ct->range_bits >= 0) { + if (ct->range_bits > 16) { + int max_range_bytes = (ct->range_bits >> 3) + + (((ct->range_bits % 8) > 0) ? 1 : 0); + int length = 0, i; + long value = 0; + + for (i = 1; ; i++) { + int upper = 1 << i; + if (upper >= max_range_bytes) + break; + } + ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, + max_range_bytes, i); + + if ((length = per_get_few_bits(pd, i)) < 0) + ASN__DECODE_FAILED; + + /* X.691 #12.2.6 length determinant + lb (1) */ + length += 1; + ASN_DEBUG("Got length %d", length); + if (aper_get_align(pd) != 0) + ASN__DECODE_FAILED; + while (length--) { + int buf = per_get_few_bits(pd, 8); + if (buf < 0) + ASN__DECODE_FAILED; + value += (((long)buf) << (8 * length)); + } + + value += ct->lower_bound; + if((specs && specs->field_unsigned) + ? asn_uint642INTEGER(st, (unsigned long)value) + : asn_int642INTEGER(st, value)) + ASN__DECODE_FAILED; + ASN_DEBUG("Got value %ld + low %lld", + value, (long long int)ct->lower_bound); + } else { + long value = 0; + if (ct->range_bits < 8) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + } else if (ct->range_bits == 8) { + if (aper_get_align(pd) < 0) + ASN__DECODE_FAILED; + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + } else { + /* Align */ + if (aper_get_align(pd) < 0) + ASN__DECODE_FAILED; + value = per_get_few_bits(pd, 16); + if(value < 0) ASN__DECODE_STARVED; + } + value += ct->lower_bound; + if((specs && specs->field_unsigned) + ? asn_ulong2INTEGER(st, value) + : asn_long2INTEGER(st, value)) + ASN__DECODE_FAILED; + ASN_DEBUG("Got value %ld + low %lld", + value, (long long int)ct->lower_bound); + } + return rval; + } else { + ASN__DECODE_FAILED; + } + } else { + ASN_DEBUG("Decoding unconstrained integer %s", td->name); + } + + /* X.691, #12.2.3, #12.2.4 */ + do { + ssize_t len; + void *p; + int ret; + + /* Get the PER length */ + len = aper_get_length(pd, -1, -1, -1, &repeat); + if(len < 0) ASN__DECODE_STARVED; + + p = REALLOC(st->buf, st->size + len + 1); + if(!p) ASN__DECODE_FAILED; + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); + if(ret < 0) ASN__DECODE_STARVED; + st->size += len; + } while(repeat); + st->buf[st->size] = 0; /* JIC */ + + /* #12.2.3 */ + if(ct && ct->lower_bound) { + /* + * TODO: replace by in-place arithmetics. + */ + long value; + if(asn_INTEGER2long(st, &value)) + ASN__DECODE_FAILED; + if(asn_long2INTEGER(st, value + ct->lower_bound)) + ASN__DECODE_FAILED; + } + + return rval; +} + +asn_enc_rval_t +INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const INTEGER_t *st = (const INTEGER_t *)sptr; + const uint8_t *buf; + const uint8_t *end; + const asn_per_constraint_t *ct; + long value = 0; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + er.encoded = 0; + + if(ct) { + int inext = 0; + if(specs && specs->field_unsigned) { + unsigned long uval; + if(asn_INTEGER2ulong(st, &uval)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(uval < (unsigned long)ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(uval < (unsigned long)ct->lower_bound + || uval > (unsigned long)ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%zu) lb %lld ub %lld %s", + uval, st->buf[0], st->size, + (long long int)ct->lower_bound, + (long long int)ct->upper_bound, + inext ? "ext" : "fix"); + value = uval; + } else { + if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value < ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value < ct->lower_bound + || value > ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%zu) lb %lld ub %lld %s", + value, st->buf[0], st->size, + (long long int)ct->lower_bound, + (long long int)ct->upper_bound, + inext ? "ext" : "fix"); + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + } + + /* X.691, #12.2.2 */ + if(ct && ct->range_bits >= 0) { + unsigned long v; + + /* #10.5.6 */ + ASN_DEBUG("Encoding integer %ld (%lld) with range %d bits", + value, (long long int)(value - ct->lower_bound), + ct->range_bits); + + v = value - ct->lower_bound; + + /* #12 <= 8 -> alignment ? */ + int range = ct->upper_bound - ct->lower_bound + 1; + if (ct->range_bits < 8 || (ct->range_bits == 8 && range < 256)) { + if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) + ASN__ENCODE_FAILED; + } else if (ct->range_bits == 8) { + if(aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) + ASN__ENCODE_FAILED; + } else if (ct->range_bits <= 16) { + /* Consume the bytes to align on octet */ + if(aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + if(per_put_few_bits(po, 0x0000 | v, 16)) + ASN__ENCODE_FAILED; + } else { + /* TODO: extend to >64 bits */ + int64_t v64 = v; + int i, j; + int max_range_bytes = (ct->range_bits >> 3) + + (((ct->range_bits % 8) > 0) ? 1 : 0); + + for (i = 1; ; i++) { + int upper = 1 << i; + if (upper >= max_range_bytes) + break; + } + + for (j = sizeof(int64_t) -1; j != 0; j--) { + int64_t val; + val = v64 >> (j * 8); + if (val != 0) + break; + } + + /* Putting length in the minimum number of bits ex: 5 = 3bits */ + if (per_put_few_bits(po, j, i)) + ASN__ENCODE_FAILED; + + /* Consume the bits to align on octet */ + if (aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + /* Put the value */ + for (i = 0; i <= j; i++) { + if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) + ASN__ENCODE_FAILED; + } + } + ASN__ENCODED_OK(er); + } + + if(ct && ct->lower_bound) { + ASN_DEBUG("Adjust lower bound to %lld", (long long int)ct->lower_bound); + /* TODO: adjust lower bound */ + ASN__ENCODE_FAILED; + } + + for(buf = st->buf, end = st->buf + st->size; buf < end;) { + int need_eom = 0; + ssize_t mayEncode = aper_put_length(po, -1, -1, end - buf, &need_eom); + if(mayEncode < 0) + ASN__ENCODE_FAILED; + if(per_put_many_bits(po, buf, 8 * mayEncode)) + ASN__ENCODE_FAILED; + buf += mayEncode; + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; + } + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/INTEGER_ber.c b/src/tmx/Asn_J2735/src/2020/INTEGER_ber.c new file mode 100644 index 000000000..57bfe1e1e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/INTEGER_ber.c @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Encode INTEGER type using DER. + */ +asn_enc_rval_t +INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + asn_enc_rval_t rval; + INTEGER_t effective_integer; + + ASN_DEBUG("%s %s as INTEGER (tm=%d)", + cb?"Encoding":"Estimating", td->name, tag_mode); + + /* + * Canonicalize integer in the buffer. + * (Remove too long sign extension, remove some first 0x00 bytes) + */ + if(st->buf) { + uint8_t *buf = st->buf; + uint8_t *end1 = buf + st->size - 1; + int shift; + + /* Compute the number of superfluous leading bytes */ + for(; buf < end1; buf++) { + /* + * If the contents octets of an integer value encoding + * consist of more than one octet, then the bits of the + * first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + switch(*buf) { + case 0x00: + if((buf[1] & 0x80) == 0) continue; + break; + case 0xff: + if((buf[1] & 0x80)) continue; + break; + } + break; + } + + /* Remove leading superfluous bytes from the integer */ + shift = buf - st->buf; + if(shift) { + union { + const uint8_t *c_buf; + uint8_t *nc_buf; + } unconst; + unconst.c_buf = st->buf; + effective_integer.buf = unconst.nc_buf + shift; + effective_integer.size = st->size - shift; + + st = &effective_integer; + } + } + + rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); + if(rval.structure_ptr == &effective_integer) { + rval.structure_ptr = sptr; + } + return rval; +} diff --git a/src/tmx/Asn_J2735/src/2020/INTEGER_jer.c b/src/tmx/Asn_J2735/src/2020/INTEGER_jer.c new file mode 100644 index 000000000..23d7c1285 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/INTEGER_jer.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +INTEGER_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = INTEGER__dump(td, st, cb, app_key, 1); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/INTEGER_oer.c b/src/tmx/Asn_J2735/src/2020/INTEGER_oer.c new file mode 100644 index 000000000..19f276d54 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/INTEGER_oer.c @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +INTEGER_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = {RC_OK, 0}; + INTEGER_t *st = (INTEGER_t *)*sptr; + struct asn_oer_constraint_number_s ct = {0, 0}; + size_t req_bytes; + + (void)opt_codec_ctx; + (void)specs; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints) ct = constraints->value; + + if(ct.width) { + req_bytes = ct.width; + } else { + /* No lower bound and no upper bound, effectively */ + + ssize_t consumed = oer_fetch_length(ptr, size, &req_bytes); + if(consumed == 0) { + ASN__DECODE_STARVED; + } else if(consumed == -1) { + ASN__DECODE_FAILED; + } + rval.consumed += consumed; + ptr = (const char *)ptr + consumed; + size -= consumed; + } + + if(req_bytes > size) { + ASN__DECODE_STARVED; + } + + if(ct.positive) { + /* X.969 08/2015 10.2(a) */ + unsigned msb; /* Most significant bit */ + size_t useful_size; + + /* Check most significant bit */ + msb = *(const uint8_t *)ptr >> 7; /* yields 0 or 1 */ + useful_size = msb + req_bytes; + st->buf = (uint8_t *)MALLOC(useful_size + 1); + if(!st->buf) { + ASN__DECODE_FAILED; + } + + /* + * Record a large unsigned in a way not to confuse it + * with signed value. + */ + st->buf[0] = '\0'; + memcpy(st->buf + msb, ptr, req_bytes); + st->buf[useful_size] = '\0'; /* Just in case, 0-terminate */ + st->size = useful_size; + + rval.consumed += req_bytes; + return rval; + } else { + /* X.969 08/2015 10.2(b) */ + st->buf = (uint8_t *)MALLOC(req_bytes + 1); + if(!st->buf) { + ASN__DECODE_FAILED; + } + + memcpy(st->buf, ptr, req_bytes); + st->buf[req_bytes] = '\0'; /* Just in case, 0-terminate */ + st->size = req_bytes; + + rval.consumed += req_bytes; + return rval; + } +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +INTEGER_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = sptr; + asn_enc_rval_t er = {0,0,0}; + struct asn_oer_constraint_number_s ct = {0, 0}; + const uint8_t *buf; + const uint8_t *end; + size_t useful_bytes; + size_t req_bytes = 0; + int sign = 0; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints) ct = constraints->value; + + er.encoded = 0; + + buf = st->buf; + end = buf + st->size; + + sign = (buf && buf < end) ? buf[0] & 0x80 : 0; + + /* Ignore 9 leading zeroes or ones */ + if(ct.positive) { + if(sign) { + /* The value given is a signed value. Can't proceed. */ + ASN__ENCODE_FAILED; + } + /* Remove leading zeros. */ + for(; buf + 1 < end; buf++) { + if(buf[0] != 0x0) break; + } + } else { + for(; buf + 1 < end; buf++) { + if(buf[0] == 0x0 && (buf[1] & 0x80) == 0) { + continue; + } else if(buf[0] == 0xff && (buf[1] & 0x80) != 0) { + continue; + } + break; + } + } + + useful_bytes = end - buf; + if(ct.width) { + req_bytes = ct.width; + } else { + ssize_t r = oer_serialize_length(useful_bytes, cb, app_key); + if(r < 0) { + ASN__ENCODE_FAILED; + } + er.encoded += r; + req_bytes = useful_bytes; + } + + if(req_bytes < useful_bytes) { + ASN__ENCODE_FAILED; + } + + er.encoded += req_bytes; + + for(; req_bytes > useful_bytes; req_bytes--) { + if(cb(sign?"\xff":"\0", 1, app_key) < 0) { + ASN__ENCODE_FAILED; + } + } + + if(cb(buf, useful_bytes, app_key) < 0) { + ASN__ENCODE_FAILED; + } + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/INTEGER_print.c b/src/tmx/Asn_J2735/src/2020/INTEGER_print.c new file mode 100644 index 000000000..2d37dee01 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/INTEGER_print.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * INTEGER specific human-readable output. + */ +int +INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + ssize_t ret; + + (void)ilevel; + + if(!st || !st->buf) + ret = cb("", 8, app_key); + else + ret = INTEGER__dump(td, st, cb, app_key, 0); + + return (ret < 0) ? -1 : 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/INTEGER_rfill.c b/src/tmx/Asn_J2735/src/2020/INTEGER_rfill.c new file mode 100644 index 000000000..fab002385 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/INTEGER_rfill.c @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + INTEGER_t *st = *sptr; + const asn_INTEGER_enum_map_t *emap; + size_t emap_len; + intmax_t value; + int find_inside_map; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (INTEGER_t *)CALLOC(1, sizeof(*st)); + if(st == NULL) { + return result_failed; + } + } + + if(specs) { + emap = specs->value2enum; + emap_len = specs->map_count; + if(specs->strict_enumeration) { + find_inside_map = emap_len > 0; + } else { + find_inside_map = emap_len ? asn_random_between(0, 1) : 0; + } + } else { + emap = 0; + emap_len = 0; + find_inside_map = 0; + } + + if(find_inside_map) { + assert(emap_len > 0); + value = emap[asn_random_between(0, emap_len - 1)].nat_value; + } else { + static const long variants[] = { + -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, + -16383, -257, -256, -255, -254, -129, -128, -127, + -126, -1, 0, 1, 126, 127, 128, 129, + 254, 255, 256, 257, 16383, 16384, 16385, 32767, + 32768, 32769, 65534, 65535, 65536, 65537}; + if(specs && specs->field_unsigned) { + assert(variants[18] == 0); + value = variants[asn_random_between( + 18, sizeof(variants) / sizeof(variants[0]) - 1)]; + } else { + value = variants[asn_random_between( + 0, sizeof(variants) / sizeof(variants[0]) - 1)]; + } + + if(!constraints) constraints = &td->encoding_constraints; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + const asn_per_constraints_t *ct; + + ct = constraints ? constraints->per_constraints : 0; + if(ct && (ct->value.flags & APC_CONSTRAINED)) { + if(value < ct->value.lower_bound || value > ct->value.upper_bound) { + value = asn_random_between(ct->value.lower_bound, + ct->value.upper_bound); + } + } +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + } + + if(asn_imax2INTEGER(st, value)) { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } else { + *sptr = st; + result_ok.length = st->size; + return result_ok; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/INTEGER_uper.c b/src/tmx/Asn_J2735/src/2020/INTEGER_uper.c new file mode 100644 index 000000000..ed65385fe --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/INTEGER_uper.c @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + INTEGER_t *st = (INTEGER_t *)*sptr; + const asn_per_constraint_t *ct; + int repeat; + + (void)opt_codec_ctx; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + if(ct) { + if(ct->flags & APC_SEMI_CONSTRAINED) { + st->buf = (uint8_t *)CALLOC(1, 2); + if(!st->buf) ASN__DECODE_FAILED; + st->size = 1; + } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { + size_t size = (ct->range_bits + 7) >> 3; + st->buf = (uint8_t *)MALLOC(1 + size + 1); + if(!st->buf) ASN__DECODE_FAILED; + st->size = size; + } + } + + /* X.691-2008/11, #13.2.2, constrained whole number */ + if(ct && ct->flags != APC_UNCONSTRAINED) { + /* #11.5.6 */ + ASN_DEBUG("Integer with range %d bits", ct->range_bits); + if(ct->range_bits >= 0) { + if((size_t)ct->range_bits > 8 * sizeof(uintmax_t)) + ASN__DECODE_FAILED; + + if(specs && specs->field_unsigned) { + uintmax_t uvalue = 0; + if(uper_get_constrained_whole_number(pd, + &uvalue, ct->range_bits)) + ASN__DECODE_STARVED; + ASN_DEBUG("Got value %lu + low %ld", + uvalue, ct->lower_bound); + uvalue += ct->lower_bound; + if(asn_umax2INTEGER(st, uvalue)) + ASN__DECODE_FAILED; + } else { + uintmax_t uvalue = 0; + intmax_t svalue; + if(uper_get_constrained_whole_number(pd, + &uvalue, ct->range_bits)) + ASN__DECODE_STARVED; + ASN_DEBUG("Got value %lu + low %ld", + uvalue, ct->lower_bound); + if(per_imax_range_unrebase(uvalue, ct->lower_bound, + ct->upper_bound, &svalue) + || asn_imax2INTEGER(st, svalue)) { + ASN__DECODE_FAILED; + } + } + return rval; + } + } else { + ASN_DEBUG("Decoding unconstrained integer %s", td->name); + } + + /* X.691, #12.2.3, #12.2.4 */ + do { + ssize_t len = 0; + void *p = NULL; + int ret = 0; + + /* Get the PER length */ + len = uper_get_length(pd, -1, 0, &repeat); + if(len < 0) ASN__DECODE_STARVED; + + p = REALLOC(st->buf, st->size + len + 1); + if(!p) ASN__DECODE_FAILED; + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); + if(ret < 0) ASN__DECODE_STARVED; + st->size += len; + } while(repeat); + st->buf[st->size] = 0; /* JIC */ + + /* #12.2.3 */ + if(ct && ct->lower_bound) { + /* + * TODO: replace by in-place arithmetic. + */ + long value = 0; + if(asn_INTEGER2long(st, &value)) + ASN__DECODE_FAILED; + if(asn_imax2INTEGER(st, value + ct->lower_bound)) + ASN__DECODE_FAILED; + } + + return rval; +} + +asn_enc_rval_t +INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const INTEGER_t *st = (const INTEGER_t *)sptr; + const uint8_t *buf; + const uint8_t *end; + const asn_per_constraint_t *ct; + union { + intmax_t s; + uintmax_t u; + } value; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + er.encoded = 0; + + if(ct) { + int inext = 0; + if(specs && specs->field_unsigned) { + if(asn_INTEGER2umax(st, &value.u)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value.u < (uintmax_t)ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value.u < (uintmax_t)ct->lower_bound + || value.u > (uintmax_t)ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", + value.u, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + } else { + if(asn_INTEGER2imax(st, &value.s)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value.s < ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value.s < ct->lower_bound + || value.s > ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", + value.s, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + } + + /* X.691-11/2008, #13.2.2, test if constrained whole number */ + if(ct && ct->range_bits >= 0) { + uintmax_t v; + /* #11.5.6 -> #11.3 */ + if(specs && specs->field_unsigned) { + if(((uintmax_t)ct->lower_bound > (uintmax_t)(ct->upper_bound) + || (value.u < (uintmax_t)ct->lower_bound)) + || (value.u > (uintmax_t)ct->upper_bound)) { + ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!", + value.u, ct->lower_bound, ct->upper_bound); + ASN__ENCODE_FAILED; + } + v = value.u - (uintmax_t)ct->lower_bound; + } else { + if(per_imax_range_rebase(value.s, ct->lower_bound, ct->upper_bound, &v)) { + ASN__ENCODE_FAILED; + } + } + ASN_DEBUG("Encoding integer %lu with range %d bits", + v, ct->range_bits); + if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(ct && ct->lower_bound) { + ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); + /* TODO: adjust lower bound */ + ASN__ENCODE_FAILED; + } + + for(buf = st->buf, end = st->buf + st->size; buf < end;) { + int need_eom = 0; + ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); + if(mayEncode < 0) + ASN__ENCODE_FAILED; + if(per_put_many_bits(po, buf, 8 * mayEncode)) + ASN__ENCODE_FAILED; + buf += mayEncode; + if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; + } + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/INTEGER_xer.c b/src/tmx/Asn_J2735/src/2020/INTEGER_xer.c new file mode 100644 index 000000000..4f21c86a9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/INTEGER_xer.c @@ -0,0 +1,351 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +struct e2v_key { + const char *start; + const char *stop; + const asn_INTEGER_enum_map_t *vemap; + const unsigned int *evmap; +}; +static int +INTEGER__compar_enum2value(const void *kp, const void *am) { + const struct e2v_key *key = (const struct e2v_key *)kp; + const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; + const char *ptr, *end, *name; + + /* Remap the element (sort by different criterion) */ + el = key->vemap + key->evmap[el - key->vemap]; + + /* Compare strings */ + for(ptr = key->start, end = key->stop, name = el->enum_name; + ptr < end; ptr++, name++) { + if(*ptr != *name || !*name) + return *(const unsigned char *)ptr - *(const unsigned char *)name; + } + return name[0] ? -1 : 0; +} + +static const asn_INTEGER_enum_map_t * +INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, + const char *lstop) { + const asn_INTEGER_enum_map_t *el_found; + int count = specs ? specs->map_count : 0; + struct e2v_key key; + const char *lp; + + if(!count) return NULL; + + /* Guaranteed: assert(lstart < lstop); */ + /* Figure out the tag name */ + for(lstart++, lp = lstart; lp < lstop; lp++) { + switch(*lp) { + case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ + case 0x2f: /* '/' */ case 0x3e: /* '>' */ + break; + default: + continue; + } + break; + } + if(lp == lstop) return NULL; /* No tag found */ + lstop = lp; + + key.start = lstart; + key.stop = lstop; + key.vemap = specs->value2enum; + key.evmap = specs->enum2value; + el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, + specs->value2enum, count, sizeof(specs->value2enum[0]), + INTEGER__compar_enum2value); + if(el_found) { + /* Remap enum2value into value2enum */ + el_found = key.vemap + key.evmap[el_found - key.vemap]; + } + return el_found; +} + +static int +INTEGER_st_prealloc(INTEGER_t *st, int min_size) { + void *p = MALLOC(min_size + 1); + if(p) { + void *b = st->buf; + st->size = 0; + st->buf = p; + FREEMEM(b); + return 0; + } else { + return -1; + } +} + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +static enum xer_pbd_rval +INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + INTEGER_t *st = (INTEGER_t *)sptr; + intmax_t dec_value; + intmax_t hex_value = 0; + const char *lp; + const char *lstart = (const char *)chunk_buf; + const char *lstop = lstart + chunk_size; + enum { + ST_LEADSPACE, + ST_SKIPSPHEX, + ST_WAITDIGITS, + ST_DIGITS, + ST_DIGITS_TRAILSPACE, + ST_HEXDIGIT1, + ST_HEXDIGIT2, + ST_HEXDIGITS_TRAILSPACE, + ST_HEXCOLON, + ST_END_ENUM, + ST_UNEXPECTED + } state = ST_LEADSPACE; + const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ + const char *dec_value_end = 0; + + if(chunk_size) + ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", + (long)chunk_size, *lstart, lstop[-1]); + + if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) + return XPBD_SYSTEM_FAILURE; + + /* + * We may have received a tag here. It will be processed inline. + * Use strtoul()-like code and serialize the result. + */ + for(lp = lstart; lp < lstop; lp++) { + int lv = *lp; + switch(lv) { + case 0x09: case 0x0a: case 0x0d: case 0x20: + switch(state) { + case ST_LEADSPACE: + case ST_DIGITS_TRAILSPACE: + case ST_HEXDIGITS_TRAILSPACE: + case ST_SKIPSPHEX: + continue; + case ST_DIGITS: + dec_value_end = lp; + state = ST_DIGITS_TRAILSPACE; + continue; + case ST_HEXCOLON: + state = ST_HEXDIGITS_TRAILSPACE; + continue; + default: + break; + } + break; + case 0x2d: /* '-' */ + if(state == ST_LEADSPACE) { + dec_value = 0; + dec_value_start = lp; + state = ST_WAITDIGITS; + continue; + } + break; + case 0x2b: /* '+' */ + if(state == ST_LEADSPACE) { + dec_value = 0; + dec_value_start = lp; + state = ST_WAITDIGITS; + continue; + } + break; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + switch(state) { + case ST_DIGITS: continue; + case ST_SKIPSPHEX: /* Fall through */ + case ST_HEXDIGIT1: + hex_value = (lv - 0x30) << 4; + state = ST_HEXDIGIT2; + continue; + case ST_HEXDIGIT2: + hex_value += (lv - 0x30); + state = ST_HEXCOLON; + st->buf[st->size++] = (uint8_t)hex_value; + continue; + case ST_HEXCOLON: + return XPBD_BROKEN_ENCODING; + case ST_LEADSPACE: + dec_value = 0; + dec_value_start = lp; + /* FALL THROUGH */ + case ST_WAITDIGITS: + state = ST_DIGITS; + continue; + default: + break; + } + break; + case 0x3c: /* '<', start of XML encoded enumeration */ + if(state == ST_LEADSPACE) { + const asn_INTEGER_enum_map_t *el; + el = INTEGER_map_enum2value( + (const asn_INTEGER_specifics_t *) + td->specifics, lstart, lstop); + if(el) { + ASN_DEBUG("Found \"%s\" => %ld", + el->enum_name, el->nat_value); + dec_value = el->nat_value; + state = ST_END_ENUM; + lp = lstop - 1; + continue; + } + ASN_DEBUG("Unknown identifier for INTEGER"); + } + return XPBD_BROKEN_ENCODING; + case 0x3a: /* ':' */ + if(state == ST_HEXCOLON) { + /* This colon is expected */ + state = ST_HEXDIGIT1; + continue; + } else if(state == ST_DIGITS) { + /* The colon here means that we have + * decoded the first two hexadecimal + * places as a decimal value. + * Switch decoding mode. */ + ASN_DEBUG("INTEGER re-evaluate as hex form"); + state = ST_SKIPSPHEX; + dec_value_start = 0; + lp = lstart - 1; + continue; + } else { + ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); + break; + } + /* [A-Fa-f] */ + case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: + case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: + switch(state) { + case ST_SKIPSPHEX: + case ST_LEADSPACE: /* Fall through */ + case ST_HEXDIGIT1: + hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); + hex_value += 10; + hex_value <<= 4; + state = ST_HEXDIGIT2; + continue; + case ST_HEXDIGIT2: + hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); + hex_value += 10; + st->buf[st->size++] = (uint8_t)hex_value; + state = ST_HEXCOLON; + continue; + case ST_DIGITS: + ASN_DEBUG("INTEGER re-evaluate as hex form"); + state = ST_SKIPSPHEX; + dec_value_start = 0; + lp = lstart - 1; + continue; + default: + break; + } + break; + } + + /* Found extra non-numeric stuff */ + ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", + lv, (long)(lp - lstart)); + state = ST_UNEXPECTED; + break; + } + + switch(state) { + case ST_END_ENUM: + /* Got a complete and valid enumeration encoded as a tag. */ + break; + case ST_DIGITS: + dec_value_end = lstop; + /* FALL THROUGH */ + case ST_DIGITS_TRAILSPACE: + /* The last symbol encountered was a digit. */ + switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { + case ASN_STRTOX_OK: + if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { + break; + } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { + break; + } else { + /* + * We model INTEGER on long for XER, + * to avoid rewriting all the tests at once. + */ + ASN_DEBUG("INTEGER exceeds long range"); + } + /* Fall through */ + case ASN_STRTOX_ERROR_RANGE: + ASN_DEBUG("INTEGER decode %s hit range limit", td->name); + return XPBD_DECODER_LIMIT; + case ASN_STRTOX_ERROR_INVAL: + case ASN_STRTOX_EXPECT_MORE: + case ASN_STRTOX_EXTRA_DATA: + return XPBD_BROKEN_ENCODING; + } + break; + case ST_HEXCOLON: + case ST_HEXDIGITS_TRAILSPACE: + st->buf[st->size] = 0; /* Just in case termination */ + return XPBD_BODY_CONSUMED; + case ST_HEXDIGIT1: + case ST_HEXDIGIT2: + case ST_SKIPSPHEX: + return XPBD_BROKEN_ENCODING; + case ST_LEADSPACE: + /* Content not found */ + return XPBD_NOT_BODY_IGNORE; + case ST_WAITDIGITS: + case ST_UNEXPECTED: + ASN_DEBUG("INTEGER: No useful digits (state %d)", state); + return XPBD_BROKEN_ENCODING; /* No digits */ + } + + /* + * Convert the result of parsing of enumeration or a straight + * decimal value into a BER representation. + */ + if(asn_imax2INTEGER(st, dec_value)) { + ASN_DEBUG("INTEGER decode %s conversion failed", td->name); + return XPBD_SYSTEM_FAILURE; + } + + return XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(INTEGER_t), opt_mname, + buf_ptr, size, INTEGER__xer_body_decode); +} + +asn_enc_rval_t +INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = INTEGER__dump(td, st, cb, app_key, 1); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/ITIScodes.c b/src/tmx/Asn_J2735/src/2020/ITIScodes.c new file mode 100644 index 000000000..2c2df3961 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ITIScodes.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ITIScodes.h" + +int +ITIScodes_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ITIScodes_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ITIScodes_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ITIScodes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ITIScodes = { + "ITIScodes", + "ITIScodes", + &asn_OP_NativeInteger, + asn_DEF_ITIScodes_tags_1, + sizeof(asn_DEF_ITIScodes_tags_1) + /sizeof(asn_DEF_ITIScodes_tags_1[0]), /* 1 */ + asn_DEF_ITIScodes_tags_1, /* Same as above */ + sizeof(asn_DEF_ITIScodes_tags_1) + /sizeof(asn_DEF_ITIScodes_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ITIScodes_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ITIScodes_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ITIScodes_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ITIScodesAndText.c b/src/tmx/Asn_J2735/src/2020/ITIScodesAndText.c new file mode 100644 index 000000000..42bd10ff6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ITIScodesAndText.c @@ -0,0 +1,215 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ITIScodesAndText.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_item_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_item_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ITIScodesAndText_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..100)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ITIScodesAndText_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (SIZE(1..100)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_item_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ITIScodesAndText__Member__item, choice.itis), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "itis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ITIScodesAndText__Member__item, choice.text), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIStext, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "text" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_item_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* itis */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* text */ +}; +static asn_CHOICE_specifics_t asn_SPC_item_specs_3 = { + sizeof(struct ITIScodesAndText__Member__item), + offsetof(struct ITIScodesAndText__Member__item, _asn_ctx), + offsetof(struct ITIScodesAndText__Member__item, present), + sizeof(((struct ITIScodesAndText__Member__item *)0)->present), + asn_MAP_item_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_item_3 = { + "item", + "item", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_item_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_item_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_item_3, + 2, /* Elements count */ + &asn_SPC_item_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_Member_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ITIScodesAndText__Member, item), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_item_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "item" + }, +}; +static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* item */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { + sizeof(struct ITIScodesAndText__Member), + offsetof(struct ITIScodesAndText__Member, _asn_ctx), + asn_MAP_Member_tag2el_2, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Member_2 = { + "SEQUENCE", + "SEQUENCE", + &asn_OP_SEQUENCE, + asn_DEF_Member_tags_2, + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + asn_DEF_Member_tags_2, /* Same as above */ + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Member_2, + 1, /* Elements count */ + &asn_SPC_Member_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ITIScodesAndText_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Member_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ITIScodesAndText_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ITIScodesAndText_specs_1 = { + sizeof(struct ITIScodesAndText), + offsetof(struct ITIScodesAndText, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ITIScodesAndText = { + "ITIScodesAndText", + "ITIScodesAndText", + &asn_OP_SEQUENCE_OF, + asn_DEF_ITIScodesAndText_tags_1, + sizeof(asn_DEF_ITIScodesAndText_tags_1) + /sizeof(asn_DEF_ITIScodesAndText_tags_1[0]), /* 1 */ + asn_DEF_ITIScodesAndText_tags_1, /* Same as above */ + sizeof(asn_DEF_ITIScodesAndText_tags_1) + /sizeof(asn_DEF_ITIScodesAndText_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ITIScodesAndText_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ITIScodesAndText_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ITIScodesAndText_1, + 1, /* Single element */ + &asn_SPC_ITIScodesAndText_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ITIStext.c b/src/tmx/Asn_J2735/src/2020/ITIStext.c new file mode 100644 index 000000000..4f2e6c29e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ITIStext.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ITIStext.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +int +ITIStext_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 500UL) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ITIStext_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..500)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ITIStext_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 9, 9, 1, 500 } /* (SIZE(1..500)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ITIStext_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ITIStext = { + "ITIStext", + "ITIStext", + &asn_OP_IA5String, + asn_DEF_ITIStext_tags_1, + sizeof(asn_DEF_ITIStext_tags_1) + /sizeof(asn_DEF_ITIStext_tags_1[0]), /* 1 */ + asn_DEF_ITIStext_tags_1, /* Same as above */ + sizeof(asn_DEF_ITIStext_tags_1) + /sizeof(asn_DEF_ITIStext_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ITIStext_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ITIStext_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ITIStext_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ITIStextPhrase.c b/src/tmx/Asn_J2735/src/2020/ITIStextPhrase.c new file mode 100644 index 000000000..a50f148ec --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ITIStextPhrase.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ITIStextPhrase.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +int +ITIStextPhrase_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 16UL) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ITIStextPhrase_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ITIStextPhrase_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ITIStextPhrase_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ITIStextPhrase = { + "ITIStextPhrase", + "ITIStextPhrase", + &asn_OP_IA5String, + asn_DEF_ITIStextPhrase_tags_1, + sizeof(asn_DEF_ITIStextPhrase_tags_1) + /sizeof(asn_DEF_ITIStextPhrase_tags_1[0]), /* 1 */ + asn_DEF_ITIStextPhrase_tags_1, /* Same as above */ + sizeof(asn_DEF_ITIStextPhrase_tags_1) + /sizeof(asn_DEF_ITIStextPhrase_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ITIStextPhrase_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ITIStextPhrase_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ITIStextPhrase_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IncidentResponseEquipment.c b/src/tmx/Asn_J2735/src/2020/IncidentResponseEquipment.c new file mode 100644 index 000000000..5ea878799 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IncidentResponseEquipment.c @@ -0,0 +1,210 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IncidentResponseEquipment.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_IncidentResponseEquipment_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_IncidentResponseEquipment_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 71 } /* (0..71,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_IncidentResponseEquipment_value2enum_1[] = { + { 9985, 23, "ground-fire-suppression" }, + { 9986, 22, "heavy-ground-equipment" }, + { 9988, 8, "aircraft" }, + { 9989, 16, "marine-equipment" }, + { 9990, 17, "support-equipment" }, + { 9991, 19, "medical-rescue-unit" }, + { 9993, 5, "other" }, + { 9994, 29, "ground-fire-suppression-other" }, + { 9995, 6, "engine" }, + { 9996, 15, "truck-or-aerial" }, + { 9997, 5, "quint" }, + { 9998, 25, "tanker-pumper-combination" }, + { 10000, 11, "brush-truck" }, + { 10001, 28, "aircraft-rescue-firefighting" }, + { 10004, 28, "heavy-ground-equipment-other" }, + { 10005, 13, "dozer-or-plow" }, + { 10006, 7, "tractor" }, + { 10008, 16, "tanker-or-tender" }, + { 10024, 14, "aircraft-other" }, + { 10025, 26, "aircraft-fixed-wing-tanker" }, + { 10026, 10, "helitanker" }, + { 10027, 10, "helicopter" }, + { 10034, 22, "marine-equipment-other" }, + { 10035, 19, "fire-boat-with-pump" }, + { 10036, 12, "boat-no-pump" }, + { 10044, 23, "support-apparatus-other" }, + { 10045, 27, "breathing-apparatus-support" }, + { 10046, 18, "light-and-air-unit" }, + { 10054, 25, "medical-rescue-unit-other" }, + { 10055, 11, "rescue-unit" }, + { 10056, 24, "urban-search-rescue-unit" }, + { 10057, 17, "high-angle-rescue" }, + { 10058, 17, "crash-fire-rescue" }, + { 10059, 8, "bLS-unit" }, + { 10060, 8, "aLS-unit" }, + { 10075, 19, "mobile-command-post" }, + { 10076, 17, "chief-officer-car" }, + { 10077, 11, "hAZMAT-unit" }, + { 10078, 16, "type-i-hand-crew" }, + { 10079, 17, "type-ii-hand-crew" }, + { 10083, 23, "privately-owned-vehicle" }, + { 10084, 24, "other-apparatus-resource" }, + { 10085, 9, "ambulance" }, + { 10086, 14, "bomb-squad-van" }, + { 10087, 17, "combine-harvester" }, + { 10088, 20, "construction-vehicle" }, + { 10089, 12, "farm-tractor" }, + { 10090, 22, "grass-cutting-machines" }, + { 10091, 22, "hAZMAT-containment-tow" }, + { 10092, 9, "heavy-tow" }, + { 10093, 22, "hedge-cutting-machines" }, + { 10094, 9, "light-tow" }, + { 10095, 12, "mobile-crane" }, + { 10096, 25, "refuse-collection-vehicle" }, + { 10097, 19, "resurfacing-vehicle" }, + { 10098, 12, "road-sweeper" }, + { 10099, 32, "roadside-litter-collection-crews" }, + { 10100, 15, "salvage-vehicle" }, + { 10101, 10, "sand-truck" }, + { 10102, 8, "snowplow" }, + { 10103, 12, "steam-roller" }, + { 10104, 13, "swat-team-van" }, + { 10105, 20, "track-laying-vehicle" }, + { 10106, 15, "unknown-vehicle" }, + { 10107, 20, "white-lining-vehicle" }, + { 10108, 10, "dump-truck" }, + { 10109, 18, "supervisor-vehicle" }, + { 10110, 11, "snow-blower" }, + { 10111, 18, "rotary-snow-blower" }, + { 10112, 11, "road-grader" }, + { 10113, 11, "steam-truck" }, + { 10114, 11, "flatbed-tow" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_IncidentResponseEquipment_enum2value_1[] = { + 34, /* aLS-unit(10060) */ + 2, /* aircraft(9988) */ + 19, /* aircraft-fixed-wing-tanker(10025) */ + 18, /* aircraft-other(10024) */ + 13, /* aircraft-rescue-firefighting(10001) */ + 42, /* ambulance(10085) */ + 33, /* bLS-unit(10059) */ + 24, /* boat-no-pump(10036) */ + 43, /* bomb-squad-van(10086) */ + 26, /* breathing-apparatus-support(10045) */ + 12, /* brush-truck(10000) */ + 36, /* chief-officer-car(10076) */ + 44, /* combine-harvester(10087) */ + 45, /* construction-vehicle(10088) */ + 32, /* crash-fire-rescue(10058) */ + 15, /* dozer-or-plow(10005) */ + 65, /* dump-truck(10108) */ + 8, /* engine(9995) */ + 46, /* farm-tractor(10089) */ + 23, /* fire-boat-with-pump(10035) */ + 71, /* flatbed-tow(10114) */ + 47, /* grass-cutting-machines(10090) */ + 0, /* ground-fire-suppression(9985) */ + 7, /* ground-fire-suppression-other(9994) */ + 48, /* hAZMAT-containment-tow(10091) */ + 37, /* hAZMAT-unit(10077) */ + 1, /* heavy-ground-equipment(9986) */ + 14, /* heavy-ground-equipment-other(10004) */ + 49, /* heavy-tow(10092) */ + 50, /* hedge-cutting-machines(10093) */ + 21, /* helicopter(10027) */ + 20, /* helitanker(10026) */ + 31, /* high-angle-rescue(10057) */ + 27, /* light-and-air-unit(10046) */ + 51, /* light-tow(10094) */ + 3, /* marine-equipment(9989) */ + 22, /* marine-equipment-other(10034) */ + 5, /* medical-rescue-unit(9991) */ + 28, /* medical-rescue-unit-other(10054) */ + 35, /* mobile-command-post(10075) */ + 52, /* mobile-crane(10095) */ + 6, /* other(9993) */ + 41, /* other-apparatus-resource(10084) */ + 40, /* privately-owned-vehicle(10083) */ + 10, /* quint(9997) */ + 53, /* refuse-collection-vehicle(10096) */ + 29, /* rescue-unit(10055) */ + 54, /* resurfacing-vehicle(10097) */ + 69, /* road-grader(10112) */ + 55, /* road-sweeper(10098) */ + 56, /* roadside-litter-collection-crews(10099) */ + 68, /* rotary-snow-blower(10111) */ + 57, /* salvage-vehicle(10100) */ + 58, /* sand-truck(10101) */ + 67, /* snow-blower(10110) */ + 59, /* snowplow(10102) */ + 60, /* steam-roller(10103) */ + 70, /* steam-truck(10113) */ + 66, /* supervisor-vehicle(10109) */ + 25, /* support-apparatus-other(10044) */ + 4, /* support-equipment(9990) */ + 61, /* swat-team-van(10104) */ + 17, /* tanker-or-tender(10008) */ + 11, /* tanker-pumper-combination(9998) */ + 62, /* track-laying-vehicle(10105) */ + 16, /* tractor(10006) */ + 9, /* truck-or-aerial(9996) */ + 38, /* type-i-hand-crew(10078) */ + 39, /* type-ii-hand-crew(10079) */ + 63, /* unknown-vehicle(10106) */ + 30, /* urban-search-rescue-unit(10056) */ + 64 /* white-lining-vehicle(10107) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_IncidentResponseEquipment_specs_1 = { + asn_MAP_IncidentResponseEquipment_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_IncidentResponseEquipment_enum2value_1, /* N => "tag"; sorted by N */ + 72, /* Number of elements in the maps */ + 73, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_IncidentResponseEquipment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IncidentResponseEquipment = { + "IncidentResponseEquipment", + "IncidentResponseEquipment", + &asn_OP_NativeEnumerated, + asn_DEF_IncidentResponseEquipment_tags_1, + sizeof(asn_DEF_IncidentResponseEquipment_tags_1) + /sizeof(asn_DEF_IncidentResponseEquipment_tags_1[0]), /* 1 */ + asn_DEF_IncidentResponseEquipment_tags_1, /* Same as above */ + sizeof(asn_DEF_IncidentResponseEquipment_tags_1) + /sizeof(asn_DEF_IncidentResponseEquipment_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_IncidentResponseEquipment_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_IncidentResponseEquipment_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_IncidentResponseEquipment_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IntersectionAccessPoint.c b/src/tmx/Asn_J2735/src/2020/IntersectionAccessPoint.c new file mode 100644 index 000000000..9a11cf9f7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IntersectionAccessPoint.c @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IntersectionAccessPoint.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_IntersectionAccessPoint_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ApproachID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "approach" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneConnectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionAccessPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* approach */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connection */ +}; +asn_CHOICE_specifics_t asn_SPC_IntersectionAccessPoint_specs_1 = { + sizeof(struct IntersectionAccessPoint), + offsetof(struct IntersectionAccessPoint, _asn_ctx), + offsetof(struct IntersectionAccessPoint, present), + sizeof(((struct IntersectionAccessPoint *)0)->present), + asn_MAP_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionAccessPoint = { + "IntersectionAccessPoint", + "IntersectionAccessPoint", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_IntersectionAccessPoint_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_IntersectionAccessPoint_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IntersectionCollision.c b/src/tmx/Asn_J2735/src/2020/IntersectionCollision.c new file mode 100644 index 000000000..03e0ec91c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IntersectionCollision.c @@ -0,0 +1,337 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IntersectionCollision" + * found in "J2735-IntersectionCollision.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IntersectionCollision.h" + +#include "BSMcoreData.h" +#include "PathHistory.h" +#include "PathPrediction.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionCollision, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct IntersectionCollision__regional), + offsetof(struct IntersectionCollision__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_11, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionCollision_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IntersectionCollision, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionCollision, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 4, offsetof(struct IntersectionCollision, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 3, offsetof(struct IntersectionCollision, partOne), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BSMcoreData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "partOne" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionCollision, path), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathHistory, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "path" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionCollision, pathPrediction), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathPrediction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pathPrediction" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionCollision, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "intersectionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionCollision, laneNumber), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ApproachOrLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionCollision, eventFlag), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleEventFlags, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventFlag" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionCollision, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_11, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionCollision_oms_1[] = { 2, 3, 4, 5, 9 }; +static const ber_tlv_tag_t asn_DEF_IntersectionCollision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionCollision_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* partOne */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* path */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* pathPrediction */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* intersectionID */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* laneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* eventFlag */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionCollision_specs_1 = { + sizeof(struct IntersectionCollision), + offsetof(struct IntersectionCollision, _asn_ctx), + asn_MAP_IntersectionCollision_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_IntersectionCollision_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionCollision = { + "IntersectionCollision", + "IntersectionCollision", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionCollision_tags_1, + sizeof(asn_DEF_IntersectionCollision_tags_1) + /sizeof(asn_DEF_IntersectionCollision_tags_1[0]), /* 1 */ + asn_DEF_IntersectionCollision_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionCollision_tags_1) + /sizeof(asn_DEF_IntersectionCollision_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_IntersectionCollision_1, + 10, /* Elements count */ + &asn_SPC_IntersectionCollision_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IntersectionGeometry.c b/src/tmx/Asn_J2735/src/2020/IntersectionGeometry.c new file mode 100644 index 000000000..a22e555ae --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IntersectionGeometry.c @@ -0,0 +1,318 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IntersectionGeometry.h" + +#include "SpeedLimitList.h" +#include "PreemptPriorityList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionGeometry, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct IntersectionGeometry__regional), + offsetof(struct IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_10, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_10, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneSet" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PreemptPriorityList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "preemptPriorityData" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_10, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_10, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionGeometry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preemptPriorityData */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionGeometry_specs_1 = { + sizeof(struct IntersectionGeometry), + offsetof(struct IntersectionGeometry, _asn_ctx), + asn_MAP_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionGeometry_tags_1, + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_IntersectionGeometry_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IntersectionGeometryList.c b/src/tmx/Asn_J2735/src/2020/IntersectionGeometryList.c new file mode 100644 index 000000000..ac670dc8c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IntersectionGeometryList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IntersectionGeometryList.h" + +#include "IntersectionGeometry.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionGeometry, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionGeometryList_specs_1 = { + sizeof(struct IntersectionGeometryList), + offsetof(struct IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_IntersectionGeometryList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_IntersectionGeometryList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_IntersectionGeometryList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IntersectionID.c b/src/tmx/Asn_J2735/src/2020/IntersectionID.c new file mode 100644 index 000000000..51dc59f88 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IntersectionID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IntersectionID.h" + +int +IntersectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_IntersectionID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_IntersectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_IntersectionID_tags_1, + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionID_tags_1) + /sizeof(asn_DEF_IntersectionID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_IntersectionID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_IntersectionID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + IntersectionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IntersectionReferenceID.c b/src/tmx/Asn_J2735/src/2020/IntersectionReferenceID.c new file mode 100644 index 000000000..1f27c70c5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IntersectionReferenceID.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionReferenceID_specs_1 = { + sizeof(struct IntersectionReferenceID), + offsetof(struct IntersectionReferenceID, _asn_ctx), + asn_MAP_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_IntersectionReferenceID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IntersectionState-addGrpC.c b/src/tmx/Asn_J2735/src/2020/IntersectionState-addGrpC.c new file mode 100644 index 000000000..4f3379fa6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IntersectionState-addGrpC.c @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IntersectionState-addGrpC.h" + +#include "PrioritizationResponseList.h" +asn_TYPE_member_t asn_MBR_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "activePrioritizations" + }, +}; +static const int asn_MAP_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_addGrpC_specs_1 = { + sizeof(struct IntersectionState_addGrpC), + offsetof(struct IntersectionState_addGrpC, _asn_ctx), + asn_MAP_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IntersectionState.c b/src/tmx/Asn_J2735/src/2020/IntersectionState.c new file mode 100644 index 000000000..ebbeff952 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IntersectionState.c @@ -0,0 +1,336 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IntersectionState.h" + +#include "EnabledLaneList.h" +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_IntersectionState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct IntersectionState__regional), + offsetof(struct IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_11, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStatusObject, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 3, offsetof(struct IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "moy" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EnabledLaneList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "enabledLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "states" + }, + { ATF_POINTER, 2, offsetof(struct IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_11, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_IntersectionState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* moy */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* enabledLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* states */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_IntersectionState_specs_1 = { + sizeof(struct IntersectionState), + offsetof(struct IntersectionState, _asn_ctx), + asn_MAP_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_IntersectionState_tags_1, + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionState_tags_1) + /sizeof(asn_DEF_IntersectionState_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IntersectionStateList.c b/src/tmx/Asn_J2735/src/2020/IntersectionStateList.c new file mode 100644 index 000000000..0ad68cf85 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IntersectionStateList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IntersectionStateList.h" + +#include "IntersectionState.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_IntersectionStateList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntersectionStateList_specs_1 = { + sizeof(struct IntersectionStateList), + offsetof(struct IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntersectionStateList_tags_1, + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStateList_tags_1) + /sizeof(asn_DEF_IntersectionStateList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_IntersectionStateList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_IntersectionStateList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IntersectionStatusObject.c b/src/tmx/Asn_J2735/src/2020/IntersectionStatusObject.c new file mode 100644 index 000000000..2de1dc5fc --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IntersectionStatusObject.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IntersectionStatusObject.h" + +int +IntersectionStatusObject_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_IntersectionStatusObject_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_IntersectionStatusObject_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_IntersectionStatusObject_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + IntersectionStatusObject_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/IsDolly.c b/src/tmx/Asn_J2735/src/2020/IsDolly.c new file mode 100644 index 000000000..a01864079 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/IsDolly.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "IsDolly.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_IsDolly_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IsDolly = { + "IsDolly", + "IsDolly", + &asn_OP_BOOLEAN, + asn_DEF_IsDolly_tags_1, + sizeof(asn_DEF_IsDolly_tags_1) + /sizeof(asn_DEF_IsDolly_tags_1[0]), /* 1 */ + asn_DEF_IsDolly_tags_1, /* Same as above */ + sizeof(asn_DEF_IsDolly_tags_1) + /sizeof(asn_DEF_IsDolly_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BOOLEAN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Iso3833VehicleType.c b/src/tmx/Asn_J2735/src/2020/Iso3833VehicleType.c new file mode 100644 index 000000000..edcc91cec --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Iso3833VehicleType.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Iso3833VehicleType.h" + +int +Iso3833VehicleType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 100L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Iso3833VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Iso3833VehicleType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Iso3833VehicleType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Iso3833VehicleType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Iso3833VehicleType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/J1939data.c b/src/tmx/Asn_J2735/src/2020/J1939data.c new file mode 100644 index 000000000..ef05509ba --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/J1939data.c @@ -0,0 +1,232 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "J1939data.h" + +#include "TireDataList.h" +#include "AxleWeightList.h" +asn_TYPE_member_t asn_MBR_J1939data_1[] = { + { ATF_POINTER, 10, offsetof(struct J1939data, tires), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TireDataList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "tires" + }, + { ATF_POINTER, 9, offsetof(struct J1939data, axles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AxleWeightList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "axles" + }, + { ATF_POINTER, 8, offsetof(struct J1939data, trailerWeight), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerWeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerWeight" + }, + { ATF_POINTER, 7, offsetof(struct J1939data, cargoWeight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CargoWeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cargoWeight" + }, + { ATF_POINTER, 6, offsetof(struct J1939data, steeringAxleTemperature), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringAxleTemperature, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "steeringAxleTemperature" + }, + { ATF_POINTER, 5, offsetof(struct J1939data, driveAxleLocation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DriveAxleLocation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "driveAxleLocation" + }, + { ATF_POINTER, 4, offsetof(struct J1939data, driveAxleLiftAirPressure), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DriveAxleLiftAirPressure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "driveAxleLiftAirPressure" + }, + { ATF_POINTER, 3, offsetof(struct J1939data, driveAxleTemperature), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DriveAxleTemperature, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "driveAxleTemperature" + }, + { ATF_POINTER, 2, offsetof(struct J1939data, driveAxleLubePressure), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DriveAxleLubePressure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "driveAxleLubePressure" + }, + { ATF_POINTER, 1, offsetof(struct J1939data, steeringAxleLubePressure), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringAxleLubePressure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "steeringAxleLubePressure" + }, +}; +static const int asn_MAP_J1939data_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_J1939data_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_J1939data_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tires */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* axles */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* trailerWeight */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cargoWeight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* steeringAxleTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* driveAxleLocation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* driveAxleLiftAirPressure */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* driveAxleTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* driveAxleLubePressure */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* steeringAxleLubePressure */ +}; +asn_SEQUENCE_specifics_t asn_SPC_J1939data_specs_1 = { + sizeof(struct J1939data), + offsetof(struct J1939data, _asn_ctx), + asn_MAP_J1939data_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_J1939data_oms_1, /* Optional members */ + 10, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_J1939data = { + "J1939data", + "J1939data", + &asn_OP_SEQUENCE, + asn_DEF_J1939data_tags_1, + sizeof(asn_DEF_J1939data_tags_1) + /sizeof(asn_DEF_J1939data_tags_1[0]), /* 1 */ + asn_DEF_J1939data_tags_1, /* Same as above */ + sizeof(asn_DEF_J1939data_tags_1) + /sizeof(asn_DEF_J1939data_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_J1939data_1, + 10, /* Elements count */ + &asn_SPC_J1939data_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneAttributes-Barrier.c b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Barrier.c new file mode 100644 index 000000000..0e31320f1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Barrier.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneAttributes-Barrier.h" + +int +LaneAttributes_Barrier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneAttributes_Barrier_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneAttributes_Barrier_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneAttributes_Barrier_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneAttributes-Bike.c b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Bike.c new file mode 100644 index 000000000..d2e15552a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Bike.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneAttributes-Bike.h" + +int +LaneAttributes_Bike_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_LaneAttributes_Bike_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneAttributes_Bike_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneAttributes_Bike_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneAttributes_Bike_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneAttributes-Crosswalk.c b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Crosswalk.c new file mode 100644 index 000000000..07ef319a6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Crosswalk.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneAttributes-Crosswalk.h" + +int +LaneAttributes_Crosswalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneAttributes_Crosswalk_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneAttributes_Crosswalk_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneAttributes_Crosswalk_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneAttributes-Parking.c b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Parking.c new file mode 100644 index 000000000..5d2b60989 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Parking.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneAttributes-Parking.h" + +int +LaneAttributes_Parking_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_LaneAttributes_Parking_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneAttributes_Parking_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneAttributes_Parking_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneAttributes_Parking_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneAttributes-Sidewalk.c b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Sidewalk.c new file mode 100644 index 000000000..ccdabea46 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Sidewalk.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneAttributes-Sidewalk.h" + +int +LaneAttributes_Sidewalk_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneAttributes_Sidewalk_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneAttributes_Sidewalk_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneAttributes_Sidewalk_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneAttributes-Striping.c b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Striping.c new file mode 100644 index 000000000..cbe9458f2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Striping.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneAttributes-Striping.h" + +int +LaneAttributes_Striping_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_LaneAttributes_Striping_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneAttributes_Striping_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneAttributes_Striping_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneAttributes_Striping_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneAttributes-TrackedVehicle.c b/src/tmx/Asn_J2735/src/2020/LaneAttributes-TrackedVehicle.c new file mode 100644 index 000000000..c94969954 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneAttributes-TrackedVehicle.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneAttributes-TrackedVehicle.h" + +int +LaneAttributes_TrackedVehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneAttributes_TrackedVehicle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneAttributes_TrackedVehicle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneAttributes_TrackedVehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneAttributes-Vehicle.c b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Vehicle.c new file mode 100644 index 000000000..67e597058 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneAttributes-Vehicle.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneAttributes-Vehicle.h" + +int +LaneAttributes_Vehicle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneAttributes_Vehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneAttributes_Vehicle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneAttributes_Vehicle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneAttributes_Vehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneAttributes.c b/src/tmx/Asn_J2735/src/2020/LaneAttributes.c new file mode 100644 index 000000000..ba43b0bfb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneAttributes.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneAttributes.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDirection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "directionalUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneSharing, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sharedWith" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LaneTypeAttributes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_LaneAttributes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directionalUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedWith */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneAttributes_specs_1 = { + sizeof(struct LaneAttributes), + offsetof(struct LaneAttributes, _asn_ctx), + asn_MAP_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_LaneAttributes_tags_1, + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneAttributes_tags_1) + /sizeof(asn_DEF_LaneAttributes_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneConnectionID.c b/src/tmx/Asn_J2735/src/2020/LaneConnectionID.c new file mode 100644 index 000000000..fdb2b669a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneConnectionID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneConnectionID.h" + +int +LaneConnectionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneConnectionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_LaneConnectionID_tags_1, + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneConnectionID_tags_1) + /sizeof(asn_DEF_LaneConnectionID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneConnectionID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneConnectionID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneConnectionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneDataAttribute-addGrpB.c b/src/tmx/Asn_J2735/src/2020/LaneDataAttribute-addGrpB.c new file mode 100644 index 000000000..188e48b7b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneDataAttribute-addGrpB.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneDataAttribute-addGrpB.h" + +static const ber_tlv_tag_t asn_DEF_LaneDataAttribute_addGrpB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SEQUENCE_specifics_t asn_SPC_LaneDataAttribute_addGrpB_specs_1 = { + sizeof(struct LaneDataAttribute_addGrpB), + offsetof(struct LaneDataAttribute_addGrpB, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute_addGrpB = { + "LaneDataAttribute-addGrpB", + "LaneDataAttribute-addGrpB", + &asn_OP_SEQUENCE, + asn_DEF_LaneDataAttribute_addGrpB_tags_1, + sizeof(asn_DEF_LaneDataAttribute_addGrpB_tags_1) + /sizeof(asn_DEF_LaneDataAttribute_addGrpB_tags_1[0]), /* 1 */ + asn_DEF_LaneDataAttribute_addGrpB_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDataAttribute_addGrpB_tags_1) + /sizeof(asn_DEF_LaneDataAttribute_addGrpB_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_LaneDataAttribute_addGrpB_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneDataAttribute.c b/src/tmx/Asn_J2735/src/2020/LaneDataAttribute.c new file mode 100644 index 000000000..2f2bb5ec0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneDataAttribute.c @@ -0,0 +1,287 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneDataAttribute.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneDataAttribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_LaneDataAttribute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct LaneDataAttribute__regional), + offsetof(struct LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pathEndPointAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneCrownPointCenter" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneCrownPointLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadwayCrownAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneCrownPointRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MergeDivergeNodeAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneDataAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathEndPointAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneCrownPointCenter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCrownPointLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneCrownPointRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAngle */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneDataAttribute_specs_1 = { + sizeof(struct LaneDataAttribute), + offsetof(struct LaneDataAttribute, _asn_ctx), + offsetof(struct LaneDataAttribute, present), + sizeof(((struct LaneDataAttribute *)0)->present), + asn_MAP_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttribute = { + "LaneDataAttribute", + "LaneDataAttribute", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneDataAttribute_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneDataAttribute_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneDataAttributeList.c b/src/tmx/Asn_J2735/src/2020/LaneDataAttributeList.c new file mode 100644 index 000000000..2dd3488e2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneDataAttributeList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneDataAttributeList.h" + +#include "LaneDataAttribute.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneDataAttributeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_LaneDataAttribute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneDataAttributeList_specs_1 = { + sizeof(struct LaneDataAttributeList), + offsetof(struct LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_LaneDataAttributeList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneDataAttributeList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneDataAttributeList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneDirection.c b/src/tmx/Asn_J2735/src/2020/LaneDirection.c new file mode 100644 index 000000000..b0338e8ba --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneDirection.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneDirection.h" + +int +LaneDirection_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 2UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneDirection_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneDirection_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_LaneDirection_tags_1, + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneDirection_tags_1) + /sizeof(asn_DEF_LaneDirection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneDirection_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneDirection_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneDirection_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneID.c b/src/tmx/Asn_J2735/src/2020/LaneID.c new file mode 100644 index 000000000..28cd36ad4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneID.h" + +int +LaneID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_LaneID_tags_1, + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + asn_DEF_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneID_tags_1) + /sizeof(asn_DEF_LaneID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneList.c b/src/tmx/Asn_J2735/src/2020/LaneList.c new file mode 100644 index 000000000..84cd9fdc3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneList.h" + +#include "GenericLane.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_LaneList_specs_1 = { + sizeof(struct LaneList), + offsetof(struct LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_LaneList_tags_1, + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + asn_DEF_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneList_tags_1) + /sizeof(asn_DEF_LaneList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_LaneList_1, + 1, /* Single element */ + &asn_SPC_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneSharing.c b/src/tmx/Asn_J2735/src/2020/LaneSharing.c new file mode 100644 index 000000000..b9aa5a65b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneSharing.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneSharing.h" + +int +LaneSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneSharing_constr_1 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneSharing_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_LaneSharing_tags_1, + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneSharing_tags_1) + /sizeof(asn_DEF_LaneSharing_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneSharing_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneSharing_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneSharing_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneTypeAttributes.c b/src/tmx/Asn_J2735/src/2020/LaneTypeAttributes.c new file mode 100644 index 000000000..173244919 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneTypeAttributes.c @@ -0,0 +1,201 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneTypeAttributes.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Vehicle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Crosswalk, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "crosswalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Bike, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "bikeLane" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Sidewalk, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sidewalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Barrier, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "median" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Striping, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "striping" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_TrackedVehicle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trackedVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneAttributes_Parking, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "parking" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_LaneTypeAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* crosswalk */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bikeLane */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sidewalk */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* median */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* striping */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* trackedVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* parking */ +}; +asn_CHOICE_specifics_t asn_SPC_LaneTypeAttributes_specs_1 = { + sizeof(struct LaneTypeAttributes), + offsetof(struct LaneTypeAttributes, _asn_ctx), + offsetof(struct LaneTypeAttributes, present), + sizeof(((struct LaneTypeAttributes *)0)->present), + asn_MAP_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LaneTypeAttributes = { + "LaneTypeAttributes", + "LaneTypeAttributes", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneTypeAttributes_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneTypeAttributes_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LaneWidth.c b/src/tmx/Asn_J2735/src/2020/LaneWidth.c new file mode 100644 index 000000000..6c2f65a00 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LaneWidth.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LaneWidth.h" + +int +LaneWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LaneWidth_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LaneWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_LaneWidth_tags_1, + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_LaneWidth_tags_1) + /sizeof(asn_DEF_LaneWidth_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LaneWidth_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LaneWidth_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LaneWidth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Latitude.c b/src/tmx/Asn_J2735/src/2020/Latitude.c new file mode 100644 index 000000000..a7a44707b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Latitude.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Latitude.h" + +int +Latitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -900000000L && value <= 900000001L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Latitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-900000000..900000001) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Latitude_tags_1, + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Latitude_tags_1) + /sizeof(asn_DEF_Latitude_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Latitude_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Latitude_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Latitude_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LatitudeDMS.c b/src/tmx/Asn_J2735/src/2020/LatitudeDMS.c new file mode 100644 index 000000000..3ce590877 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LatitudeDMS.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LatitudeDMS.h" + +int +LatitudeDMS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32400000L && value <= 32400000L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LatitudeDMS_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-32400000..32400000) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LatitudeDMS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 26, -1, -32400000, 32400000 } /* (-32400000..32400000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LatitudeDMS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LatitudeDMS = { + "LatitudeDMS", + "LatitudeDMS", + &asn_OP_NativeInteger, + asn_DEF_LatitudeDMS_tags_1, + sizeof(asn_DEF_LatitudeDMS_tags_1) + /sizeof(asn_DEF_LatitudeDMS_tags_1[0]), /* 1 */ + asn_DEF_LatitudeDMS_tags_1, /* Same as above */ + sizeof(asn_DEF_LatitudeDMS_tags_1) + /sizeof(asn_DEF_LatitudeDMS_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LatitudeDMS_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LatitudeDMS_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LatitudeDMS_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LatitudeDMS2.c b/src/tmx/Asn_J2735/src/2020/LatitudeDMS2.c new file mode 100644 index 000000000..0b4d8277e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LatitudeDMS2.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LatitudeDMS2.h" + +asn_TYPE_member_t asn_MBR_LatitudeDMS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LatitudeDMS2, d), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DegreesLat, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "d" + }, + { ATF_NOFLAGS, 0, offsetof(struct LatitudeDMS2, m), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinutesAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "m" + }, + { ATF_NOFLAGS, 0, offsetof(struct LatitudeDMS2, s), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecondsAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "s" + }, +}; +static const ber_tlv_tag_t asn_DEF_LatitudeDMS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LatitudeDMS2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* d */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* s */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LatitudeDMS2_specs_1 = { + sizeof(struct LatitudeDMS2), + offsetof(struct LatitudeDMS2, _asn_ctx), + asn_MAP_LatitudeDMS2_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LatitudeDMS2 = { + "LatitudeDMS2", + "LatitudeDMS2", + &asn_OP_SEQUENCE, + asn_DEF_LatitudeDMS2_tags_1, + sizeof(asn_DEF_LatitudeDMS2_tags_1) + /sizeof(asn_DEF_LatitudeDMS2_tags_1[0]), /* 1 */ + asn_DEF_LatitudeDMS2_tags_1, /* Same as above */ + sizeof(asn_DEF_LatitudeDMS2_tags_1) + /sizeof(asn_DEF_LatitudeDMS2_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_LatitudeDMS2_1, + 3, /* Elements count */ + &asn_SPC_LatitudeDMS2_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LayerID.c b/src/tmx/Asn_J2735/src/2020/LayerID.c new file mode 100644 index 000000000..194de2eb5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LayerID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LayerID.h" + +int +LayerID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 100L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LayerID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LayerID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_LayerID_tags_1, + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + asn_DEF_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerID_tags_1) + /sizeof(asn_DEF_LayerID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LayerID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LayerID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LayerID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LayerType.c b/src/tmx/Asn_J2735/src/2020/LayerType.c new file mode 100644 index 000000000..871222e53 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LayerType.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LayerType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LayerType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LayerType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_LayerType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 12, "mixedContent" }, + { 2, 14, "generalMapData" }, + { 3, 16, "intersectionData" }, + { 4, 9, "curveData" }, + { 5, 18, "roadwaySectionData" }, + { 6, 15, "parkingAreaData" }, + { 7, 14, "sharedLaneData" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_LayerType_enum2value_1[] = { + 4, /* curveData(4) */ + 2, /* generalMapData(2) */ + 3, /* intersectionData(3) */ + 1, /* mixedContent(1) */ + 0, /* none(0) */ + 6, /* parkingAreaData(6) */ + 5, /* roadwaySectionData(5) */ + 7 /* sharedLaneData(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_LayerType_specs_1 = { + asn_MAP_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LayerType_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_LayerType_tags_1, + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + asn_DEF_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_LayerType_tags_1) + /sizeof(asn_DEF_LayerType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LayerType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LayerType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LightbarInUse.c b/src/tmx/Asn_J2735/src/2020/LightbarInUse.c new file mode 100644 index 000000000..92ea3f09d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LightbarInUse.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LightbarInUse.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LightbarInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LightbarInUse_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_LightbarInUse_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 8, "notInUse" }, + { 2, 5, "inUse" }, + { 3, 19, "yellowCautionLights" }, + { 4, 16, "schooldBusLights" }, + { 5, 16, "arrowSignsActive" }, + { 6, 17, "slowMovingVehicle" }, + { 7, 9, "freqStops" } +}; +static const unsigned int asn_MAP_LightbarInUse_enum2value_1[] = { + 5, /* arrowSignsActive(5) */ + 7, /* freqStops(7) */ + 2, /* inUse(2) */ + 1, /* notInUse(1) */ + 4, /* schooldBusLights(4) */ + 6, /* slowMovingVehicle(6) */ + 0, /* unavailable(0) */ + 3 /* yellowCautionLights(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_LightbarInUse_specs_1 = { + asn_MAP_LightbarInUse_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LightbarInUse_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_LightbarInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LightbarInUse = { + "LightbarInUse", + "LightbarInUse", + &asn_OP_NativeEnumerated, + asn_DEF_LightbarInUse_tags_1, + sizeof(asn_DEF_LightbarInUse_tags_1) + /sizeof(asn_DEF_LightbarInUse_tags_1[0]), /* 1 */ + asn_DEF_LightbarInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_LightbarInUse_tags_1) + /sizeof(asn_DEF_LightbarInUse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LightbarInUse_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LightbarInUse_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LightbarInUse_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Location-quality.c b/src/tmx/Asn_J2735/src/2020/Location-quality.c new file mode 100644 index 000000000..7ffa9baa5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Location-quality.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Location-quality.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Location_quality_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_Location_quality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_Location_quality_value2enum_1[] = { + { 0, 13, "loc-qual-bt1m" }, + { 1, 13, "loc-qual-bt5m" }, + { 2, 14, "loc-qual-bt12m" }, + { 3, 14, "loc-qual-bt50m" }, + { 4, 15, "loc-qual-bt125m" }, + { 5, 15, "loc-qual-bt500m" }, + { 6, 16, "loc-qual-bt1250m" }, + { 7, 16, "loc-qual-unknown" } +}; +static const unsigned int asn_MAP_Location_quality_enum2value_1[] = { + 6, /* loc-qual-bt1250m(6) */ + 4, /* loc-qual-bt125m(4) */ + 2, /* loc-qual-bt12m(2) */ + 0, /* loc-qual-bt1m(0) */ + 5, /* loc-qual-bt500m(5) */ + 3, /* loc-qual-bt50m(3) */ + 1, /* loc-qual-bt5m(1) */ + 7 /* loc-qual-unknown(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_Location_quality_specs_1 = { + asn_MAP_Location_quality_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Location_quality_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Location_quality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Location_quality = { + "Location-quality", + "Location-quality", + &asn_OP_NativeEnumerated, + asn_DEF_Location_quality_tags_1, + sizeof(asn_DEF_Location_quality_tags_1) + /sizeof(asn_DEF_Location_quality_tags_1[0]), /* 1 */ + asn_DEF_Location_quality_tags_1, /* Same as above */ + sizeof(asn_DEF_Location_quality_tags_1) + /sizeof(asn_DEF_Location_quality_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Location_quality_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Location_quality_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Location_quality_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Location-tech.c b/src/tmx/Asn_J2735/src/2020/Location-tech.c new file mode 100644 index 000000000..fdde718c5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Location-tech.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Location-tech.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Location_tech_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_Location_tech_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 9 } /* (0..9,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_Location_tech_value2enum_1[] = { + { 0, 16, "loc-tech-unknown" }, + { 1, 13, "loc-tech-GNSS" }, + { 2, 13, "loc-tech-DGPS" }, + { 3, 12, "loc-tech-RTK" }, + { 4, 12, "loc-tech-PPP" }, + { 5, 14, "loc-tech-drGPS" }, + { 6, 15, "loc-tech-drDGPS" }, + { 7, 11, "loc-tech-dr" }, + { 8, 12, "loc-tech-nav" }, + { 9, 14, "loc-tech-fault" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Location_tech_enum2value_1[] = { + 2, /* loc-tech-DGPS(2) */ + 1, /* loc-tech-GNSS(1) */ + 4, /* loc-tech-PPP(4) */ + 3, /* loc-tech-RTK(3) */ + 7, /* loc-tech-dr(7) */ + 6, /* loc-tech-drDGPS(6) */ + 5, /* loc-tech-drGPS(5) */ + 9, /* loc-tech-fault(9) */ + 8, /* loc-tech-nav(8) */ + 0 /* loc-tech-unknown(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_Location_tech_specs_1 = { + asn_MAP_Location_tech_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Location_tech_enum2value_1, /* N => "tag"; sorted by N */ + 10, /* Number of elements in the maps */ + 11, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Location_tech_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Location_tech = { + "Location-tech", + "Location-tech", + &asn_OP_NativeEnumerated, + asn_DEF_Location_tech_tags_1, + sizeof(asn_DEF_Location_tech_tags_1) + /sizeof(asn_DEF_Location_tech_tags_1[0]), /* 1 */ + asn_DEF_Location_tech_tags_1, /* Same as above */ + sizeof(asn_DEF_Location_tech_tags_1) + /sizeof(asn_DEF_Location_tech_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Location_tech_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Location_tech_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Location_tech_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Longitude.c b/src/tmx/Asn_J2735/src/2020/Longitude.c new file mode 100644 index 000000000..3e9855526 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Longitude.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Longitude.h" + +int +Longitude_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1799999999L && value <= 1800000001L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1799999999..1800000001) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1799999999, 1800000001 } /* (-1799999999..1800000001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Longitude_tags_1, + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Longitude_tags_1) + /sizeof(asn_DEF_Longitude_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Longitude_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Longitude_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Longitude_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LongitudeDMS.c b/src/tmx/Asn_J2735/src/2020/LongitudeDMS.c new file mode 100644 index 000000000..ee6f12f53 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LongitudeDMS.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LongitudeDMS.h" + +int +LongitudeDMS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -64800000L && value <= 64800000L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_LongitudeDMS_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-64800000..64800000) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_LongitudeDMS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, -64800000, 64800000 } /* (-64800000..64800000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_LongitudeDMS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongitudeDMS = { + "LongitudeDMS", + "LongitudeDMS", + &asn_OP_NativeInteger, + asn_DEF_LongitudeDMS_tags_1, + sizeof(asn_DEF_LongitudeDMS_tags_1) + /sizeof(asn_DEF_LongitudeDMS_tags_1[0]), /* 1 */ + asn_DEF_LongitudeDMS_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudeDMS_tags_1) + /sizeof(asn_DEF_LongitudeDMS_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_LongitudeDMS_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_LongitudeDMS_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + LongitudeDMS_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/LongitudeDMS2.c b/src/tmx/Asn_J2735/src/2020/LongitudeDMS2.c new file mode 100644 index 000000000..a519dff0e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/LongitudeDMS2.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "LongitudeDMS2.h" + +asn_TYPE_member_t asn_MBR_LongitudeDMS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LongitudeDMS2, d), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DegreesLong, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "d" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudeDMS2, m), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinutesAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "m" + }, + { ATF_NOFLAGS, 0, offsetof(struct LongitudeDMS2, s), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecondsAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "s" + }, +}; +static const ber_tlv_tag_t asn_DEF_LongitudeDMS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LongitudeDMS2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* d */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* s */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LongitudeDMS2_specs_1 = { + sizeof(struct LongitudeDMS2), + offsetof(struct LongitudeDMS2, _asn_ctx), + asn_MAP_LongitudeDMS2_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LongitudeDMS2 = { + "LongitudeDMS2", + "LongitudeDMS2", + &asn_OP_SEQUENCE, + asn_DEF_LongitudeDMS2_tags_1, + sizeof(asn_DEF_LongitudeDMS2_tags_1) + /sizeof(asn_DEF_LongitudeDMS2_tags_1[0]), /* 1 */ + asn_DEF_LongitudeDMS2_tags_1, /* Same as above */ + sizeof(asn_DEF_LongitudeDMS2_tags_1) + /sizeof(asn_DEF_LongitudeDMS2_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_LongitudeDMS2_1, + 3, /* Elements count */ + &asn_SPC_LongitudeDMS2_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MUTCDCode.c b/src/tmx/Asn_J2735/src/2020/MUTCDCode.c new file mode 100644 index 000000000..7201e5b20 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MUTCDCode.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MUTCDCode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MUTCDCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MUTCDCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_MUTCDCode_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 10, "regulatory" }, + { 2, 7, "warning" }, + { 3, 11, "maintenance" }, + { 4, 15, "motoristService" }, + { 5, 5, "guide" }, + { 6, 3, "rec" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_MUTCDCode_enum2value_1[] = { + 5, /* guide(5) */ + 3, /* maintenance(3) */ + 4, /* motoristService(4) */ + 0, /* none(0) */ + 6, /* rec(6) */ + 1, /* regulatory(1) */ + 2 /* warning(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_MUTCDCode_specs_1 = { + asn_MAP_MUTCDCode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MUTCDCode_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MUTCDCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MUTCDCode = { + "MUTCDCode", + "MUTCDCode", + &asn_OP_NativeEnumerated, + asn_DEF_MUTCDCode_tags_1, + sizeof(asn_DEF_MUTCDCode_tags_1) + /sizeof(asn_DEF_MUTCDCode_tags_1[0]), /* 1 */ + asn_DEF_MUTCDCode_tags_1, /* Same as above */ + sizeof(asn_DEF_MUTCDCode_tags_1) + /sizeof(asn_DEF_MUTCDCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MUTCDCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MUTCDCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MUTCDCode_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ManeuverAssistList.c b/src/tmx/Asn_J2735/src/2020/ManeuverAssistList.c new file mode 100644 index 000000000..cc724b1b2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ManeuverAssistList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ManeuverAssistList.h" + +#include "ConnectionManeuverAssist.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ManeuverAssistList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ManeuverAssistList_specs_1 = { + sizeof(struct ManeuverAssistList), + offsetof(struct ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ManeuverAssistList_tags_1, + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ManeuverAssistList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ManeuverAssistList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ManeuverAssistList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MapData-addGrpC.c b/src/tmx/Asn_J2735/src/2020/MapData-addGrpC.c new file mode 100644 index 000000000..33688b225 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MapData-addGrpC.c @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MapData-addGrpC.h" + +#include "SignalHeadLocationList.h" +asn_TYPE_member_t asn_MBR_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalHeadLocationList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalHeadLocations" + }, +}; +static const int asn_MAP_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapData_addGrpC_specs_1 = { + sizeof(struct MapData_addGrpC), + offsetof(struct MapData_addGrpC, _asn_ctx), + asn_MAP_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_MapData_addGrpC_tags_1, + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_MapData_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MapData.c b/src/tmx/Asn_J2735/src/2020/MapData.c new file mode 100644 index 000000000..8595b19bf --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MapData.c @@ -0,0 +1,320 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MapData.h" + +#include "IntersectionGeometryList.h" +#include "RoadSegmentList.h" +#include "DataParameters.h" +#include "RestrictionClassList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MapData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct MapData__regional), + offsetof(struct MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_10, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_10, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgIssueRevision" + }, + { ATF_POINTER, 7, offsetof(struct MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "layerType" + }, + { ATF_POINTER, 6, offsetof(struct MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LayerID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "layerID" + }, + { ATF_POINTER, 5, offsetof(struct MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionGeometryList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 4, offsetof(struct MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadSegments" + }, + { ATF_POINTER, 3, offsetof(struct MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DataParameters, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dataParameters" + }, + { ATF_POINTER, 2, offsetof(struct MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "restrictionList" + }, + { ATF_POINTER, 1, offsetof(struct MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_10, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_10, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msgIssueRevision */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* layerType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* layerID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roadSegments */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dataParameters */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* restrictionList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MapData_specs_1 = { + sizeof(struct MapData), + offsetof(struct MapData, _asn_ctx), + asn_MAP_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_MapData_tags_1, + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + asn_DEF_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_MapData_tags_1) + /sizeof(asn_DEF_MapData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MapData_1, + 9, /* Elements count */ + &asn_SPC_MapData_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MaxTimetoChange.c b/src/tmx/Asn_J2735/src/2020/MaxTimetoChange.c new file mode 100644 index 000000000..c590cb20d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MaxTimetoChange.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MaxTimetoChange.h" + +int +MaxTimetoChange_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 2402L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MaxTimetoChange_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..2402) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MaxTimetoChange_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2402 } /* (0..2402) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MaxTimetoChange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MaxTimetoChange = { + "MaxTimetoChange", + "MaxTimetoChange", + &asn_OP_NativeInteger, + asn_DEF_MaxTimetoChange_tags_1, + sizeof(asn_DEF_MaxTimetoChange_tags_1) + /sizeof(asn_DEF_MaxTimetoChange_tags_1[0]), /* 1 */ + asn_DEF_MaxTimetoChange_tags_1, /* Same as above */ + sizeof(asn_DEF_MaxTimetoChange_tags_1) + /sizeof(asn_DEF_MaxTimetoChange_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MaxTimetoChange_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MaxTimetoChange_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MaxTimetoChange_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MergeDivergeNodeAngle.c b/src/tmx/Asn_J2735/src/2020/MergeDivergeNodeAngle.c new file mode 100644 index 000000000..cea87fe4b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MergeDivergeNodeAngle.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MergeDivergeNodeAngle.h" + +int +MergeDivergeNodeAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -180L && value <= 180L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-180..180) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -180, 180 } /* (-180..180) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MergeDivergeNodeAngle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MergeDivergeNodeAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MergeDivergeNodeAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MessageBLOB.c b/src/tmx/Asn_J2735/src/2020/MessageBLOB.c new file mode 100644 index 000000000..139d9f4c9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MessageBLOB.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MessageBLOB.h" + +int +MessageBLOB_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 10UL && size <= 2000UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MessageBLOB_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(10..2000)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_MessageBLOB_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 11, 11, 10, 2000 } /* (SIZE(10..2000)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MessageBLOB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MessageBLOB = { + "MessageBLOB", + "MessageBLOB", + &asn_OP_OCTET_STRING, + asn_DEF_MessageBLOB_tags_1, + sizeof(asn_DEF_MessageBLOB_tags_1) + /sizeof(asn_DEF_MessageBLOB_tags_1[0]), /* 1 */ + asn_DEF_MessageBLOB_tags_1, /* Same as above */ + sizeof(asn_DEF_MessageBLOB_tags_1) + /sizeof(asn_DEF_MessageBLOB_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MessageBLOB_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MessageBLOB_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MessageBLOB_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MessageFrame.c b/src/tmx/Asn_J2735/src/2020/MessageFrame.c new file mode 100644 index 000000000..8ca45438c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MessageFrame.c @@ -0,0 +1,872 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MessageFrame" + * found in "J2735-MessageFrame.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MessageFrame.h" + +static const long asn_VAL_1_basicSafetyMessage = 20; +static const long asn_VAL_2_mapData = 18; +static const long asn_VAL_3_signalPhaseAndTimingMessage = 19; +static const long asn_VAL_4_commonSafetyRequest = 21; +static const long asn_VAL_5_emergencyVehicleAlert = 22; +static const long asn_VAL_6_intersectionCollision = 23; +static const long asn_VAL_7_nmeaCorrections = 24; +static const long asn_VAL_8_probeDataManagement = 25; +static const long asn_VAL_9_probeVehicleData = 26; +static const long asn_VAL_10_roadSideAlert = 27; +static const long asn_VAL_11_rtcmCorrections = 28; +static const long asn_VAL_12_signalRequestMessage = 29; +static const long asn_VAL_13_signalStatusMessage = 30; +static const long asn_VAL_14_travelerInformation = 31; +static const long asn_VAL_15_personalSafetyMessage = 32; +static const long asn_VAL_16_testMessage00 = 240; +static const long asn_VAL_17_testMessage01 = 241; +static const long asn_VAL_18_testMessage02 = 242; +static const long asn_VAL_19_testMessage03 = 243; +static const long asn_VAL_20_testMessage04 = 244; +static const long asn_VAL_21_testMessage05 = 245; +static const long asn_VAL_22_testMessage06 = 246; +static const long asn_VAL_23_testMessage07 = 247; +static const long asn_VAL_24_testMessage08 = 248; +static const long asn_VAL_25_testMessage09 = 249; +static const long asn_VAL_26_testMessage10 = 250; +static const long asn_VAL_27_testMessage11 = 251; +static const long asn_VAL_28_testMessage12 = 252; +static const long asn_VAL_29_testMessage13 = 253; +static const long asn_VAL_30_testMessage14 = 254; +static const long asn_VAL_31_testMessage15 = 255; +static const asn_ioc_cell_t asn_IOS_MessageTypes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_1_basicSafetyMessage }, + { "&Type", aioc__type, &asn_DEF_BasicSafetyMessage }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_2_mapData }, + { "&Type", aioc__type, &asn_DEF_MapData }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_3_signalPhaseAndTimingMessage }, + { "&Type", aioc__type, &asn_DEF_SPAT }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_4_commonSafetyRequest }, + { "&Type", aioc__type, &asn_DEF_CommonSafetyRequest }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_5_emergencyVehicleAlert }, + { "&Type", aioc__type, &asn_DEF_EmergencyVehicleAlert }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_6_intersectionCollision }, + { "&Type", aioc__type, &asn_DEF_IntersectionCollision }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_7_nmeaCorrections }, + { "&Type", aioc__type, &asn_DEF_NMEAcorrections }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_8_probeDataManagement }, + { "&Type", aioc__type, &asn_DEF_ProbeDataManagement }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_9_probeVehicleData }, + { "&Type", aioc__type, &asn_DEF_ProbeVehicleData }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_10_roadSideAlert }, + { "&Type", aioc__type, &asn_DEF_RoadSideAlert }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_11_rtcmCorrections }, + { "&Type", aioc__type, &asn_DEF_RTCMcorrections }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_12_signalRequestMessage }, + { "&Type", aioc__type, &asn_DEF_SignalRequestMessage }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_13_signalStatusMessage }, + { "&Type", aioc__type, &asn_DEF_SignalStatusMessage }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_14_travelerInformation }, + { "&Type", aioc__type, &asn_DEF_TravelerInformation }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_15_personalSafetyMessage }, + { "&Type", aioc__type, &asn_DEF_PersonalSafetyMessage }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_16_testMessage00 }, + { "&Type", aioc__type, &asn_DEF_TestMessage00 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_17_testMessage01 }, + { "&Type", aioc__type, &asn_DEF_TestMessage01 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_18_testMessage02 }, + { "&Type", aioc__type, &asn_DEF_TestMessage02 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_19_testMessage03 }, + { "&Type", aioc__type, &asn_DEF_TestMessage03 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_20_testMessage04 }, + { "&Type", aioc__type, &asn_DEF_TestMessage04 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_21_testMessage05 }, + { "&Type", aioc__type, &asn_DEF_TestMessage05 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_22_testMessage06 }, + { "&Type", aioc__type, &asn_DEF_TestMessage06 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_23_testMessage07 }, + { "&Type", aioc__type, &asn_DEF_TestMessage07 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_24_testMessage08 }, + { "&Type", aioc__type, &asn_DEF_TestMessage08 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_25_testMessage09 }, + { "&Type", aioc__type, &asn_DEF_TestMessage09 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_26_testMessage10 }, + { "&Type", aioc__type, &asn_DEF_TestMessage10 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_27_testMessage11 }, + { "&Type", aioc__type, &asn_DEF_TestMessage11 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_28_testMessage12 }, + { "&Type", aioc__type, &asn_DEF_TestMessage12 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_29_testMessage13 }, + { "&Type", aioc__type, &asn_DEF_TestMessage13 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_30_testMessage14 }, + { "&Type", aioc__type, &asn_DEF_TestMessage14 }, + { "&id", aioc__value, &asn_DEF_DSRCmsgID, &asn_VAL_31_testMessage15 }, + { "&Type", aioc__type, &asn_DEF_TestMessage15 } +}; +static const asn_ioc_set_t asn_IOS_MessageTypes_1[] = { + { 31, 2, asn_IOS_MessageTypes_1_rows } +}; +static int +memb_messageId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_MessageFrame_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_MessageTypes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MessageFrame, messageId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_messageId_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_messageId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_value_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_value_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_value_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.BasicSafetyMessage), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_BasicSafetyMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "BasicSafetyMessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.MapData), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MapData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "MapData" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.SPAT), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SPAT, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "SPAT" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.CommonSafetyRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CommonSafetyRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "CommonSafetyRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.EmergencyVehicleAlert), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EmergencyVehicleAlert, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "EmergencyVehicleAlert" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.IntersectionCollision), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionCollision, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "IntersectionCollision" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.NMEAcorrections), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NMEAcorrections, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "NMEAcorrections" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.ProbeDataManagement), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProbeDataManagement, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ProbeDataManagement" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.ProbeVehicleData), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProbeVehicleData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ProbeVehicleData" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.RoadSideAlert), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RoadSideAlert, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RoadSideAlert" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.RTCMcorrections), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RTCMcorrections, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RTCMcorrections" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.SignalRequestMessage), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalRequestMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "SignalRequestMessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.SignalStatusMessage), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "SignalStatusMessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TravelerInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TravelerInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TravelerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.PersonalSafetyMessage), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PersonalSafetyMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "PersonalSafetyMessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage00), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage00, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage00" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage01), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage01, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage01" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage02), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage02, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage02" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage03), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage03, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage03" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage04), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage04, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage04" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage05), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage05, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage05" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage06), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage06, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage06" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage07), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage07, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage07" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage08), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage08, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage08" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage09), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage09, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage09" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage10), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage10" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage11), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage11" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage12), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage12" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage13), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage13" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage14), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage14" + }, + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame__value, choice.TestMessage15), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TestMessage15, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "TestMessage15" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 30 }, /* BasicSafetyMessage */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 29 }, /* MapData */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 28 }, /* SPAT */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 27 }, /* CommonSafetyRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 26 }, /* EmergencyVehicleAlert */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 25 }, /* IntersectionCollision */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 24 }, /* NMEAcorrections */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 23 }, /* ProbeDataManagement */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 22 }, /* ProbeVehicleData */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 21 }, /* RoadSideAlert */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 20 }, /* RTCMcorrections */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 19 }, /* SignalRequestMessage */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 18 }, /* SignalStatusMessage */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 17 }, /* TravelerInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 16 }, /* PersonalSafetyMessage */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -15, 15 }, /* TestMessage00 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -16, 14 }, /* TestMessage01 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -17, 13 }, /* TestMessage02 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -18, 12 }, /* TestMessage03 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -19, 11 }, /* TestMessage04 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 20, -20, 10 }, /* TestMessage05 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -21, 9 }, /* TestMessage06 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 22, -22, 8 }, /* TestMessage07 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 23, -23, 7 }, /* TestMessage08 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 24, -24, 6 }, /* TestMessage09 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 25, -25, 5 }, /* TestMessage10 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 26, -26, 4 }, /* TestMessage11 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 27, -27, 3 }, /* TestMessage12 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 28, -28, 2 }, /* TestMessage13 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 29, -29, 1 }, /* TestMessage14 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 30, -30, 0 } /* TestMessage15 */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_3 = { + sizeof(struct MessageFrame__value), + offsetof(struct MessageFrame__value, _asn_ctx), + offsetof(struct MessageFrame__value, present), + sizeof(((struct MessageFrame__value *)0)->present), + asn_MAP_value_tag2el_3, + 31, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_3 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_value_3, + 31, /* Elements count */ + &asn_SPC_value_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_MessageFrame_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MessageFrame, messageId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSRCmsgID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_messageId_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_messageId_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_messageId_constraint_1 + }, + 0, 0, /* No default value */ + "messageId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MessageFrame, value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_3, + select_MessageFrame_value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_value_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_value_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_value_constraint_1 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_MessageFrame_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MessageFrame_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* messageId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* value */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_MessageFrame_specs_1 = { + sizeof(struct MessageFrame), + offsetof(struct MessageFrame, _asn_ctx), + asn_MAP_MessageFrame_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MessageFrame = { + "MessageFrame", + "MessageFrame", + &asn_OP_SEQUENCE, + asn_DEF_MessageFrame_tags_1, + sizeof(asn_DEF_MessageFrame_tags_1) + /sizeof(asn_DEF_MessageFrame_tags_1[0]), /* 1 */ + asn_DEF_MessageFrame_tags_1, /* Same as above */ + sizeof(asn_DEF_MessageFrame_tags_1) + /sizeof(asn_DEF_MessageFrame_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MessageFrame_1, + 2, /* Elements count */ + &asn_SPC_MessageFrame_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MinTimetoChange.c b/src/tmx/Asn_J2735/src/2020/MinTimetoChange.c new file mode 100644 index 000000000..20dd30f1c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MinTimetoChange.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MinTimetoChange.h" + +int +MinTimetoChange_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 2402L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MinTimetoChange_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..2402) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MinTimetoChange_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2402 } /* (0..2402) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MinTimetoChange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinTimetoChange = { + "MinTimetoChange", + "MinTimetoChange", + &asn_OP_NativeInteger, + asn_DEF_MinTimetoChange_tags_1, + sizeof(asn_DEF_MinTimetoChange_tags_1) + /sizeof(asn_DEF_MinTimetoChange_tags_1[0]), /* 1 */ + asn_DEF_MinTimetoChange_tags_1, /* Same as above */ + sizeof(asn_DEF_MinTimetoChange_tags_1) + /sizeof(asn_DEF_MinTimetoChange_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MinTimetoChange_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MinTimetoChange_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MinTimetoChange_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Minute.c b/src/tmx/Asn_J2735/src/2020/Minute.c new file mode 100644 index 000000000..bb5f3459a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Minute.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Minute.h" + +int +Minute_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Minute_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Minute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Minute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Minute = { + "Minute", + "Minute", + &asn_OP_NativeInteger, + asn_DEF_Minute_tags_1, + sizeof(asn_DEF_Minute_tags_1) + /sizeof(asn_DEF_Minute_tags_1[0]), /* 1 */ + asn_DEF_Minute_tags_1, /* Same as above */ + sizeof(asn_DEF_Minute_tags_1) + /sizeof(asn_DEF_Minute_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Minute_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Minute_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Minute_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MinuteOfTheYear.c b/src/tmx/Asn_J2735/src/2020/MinuteOfTheYear.c new file mode 100644 index 000000000..0d046548e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MinuteOfTheYear.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MinuteOfTheYear.h" + +int +MinuteOfTheYear_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 527040L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..527040) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 527040 } /* (0..527040) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_MinuteOfTheYear_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MinuteOfTheYear_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MinuteOfTheYear_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MinuteOfTheYear_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MinutesAngle.c b/src/tmx/Asn_J2735/src/2020/MinutesAngle.c new file mode 100644 index 000000000..f56577371 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MinutesAngle.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MinutesAngle.h" + +int +MinutesAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 59L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MinutesAngle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..59) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MinutesAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 59 } /* (0..59) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MinutesAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinutesAngle = { + "MinutesAngle", + "MinutesAngle", + &asn_OP_NativeInteger, + asn_DEF_MinutesAngle_tags_1, + sizeof(asn_DEF_MinutesAngle_tags_1) + /sizeof(asn_DEF_MinutesAngle_tags_1[0]), /* 1 */ + asn_DEF_MinutesAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_MinutesAngle_tags_1) + /sizeof(asn_DEF_MinutesAngle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MinutesAngle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MinutesAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MinutesAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MinutesDuration.c b/src/tmx/Asn_J2735/src/2020/MinutesDuration.c new file mode 100644 index 000000000..ecda6c639 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MinutesDuration.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MinutesDuration.h" + +int +MinutesDuration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 32000L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MinutesDuration_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32000) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MinutesDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32000 } /* (0..32000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MinutesDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MinutesDuration = { + "MinutesDuration", + "MinutesDuration", + &asn_OP_NativeInteger, + asn_DEF_MinutesDuration_tags_1, + sizeof(asn_DEF_MinutesDuration_tags_1) + /sizeof(asn_DEF_MinutesDuration_tags_1[0]), /* 1 */ + asn_DEF_MinutesDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_MinutesDuration_tags_1) + /sizeof(asn_DEF_MinutesDuration_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MinutesDuration_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MinutesDuration_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MinutesDuration_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Month.c b/src/tmx/Asn_J2735/src/2020/Month.c new file mode 100644 index 000000000..ec0f60f58 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Month.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Month.h" + +int +Month_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Month_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Month_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Month_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Month = { + "Month", + "Month", + &asn_OP_NativeInteger, + asn_DEF_Month_tags_1, + sizeof(asn_DEF_Month_tags_1) + /sizeof(asn_DEF_Month_tags_1[0]), /* 1 */ + asn_DEF_Month_tags_1, /* Same as above */ + sizeof(asn_DEF_Month_tags_1) + /sizeof(asn_DEF_Month_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Month_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Month_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Month_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MotorizedPropelledType.c b/src/tmx/Asn_J2735/src/2020/MotorizedPropelledType.c new file mode 100644 index 000000000..0949fdc50 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MotorizedPropelledType.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MotorizedPropelledType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MotorizedPropelledType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MotorizedPropelledType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_MotorizedPropelledType_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 10, "otherTypes" }, + { 2, 10, "wheelChair" }, + { 3, 7, "bicycle" }, + { 4, 7, "scooter" }, + { 5, 19, "selfBalancingDevice" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_MotorizedPropelledType_enum2value_1[] = { + 3, /* bicycle(3) */ + 1, /* otherTypes(1) */ + 4, /* scooter(4) */ + 5, /* selfBalancingDevice(5) */ + 0, /* unavailable(0) */ + 2 /* wheelChair(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_MotorizedPropelledType_specs_1 = { + asn_MAP_MotorizedPropelledType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MotorizedPropelledType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MotorizedPropelledType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MotorizedPropelledType = { + "MotorizedPropelledType", + "MotorizedPropelledType", + &asn_OP_NativeEnumerated, + asn_DEF_MotorizedPropelledType_tags_1, + sizeof(asn_DEF_MotorizedPropelledType_tags_1) + /sizeof(asn_DEF_MotorizedPropelledType_tags_1[0]), /* 1 */ + asn_DEF_MotorizedPropelledType_tags_1, /* Same as above */ + sizeof(asn_DEF_MotorizedPropelledType_tags_1) + /sizeof(asn_DEF_MotorizedPropelledType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MotorizedPropelledType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MotorizedPropelledType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MotorizedPropelledType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MovementEvent-addGrpB.c b/src/tmx/Asn_J2735/src/2020/MovementEvent-addGrpB.c new file mode 100644 index 000000000..3b1e3de10 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MovementEvent-addGrpB.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MovementEvent-addGrpB.h" + +asn_TYPE_member_t asn_MBR_MovementEvent_addGrpB_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementEvent_addGrpB, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeRemaining, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementEvent_addGrpB, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinTimetoChange, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minEndTime" + }, + { ATF_POINTER, 4, offsetof(struct MovementEvent_addGrpB, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MaxTimetoChange, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxEndTime" + }, + { ATF_POINTER, 3, offsetof(struct MovementEvent_addGrpB, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeRemaining, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "likelyTime" + }, + { ATF_POINTER, 2, offsetof(struct MovementEvent_addGrpB, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeIntervalConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 1, offsetof(struct MovementEvent_addGrpB, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeRemaining, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nextTime" + }, +}; +static const int asn_MAP_MovementEvent_addGrpB_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_addGrpB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_addGrpB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* likelyTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_addGrpB_specs_1 = { + sizeof(struct MovementEvent_addGrpB), + offsetof(struct MovementEvent_addGrpB, _asn_ctx), + asn_MAP_MovementEvent_addGrpB_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_MovementEvent_addGrpB_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent_addGrpB = { + "MovementEvent-addGrpB", + "MovementEvent-addGrpB", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_addGrpB_tags_1, + sizeof(asn_DEF_MovementEvent_addGrpB_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpB_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_addGrpB_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_addGrpB_tags_1) + /sizeof(asn_DEF_MovementEvent_addGrpB_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MovementEvent_addGrpB_1, + 6, /* Elements count */ + &asn_SPC_MovementEvent_addGrpB_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MovementEvent.c b/src/tmx/Asn_J2735/src/2020/MovementEvent.c new file mode 100644 index 000000000..f23d5313f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MovementEvent.c @@ -0,0 +1,228 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MovementEvent.h" + +#include "TimeChangeDetails.h" +#include "AdvisorySpeedList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementEvent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct MovementEvent__regional), + offsetof(struct MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementPhaseState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventState" + }, + { ATF_POINTER, 3, offsetof(struct MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeChangeDetails, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timing" + }, + { ATF_POINTER, 2, offsetof(struct MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdvisorySpeedList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speeds" + }, + { ATF_POINTER, 1, offsetof(struct MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementEvent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventState */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* speeds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementEvent_specs_1 = { + sizeof(struct MovementEvent), + offsetof(struct MovementEvent, _asn_ctx), + asn_MAP_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_MovementEvent_tags_1, + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEvent_tags_1) + /sizeof(asn_DEF_MovementEvent_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MovementEventList.c b/src/tmx/Asn_J2735/src/2020/MovementEventList.c new file mode 100644 index 000000000..5fba39574 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MovementEventList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MovementEventList.h" + +#include "MovementEvent.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MovementEventList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MovementEventList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementEventList_specs_1 = { + sizeof(struct MovementEventList), + offsetof(struct MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementEventList_tags_1, + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementEventList_tags_1) + /sizeof(asn_DEF_MovementEventList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MovementEventList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MovementEventList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MovementList.c b/src/tmx/Asn_J2735/src/2020/MovementList.c new file mode 100644 index 000000000..e60662f88 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MovementList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MovementList.h" + +#include "MovementState.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MovementList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MovementList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MovementList_specs_1 = { + sizeof(struct MovementList), + offsetof(struct MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MovementList_tags_1, + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + asn_DEF_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementList_tags_1) + /sizeof(asn_DEF_MovementList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MovementList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MovementList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_MovementList_1, + 1, /* Single element */ + &asn_SPC_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MovementPhaseState.c b/src/tmx/Asn_J2735/src/2020/MovementPhaseState.c new file mode 100644 index 000000000..eb047813b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MovementPhaseState.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MovementPhaseState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MovementPhaseState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_MovementPhaseState_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 4, "dark" }, + { 2, 17, "stop-Then-Proceed" }, + { 3, 15, "stop-And-Remain" }, + { 4, 12, "pre-Movement" }, + { 5, 27, "permissive-Movement-Allowed" }, + { 6, 26, "protected-Movement-Allowed" }, + { 7, 20, "permissive-clearance" }, + { 8, 19, "protected-clearance" }, + { 9, 27, "caution-Conflicting-Traffic" } +}; +static const unsigned int asn_MAP_MovementPhaseState_enum2value_1[] = { + 9, /* caution-Conflicting-Traffic(9) */ + 1, /* dark(1) */ + 5, /* permissive-Movement-Allowed(5) */ + 7, /* permissive-clearance(7) */ + 4, /* pre-Movement(4) */ + 6, /* protected-Movement-Allowed(6) */ + 8, /* protected-clearance(8) */ + 3, /* stop-And-Remain(3) */ + 2, /* stop-Then-Proceed(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MovementPhaseState_specs_1 = { + asn_MAP_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MovementPhaseState_enum2value_1, /* N => "tag"; sorted by N */ + 10, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_MovementPhaseState_tags_1, + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementPhaseState_tags_1) + /sizeof(asn_DEF_MovementPhaseState_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MovementPhaseState_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MovementPhaseState_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MovementState.c b/src/tmx/Asn_J2735/src/2020/MovementState.c new file mode 100644 index 000000000..3dd195049 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MovementState.c @@ -0,0 +1,245 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MovementState.h" + +#include "ManeuverAssistList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_MovementState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct MovementState__regional), + offsetof(struct MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "movementName" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MovementEventList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "state-time-speed" + }, + { ATF_POINTER, 2, offsetof(struct MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ManeuverAssistList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MovementState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* movementName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* state-time-speed */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MovementState_specs_1 = { + sizeof(struct MovementState), + offsetof(struct MovementState, _asn_ctx), + asn_MAP_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_MovementState_tags_1, + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + asn_DEF_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_MovementState_tags_1) + /sizeof(asn_DEF_MovementState_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_MovementState_1, + 5, /* Elements count */ + &asn_SPC_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MsgCRC.c b/src/tmx/Asn_J2735/src/2020/MsgCRC.c new file mode 100644 index 000000000..d0a8baefe --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MsgCRC.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MsgCRC.h" + +int +MsgCRC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MsgCRC_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MsgCRC_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_MsgCRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MsgCRC = { + "MsgCRC", + "MsgCRC", + &asn_OP_OCTET_STRING, + asn_DEF_MsgCRC_tags_1, + sizeof(asn_DEF_MsgCRC_tags_1) + /sizeof(asn_DEF_MsgCRC_tags_1[0]), /* 1 */ + asn_DEF_MsgCRC_tags_1, /* Same as above */ + sizeof(asn_DEF_MsgCRC_tags_1) + /sizeof(asn_DEF_MsgCRC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MsgCRC_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MsgCRC_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + MsgCRC_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/MultiVehicleResponse.c b/src/tmx/Asn_J2735/src/2020/MultiVehicleResponse.c new file mode 100644 index 000000000..2113a68fc --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/MultiVehicleResponse.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "MultiVehicleResponse.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_MultiVehicleResponse_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_MultiVehicleResponse_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_MultiVehicleResponse_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "singleVehicle" }, + { 2, 12, "multiVehicle" }, + { 3, 8, "reserved" } +}; +static const unsigned int asn_MAP_MultiVehicleResponse_enum2value_1[] = { + 2, /* multiVehicle(2) */ + 3, /* reserved(3) */ + 1, /* singleVehicle(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MultiVehicleResponse_specs_1 = { + asn_MAP_MultiVehicleResponse_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_MultiVehicleResponse_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_MultiVehicleResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MultiVehicleResponse = { + "MultiVehicleResponse", + "MultiVehicleResponse", + &asn_OP_NativeEnumerated, + asn_DEF_MultiVehicleResponse_tags_1, + sizeof(asn_DEF_MultiVehicleResponse_tags_1) + /sizeof(asn_DEF_MultiVehicleResponse_tags_1[0]), /* 1 */ + asn_DEF_MultiVehicleResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_MultiVehicleResponse_tags_1) + /sizeof(asn_DEF_MultiVehicleResponse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_MultiVehicleResponse_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_MultiVehicleResponse_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MultiVehicleResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NMEA-MsgType.c b/src/tmx/Asn_J2735/src/2020/NMEA-MsgType.c new file mode 100644 index 000000000..feaef4206 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NMEA-MsgType.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NMEAcorrections" + * found in "J2735-NMEAcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NMEA-MsgType.h" + +int +NMEA_MsgType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NMEA_MsgType_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NMEA_MsgType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_NMEA_MsgType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NMEA_MsgType = { + "NMEA-MsgType", + "NMEA-MsgType", + &asn_OP_NativeInteger, + asn_DEF_NMEA_MsgType_tags_1, + sizeof(asn_DEF_NMEA_MsgType_tags_1) + /sizeof(asn_DEF_NMEA_MsgType_tags_1[0]), /* 1 */ + asn_DEF_NMEA_MsgType_tags_1, /* Same as above */ + sizeof(asn_DEF_NMEA_MsgType_tags_1) + /sizeof(asn_DEF_NMEA_MsgType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NMEA_MsgType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NMEA_MsgType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NMEA_MsgType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NMEA-Payload.c b/src/tmx/Asn_J2735/src/2020/NMEA-Payload.c new file mode 100644 index 000000000..22ef9c27a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NMEA-Payload.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NMEAcorrections" + * found in "J2735-NMEAcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NMEA-Payload.h" + +int +NMEA_Payload_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 1023UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NMEA_Payload_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1023)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NMEA_Payload_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (SIZE(1..1023)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_NMEA_Payload_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NMEA_Payload = { + "NMEA-Payload", + "NMEA-Payload", + &asn_OP_OCTET_STRING, + asn_DEF_NMEA_Payload_tags_1, + sizeof(asn_DEF_NMEA_Payload_tags_1) + /sizeof(asn_DEF_NMEA_Payload_tags_1[0]), /* 1 */ + asn_DEF_NMEA_Payload_tags_1, /* Same as above */ + sizeof(asn_DEF_NMEA_Payload_tags_1) + /sizeof(asn_DEF_NMEA_Payload_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NMEA_Payload_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NMEA_Payload_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NMEA_Payload_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NMEA-Revision.c b/src/tmx/Asn_J2735/src/2020/NMEA-Revision.c new file mode 100644 index 000000000..3ac777642 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NMEA-Revision.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NMEAcorrections" + * found in "J2735-NMEAcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NMEA-Revision.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NMEA_Revision_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NMEA_Revision_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_NMEA_Revision_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "reserved" }, + { 2, 4, "rev1" }, + { 3, 4, "rev2" }, + { 4, 4, "rev3" }, + { 5, 4, "rev4" }, + { 6, 4, "rev5" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NMEA_Revision_enum2value_1[] = { + 1, /* reserved(1) */ + 2, /* rev1(2) */ + 3, /* rev2(3) */ + 4, /* rev3(4) */ + 5, /* rev4(5) */ + 6, /* rev5(6) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NMEA_Revision_specs_1 = { + asn_MAP_NMEA_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NMEA_Revision_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NMEA_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NMEA_Revision = { + "NMEA-Revision", + "NMEA-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_NMEA_Revision_tags_1, + sizeof(asn_DEF_NMEA_Revision_tags_1) + /sizeof(asn_DEF_NMEA_Revision_tags_1[0]), /* 1 */ + asn_DEF_NMEA_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_NMEA_Revision_tags_1) + /sizeof(asn_DEF_NMEA_Revision_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NMEA_Revision_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NMEA_Revision_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NMEA_Revision_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NMEAcorrections.c b/src/tmx/Asn_J2735/src/2020/NMEAcorrections.c new file mode 100644 index 000000000..11e650c93 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NMEAcorrections.c @@ -0,0 +1,262 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NMEAcorrections" + * found in "J2735-NMEAcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NMEAcorrections.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_NMEAcorrections, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct NMEAcorrections__regional), + offsetof(struct NMEAcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NMEAcorrections_1[] = { + { ATF_POINTER, 4, offsetof(struct NMEAcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 3, offsetof(struct NMEAcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NMEA_Revision, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rev" + }, + { ATF_POINTER, 2, offsetof(struct NMEAcorrections, msg), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NMEA_MsgType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msg" + }, + { ATF_POINTER, 1, offsetof(struct NMEAcorrections, wdCount), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObjectCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "wdCount" + }, + { ATF_NOFLAGS, 0, offsetof(struct NMEAcorrections, payload), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NMEA_Payload, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "payload" + }, + { ATF_POINTER, 1, offsetof(struct NMEAcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_NMEAcorrections_oms_1[] = { 0, 1, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_NMEAcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NMEAcorrections_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rev */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* msg */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* wdCount */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* payload */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NMEAcorrections_specs_1 = { + sizeof(struct NMEAcorrections), + offsetof(struct NMEAcorrections, _asn_ctx), + asn_MAP_NMEAcorrections_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_NMEAcorrections_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NMEAcorrections = { + "NMEAcorrections", + "NMEAcorrections", + &asn_OP_SEQUENCE, + asn_DEF_NMEAcorrections_tags_1, + sizeof(asn_DEF_NMEAcorrections_tags_1) + /sizeof(asn_DEF_NMEAcorrections_tags_1[0]), /* 1 */ + asn_DEF_NMEAcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_NMEAcorrections_tags_1) + /sizeof(asn_DEF_NMEAcorrections_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_NMEAcorrections_1, + 6, /* Elements count */ + &asn_SPC_NMEAcorrections_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NativeEnumerated.c b/src/tmx/Asn_J2735/src/2020/NativeEnumerated.c new file mode 100644 index 000000000..aee450c17 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeEnumerated.c @@ -0,0 +1,108 @@ +/*- + * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeInteger.h for the explanation wrt. differences between + * INTEGER and NativeInteger. + * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include + +/* + * NativeEnumerated basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeEnumerated = { + NativeInteger_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + NativeInteger_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + NativeInteger_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + NativeInteger_decode_ber, + NativeInteger_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + NativeInteger_decode_xer, + NativeEnumerated_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + NativeEnumerated_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + NativeEnumerated_decode_oer, + NativeEnumerated_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + NativeEnumerated_decode_uper, + NativeEnumerated_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + NativeEnumerated_decode_aper, + NativeEnumerated_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + NativeEnumerated_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { + "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ + "ENUMERATED", + &asn_OP_NativeEnumerated, + asn_DEF_NativeEnumerated_tags, + sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), + asn_DEF_NativeEnumerated_tags, /* Same as above */ + sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int +NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { + const asn_INTEGER_enum_map_t *a = ap; + const asn_INTEGER_enum_map_t *b = bp; + if(a->nat_value == b->nat_value) + return 0; + if(a->nat_value < b->nat_value) + return -1; + return 1; +} +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ diff --git a/src/tmx/Asn_J2735/src/2020/NativeEnumerated_aper.c b/src/tmx/Asn_J2735/src/2020/NativeEnumerated_aper.c new file mode 100644 index 000000000..5c4c2561d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeEnumerated_aper.c @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + long *native = (long *)*sptr; + const asn_per_constraint_t *ct; + long value; + + (void)opt_codec_ctx; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__DECODE_FAILED; /* Mandatory! */ + if(!specs) ASN__DECODE_FAILED; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); + + if(ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + /* Deal with APER padding */ + if(ct && ct->upper_bound >= 255) { + int padding = 0; + padding = (8 - (pd->moved % 8)) % 8; + ASN_DEBUG("For NativeEnumerated %s,offset = %zu Padding bits = %d", + td->name, pd->moved, padding); + ASN_DEBUG("For NativeEnumerated %s, upper bound = %llu", + td->name, (unsigned long long)ct->upper_bound); + if(padding > 0) + per_get_few_bits(pd, padding); + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + if(value >= (specs->extension + ? specs->extension - 1 : specs->map_count)) + ASN__DECODE_FAILED; + } else { + if(!specs->extension) + ASN__DECODE_FAILED; + /* + * X.691, #10.6: normally small non-negative whole number; + */ + + /* XXX handle indefinite index length > 64k */ + value = aper_get_nsnnwn(pd, 65537); + if(value < 0) ASN__DECODE_STARVED; + value += specs->extension - 1; + //if(value >= specs->map_count) + // ASN__DECODE_FAILED; + if(value >= specs->map_count) { + ASN_DEBUG("Decoded unknown index value %s = %ld", td->name, value); + /* unknown index. Workaround => set the first enumeration value */ + *native = specs->value2enum[0].nat_value; + return rval; + } + } + + *native = specs->value2enum[value].nat_value; + ASN_DEBUG("Decoded %s = %ld", td->name, *native); + + return rval; +} + +asn_enc_rval_t +NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native, value; + const asn_per_constraint_t *ct; + int inext = 0, range_bits = 1; + asn_INTEGER_enum_map_t key; + asn_INTEGER_enum_map_t *kf; + + if(!sptr) ASN__ENCODE_FAILED; + if(!specs) ASN__ENCODE_FAILED; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__ENCODE_FAILED; /* Mandatory! */ + + ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); + + er.encoded = 0; + + native = *(const long *)sptr; + if(native < 0) ASN__ENCODE_FAILED; + + key.nat_value = native; + kf = bsearch(&key, specs->value2enum, specs->map_count, + sizeof(key), NativeEnumerated__compar_value2enum); + if(!kf) { + ASN_DEBUG("No element corresponds to %ld", native); + ASN__ENCODE_FAILED; + } + value = kf - specs->value2enum; + + if(ct->range_bits >= 0) { + int cmpWith = specs->extension + ? specs->extension - 1 : specs->map_count; + if(value >= cmpWith) + inext = 1; + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) range_bits = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + + if(range_bits && ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, value, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(!specs->extension) + ASN__ENCODE_FAILED; + + /* + * X.691, #10.6: normally small non-negative whole number; + */ + ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", + value, specs->extension, inext, + value - (inext ? (specs->extension - 1) : 0)); + if(aper_put_nsnnwn(po, + ct->upper_bound - ct->lower_bound + 1, + value - (inext ? (specs->extension - 1) : 0))) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeEnumerated_jer.c b/src/tmx/Asn_J2735/src/2020/NativeEnumerated_jer.c new file mode 100644 index 000000000..046afe9e8 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeEnumerated_jer.c @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +NativeEnumerated_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const long *native = (const long *)sptr; + const asn_INTEGER_enum_map_t *el; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + el = INTEGER_map_value2enum(specs, *native); + if(el) { + er.encoded = + asn__format_to_callback(cb, app_key, "\"%s\"", el->enum_name); + if(er.encoded < 0) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } else { + ASN_DEBUG( + "ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + ASN__ENCODE_FAILED; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeEnumerated_oer.c b/src/tmx/Asn_J2735/src/2020/NativeEnumerated_oer.c new file mode 100644 index 000000000..52dbcb860 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeEnumerated_oer.c @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +static long +asn__nativeenumerated_convert(const uint8_t *b, const uint8_t *end) { + unsigned long value; + + /* Perform the sign initialization */ + /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ + if((*b >> 7)) { + value = (unsigned long)(-1); + } else { + value = 0; + } + + /* Conversion engine */ + for(; b < end; b++) { + value = (value << 8) | *b; + } + + return value; +} + +asn_dec_rval_t +NativeEnumerated_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + void **nint_ptr, const void *ptr, size_t size) { + asn_dec_rval_t rval = {RC_OK, 0}; + long *native = (long *)*nint_ptr; + const uint8_t *b = ptr; + + (void)opt_codec_ctx; + (void)constraints; + + if(size < 1) { + ASN__DECODE_STARVED; + } + + if((*b & 0x80) == 0) { + /* + * X.696 (08/2015) #11.2 Short form for Enumerated. + */ + if(!native) { + native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + *native = *b; + rval.consumed = 1; + } else { + /* + * X.696 (08/2015) #11.4 Long form for Enumerated. + */ + size_t length = *b & 0x7f; + const uint8_t *bend; + long value; + + if(length < 1 || length > sizeof(*native)) { + ASN__DECODE_FAILED; + } + if((1 + length) > size) { + ASN__DECODE_STARVED; + } + b++; + bend = b + length; + + value = asn__nativeenumerated_convert(b, bend); + if(value < 0) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + if(specs && specs->field_unsigned) { + ASN__DECODE_FAILED; + } + } + + if(!native) { + native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + *native = value; + + rval.consumed = (1 + length); + } + + return rval; +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +NativeEnumerated_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0,0,0}; + long native; + + (void)constraints; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + if(native >= 0 && native <= 127) { + /* #11.2 Short form */ + uint8_t b = native; + er.encoded = 1; + if(cb(&b, er.encoded, app_key) < 0) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } else { + /* #11.2 Long form */ + uint8_t buf[1 + sizeof(native)]; + uint8_t *b = &buf[sizeof(native)]; /* Last addressable */ + long final_pattern = -1 * (native < 0); + + for(;;) { + *b-- = native; + native >>= 8; + if(native == final_pattern) { + if(final_pattern) { + if((b[1] & 0x80)) break; + } else { + if(!(b[1] & 0x80)) break; + } + } + } + *b = 0x80 | (&buf[sizeof(native)] - b); + er.encoded = 1 + (&buf[sizeof(native)] - b); + if(cb(b, er.encoded, app_key) < 0) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeEnumerated_uper.c b/src/tmx/Asn_J2735/src/2020/NativeEnumerated_uper.c new file mode 100644 index 000000000..e2f932a22 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeEnumerated_uper.c @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + long *native = (long *)*sptr; + const asn_per_constraint_t *ct; + long value; + + (void)opt_codec_ctx; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__DECODE_FAILED; /* Mandatory! */ + if(!specs) ASN__DECODE_FAILED; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); + + if(ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + if(value >= (specs->extension + ? specs->extension - 1 : specs->map_count)) + ASN__DECODE_FAILED; + } else { + if(!specs->extension) + ASN__DECODE_FAILED; + /* + * X.691, #10.6: normally small non-negative whole number; + */ + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->extension - 1; + if(value >= specs->map_count) + ASN__DECODE_FAILED; + } + + *native = specs->value2enum[value].nat_value; + ASN_DEBUG("Decoded %s = %ld", td->name, *native); + + return rval; +} + +asn_enc_rval_t +NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native, value; + const asn_per_constraint_t *ct; + int inext = 0; + asn_INTEGER_enum_map_t key; + const asn_INTEGER_enum_map_t *kf; + + if(!sptr) ASN__ENCODE_FAILED; + if(!specs) ASN__ENCODE_FAILED; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__ENCODE_FAILED; /* Mandatory! */ + + ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); + + er.encoded = 0; + + native = *(const long *)sptr; + + key.nat_value = native; + kf = bsearch(&key, specs->value2enum, specs->map_count, + sizeof(key), NativeEnumerated__compar_value2enum); + if(!kf) { + ASN_DEBUG("No element corresponds to %ld", native); + ASN__ENCODE_FAILED; + } + value = kf - specs->value2enum; + + if(ct->range_bits >= 0) { + int cmpWith = specs->extension + ? specs->extension - 1 : specs->map_count; + if(value >= cmpWith) + inext = 1; + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, value, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(!specs->extension) + ASN__ENCODE_FAILED; + + /* + * X.691, #10.6: normally small non-negative whole number; + */ + ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", + value, specs->extension, inext, + value - (inext ? (specs->extension - 1) : 0)); + if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeEnumerated_xer.c b/src/tmx/Asn_J2735/src/2020/NativeEnumerated_xer.c new file mode 100644 index 000000000..e8d6d0deb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeEnumerated_xer.c @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const long *native = (const long *)sptr; + const asn_INTEGER_enum_map_t *el; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + el = INTEGER_map_value2enum(specs, *native); + if(el) { + er.encoded = + asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); + if(er.encoded < 0) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } else { + ASN_DEBUG( + "ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + ASN__ENCODE_FAILED; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeInteger.c b/src/tmx/Asn_J2735/src/2020/NativeInteger.c new file mode 100644 index 000000000..f0309b0d2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeInteger.c @@ -0,0 +1,152 @@ +/*- + * Copyright (c) 2004, 2005, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeInteger.h for the explanation wrt. differences between + * INTEGER and NativeInteger. + * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include + +/* + * NativeInteger basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeInteger = { + NativeInteger_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + NativeInteger_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + NativeInteger_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + NativeInteger_decode_ber, + NativeInteger_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + NativeInteger_decode_xer, + NativeInteger_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + NativeInteger_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + NativeInteger_decode_oer, /* OER decoder */ + NativeInteger_encode_oer, /* Canonical OER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + NativeInteger_decode_uper, /* Unaligned PER decoder */ + NativeInteger_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + NativeInteger_decode_aper, /* Aligned PER decoder */ + NativeInteger_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + NativeInteger_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeInteger = { + "INTEGER", /* The ASN.1 type is still INTEGER */ + "INTEGER", + &asn_OP_NativeInteger, + asn_DEF_NativeInteger_tags, + sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), + asn_DEF_NativeInteger_tags, /* Same as above */ + sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +void +NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", + td->name, method, ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(long)); + break; + } +} + +int +NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { + (void)td; + + if(aptr && bptr) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + if(specs && specs->field_unsigned) { + const unsigned long *a = aptr; + const unsigned long *b = bptr; + if(*a < *b) { + return -1; + } else if(*a > *b) { + return 1; + } else { + return 0; + } + } else { + const long *a = aptr; + const long *b = bptr; + if(*a < *b) { + return -1; + } else if(*a > *b) { + return 1; + } else { + return 0; + } + } + } else if(!aptr) { + return -1; + } else { + return 1; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeInteger_aper.c b/src/tmx/Asn_J2735/src/2020/NativeInteger_aper.c new file mode 100644 index 000000000..1d13070a3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeInteger_aper.c @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + long *native = (long *)*sptr; + INTEGER_t tmpint; + void *tmpintptr = &tmpint; + + (void)opt_codec_ctx; + ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&tmpint, 0, sizeof tmpint); + rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, + &tmpintptr, pd); + if(rval.code == RC_OK) { + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) + : asn_INTEGER2long(&tmpint, native)) + rval.code = RC_FAIL; + else + ASN_DEBUG("NativeInteger %s got value %ld", + td->name, *native); + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + + return rval; +} + +asn_enc_rval_t +NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native; + INTEGER_t tmpint; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); + + memset(&tmpint, 0, sizeof(tmpint)); + if((specs&&specs->field_unsigned) + ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) + : asn_long2INTEGER(&tmpint, native)) + ASN__ENCODE_FAILED; + er = INTEGER_encode_aper(td, constraints, &tmpint, po); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeInteger_ber.c b/src/tmx/Asn_J2735/src/2020/NativeInteger_ber.c new file mode 100644 index 000000000..ed683625c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeInteger_ber.c @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Decode INTEGER type. + */ +asn_dec_rval_t +NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **nint_ptr, + const void *buf_ptr, size_t size, int tag_mode) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + long *native = (long *)*nint_ptr; + asn_dec_rval_t rval; + ber_tlv_len_t length; + + /* + * If the structure is not there, allocate it. + */ + if(native == NULL) { + native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); + if(native == NULL) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", + td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("%s length is %d bytes", td->name, (int)length); + + /* + * Make sure we have this length. + */ + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + /* + * ASN.1 encoded INTEGER: buf_ptr, length + * Fill the native, at the same time checking for overflow. + * If overflow occurred, return with RC_FAIL. + */ + { + INTEGER_t tmp; + union { + const void *constbuf; + void *nonconstbuf; + } unconst_buf; + long l; + + unconst_buf.constbuf = buf_ptr; + tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; + tmp.size = length; + + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ + : asn_INTEGER2long(&tmp, &l)) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + + *native = l; + } + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", + (long)rval.consumed, (long)length, td->name, (long)*native); + + return rval; +} + +/* + * Encode the NativeInteger using the standard INTEGER type DER encoder. + */ +asn_enc_rval_t +NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ + asn_enc_rval_t erval = {0,0,0}; + INTEGER_t tmp; + +#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ + + tmp.buf = (uint8_t *)&native; + tmp.size = sizeof(native); + +#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ + uint8_t buf[sizeof(native)]; + uint8_t *p; + + /* Prepare a fake INTEGER */ + for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) + *p = (uint8_t)native; + + tmp.buf = buf; + tmp.size = sizeof(buf); +#endif /* WORDS_BIGENDIAN */ + + /* Encode fake INTEGER */ + erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); + if(erval.structure_ptr == &tmp) { + erval.structure_ptr = ptr; + } + return erval; +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeInteger_jer.c b/src/tmx/Asn_J2735/src/2020/NativeInteger_jer.c new file mode 100644 index 000000000..f48f8ecff --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeInteger_jer.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +NativeInteger_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; /* Enough for 64-bit int */ + asn_enc_rval_t er = {0,0,0}; + const long *native = (const long *)sptr; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + er.encoded = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) + ? "%lu" : "%ld", *native); + if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) + || cb(scratch, er.encoded, app_key) < 0) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeInteger_oer.c b/src/tmx/Asn_J2735/src/2020/NativeInteger_oer.c new file mode 100644 index 000000000..4e900462c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeInteger_oer.c @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeInteger_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + void **nint_ptr, const void *ptr, size_t size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = {RC_OK, 0}; + long *native = (long *)*nint_ptr; + INTEGER_t tmpint; + INTEGER_t *tmpintptr = &tmpint; + + memset(&tmpint, 0, sizeof(tmpint)); + + if(!native) { + native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + /* + * OPTIMIZATION: Encode directly rather than passing through INTEGER. + * Saves a memory allocation. + */ + rval = INTEGER_decode_oer(opt_codec_ctx, td, constraints, + (void **)&tmpintptr, ptr, size); + if(rval.code != RC_OK) { + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return rval; + } + + if(specs && specs->field_unsigned) { + unsigned long ul; + int ok = asn_INTEGER2ulong(&tmpint, &ul) == 0; + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + if(ok) { + *native = ul; + } else { + rval.code = RC_FAIL; + return rval; + } + } else { + long l; + int ok = asn_INTEGER2long(&tmpint, &l) == 0; + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + if(ok) { + *native = l; + } else { + rval.code = RC_FAIL; + return rval; + } + } + + return rval; +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +NativeInteger_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + INTEGER_t tmpint; + long native; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + memset(&tmpint, 0, sizeof(tmpint)); + + ASN_DEBUG("Encoding %s %ld as NativeInteger", td ? td->name : "", native); + + if((specs && specs->field_unsigned) ? asn_ulong2INTEGER(&tmpint, native) + : asn_long2INTEGER(&tmpint, native)) { + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + ASN__ENCODE_FAILED; + } else { + asn_enc_rval_t er = + INTEGER_encode_oer(td, constraints, &tmpint, cb, app_key); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeInteger_print.c b/src/tmx/Asn_J2735/src/2020/NativeInteger_print.c new file mode 100644 index 000000000..0602e0d20 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeInteger_print.c @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * INTEGER specific human-readable output. + */ +int +NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + const long *native = (const long *)sptr; + char scratch[32]; /* Enough for 64-bit int */ + int ret; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(native) { + long value = *native; + ret = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) ? "%lu" : "%ld", value); + assert(ret > 0 && (size_t)ret < sizeof(scratch)); + if(cb(scratch, ret, app_key) < 0) return -1; + if(specs && (value >= 0 || !specs->field_unsigned)) { + const asn_INTEGER_enum_map_t *el = + INTEGER_map_value2enum(specs, value); + if(el) { + if(cb(" (", 2, app_key) < 0) return -1; + if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; + if(cb(")", 1, app_key) < 0) return -1; + } + } + return 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeInteger_rfill.c b/src/tmx/Asn_J2735/src/2020/NativeInteger_rfill.c new file mode 100644 index 000000000..0e2cee8e4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeInteger_rfill.c @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + long *st = *sptr; + const asn_INTEGER_enum_map_t *emap; + size_t emap_len; + intmax_t value; + int find_inside_map; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (long *)CALLOC(1, sizeof(*st)); + if(st == NULL) { + return result_failed; + } + } + + if(specs) { + emap = specs->value2enum; + emap_len = specs->map_count; + if(specs->strict_enumeration) { + find_inside_map = emap_len > 0; + } else { + find_inside_map = emap_len ? asn_random_between(0, 1) : 0; + } + } else { + emap = 0; + emap_len = 0; + find_inside_map = 0; + } + + if(find_inside_map) { + assert(emap_len > 0); + value = emap[asn_random_between(0, emap_len - 1)].nat_value; + } else { + static const long variants[] = { + -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, + -16383, -257, -256, -255, -254, -129, -128, -127, + -126, -1, 0, 1, 126, 127, 128, 129, + 254, 255, 256, 257, 16383, 16384, 16385, 32767, + 32768, 32769, 65534, 65535, 65536, 65537}; + if(specs && specs->field_unsigned) { + assert(variants[18] == 0); + value = variants[asn_random_between( + 18, sizeof(variants) / sizeof(variants[0]) - 1)]; + } else { + value = variants[asn_random_between( + 0, sizeof(variants) / sizeof(variants[0]) - 1)]; + } + + if(!constraints) constraints = &td->encoding_constraints; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + const asn_per_constraints_t *ct; + + ct = constraints ? constraints->per_constraints : 0; + if(ct && (ct->value.flags & APC_CONSTRAINED)) { + if(value < ct->value.lower_bound || value > ct->value.upper_bound) { + value = asn_random_between(ct->value.lower_bound, + ct->value.upper_bound); + } + } +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + } + + *sptr = st; + *st = value; + return result_ok; +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeInteger_uper.c b/src/tmx/Asn_J2735/src/2020/NativeInteger_uper.c new file mode 100644 index 000000000..4fc4ba177 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeInteger_uper.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + long *native = (long *)*sptr; + INTEGER_t tmpint; + void *tmpintptr = &tmpint; + + (void)opt_codec_ctx; + ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&tmpint, 0, sizeof tmpint); + rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, + &tmpintptr, pd); + if(rval.code == RC_OK) { + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) + : asn_INTEGER2long(&tmpint, native)) + rval.code = RC_FAIL; + else + ASN_DEBUG("NativeInteger %s got value %ld", + td->name, *native); + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + + return rval; +} + +asn_enc_rval_t +NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native; + INTEGER_t tmpint; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); + + memset(&tmpint, 0, sizeof(tmpint)); + if((specs&&specs->field_unsigned) + ? asn_ulong2INTEGER(&tmpint, native) + : asn_long2INTEGER(&tmpint, native)) + ASN__ENCODE_FAILED; + er = INTEGER_encode_uper(td, constraints, &tmpint, po); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; +} diff --git a/src/tmx/Asn_J2735/src/2020/NativeInteger_xer.c b/src/tmx/Asn_J2735/src/2020/NativeInteger_xer.c new file mode 100644 index 000000000..18ec59af2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NativeInteger_xer.c @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +asn_dec_rval_t +NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + INTEGER_t st; + void *st_ptr = (void *)&st; + long *native = (long *)*sptr; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&st, 0, sizeof(st)); + rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, + opt_mname, buf_ptr, size); + if(rval.code == RC_OK) { + long l; + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ + : asn_INTEGER2long(&st, &l)) { + rval.code = RC_FAIL; + rval.consumed = 0; + } else { + *native = l; + } + } else { + /* + * Cannot restart from the middle; + * there is no place to save state in the native type. + * Request a continuation from the very beginning. + */ + rval.consumed = 0; + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); + return rval; +} + + +asn_enc_rval_t +NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; /* Enough for 64-bit int */ + asn_enc_rval_t er = {0,0,0}; + const long *native = (const long *)sptr; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + er.encoded = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) + ? "%lu" : "%ld", *native); + if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) + || cb(scratch, er.encoded, app_key) < 0) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/Node-LL-24B.c b/src/tmx/Asn_J2735/src/2020/Node-LL-24B.c new file mode 100644 index 000000000..cbc309bd6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-LL-24B.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-LL-24B.h" + +asn_TYPE_member_t asn_MBR_Node_LL_24B_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_24B, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_24B, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LL_24B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LL_24B_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LL_24B_specs_1 = { + sizeof(struct Node_LL_24B), + offsetof(struct Node_LL_24B, _asn_ctx), + asn_MAP_Node_LL_24B_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LL_24B = { + "Node-LL-24B", + "Node-LL-24B", + &asn_OP_SEQUENCE, + asn_DEF_Node_LL_24B_tags_1, + sizeof(asn_DEF_Node_LL_24B_tags_1) + /sizeof(asn_DEF_Node_LL_24B_tags_1[0]), /* 1 */ + asn_DEF_Node_LL_24B_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LL_24B_tags_1) + /sizeof(asn_DEF_Node_LL_24B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_LL_24B_1, + 2, /* Elements count */ + &asn_SPC_Node_LL_24B_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-LL-28B.c b/src/tmx/Asn_J2735/src/2020/Node-LL-28B.c new file mode 100644 index 000000000..ab56589a7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-LL-28B.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-LL-28B.h" + +asn_TYPE_member_t asn_MBR_Node_LL_28B_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_28B, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_28B, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LL_28B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LL_28B_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LL_28B_specs_1 = { + sizeof(struct Node_LL_28B), + offsetof(struct Node_LL_28B, _asn_ctx), + asn_MAP_Node_LL_28B_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LL_28B = { + "Node-LL-28B", + "Node-LL-28B", + &asn_OP_SEQUENCE, + asn_DEF_Node_LL_28B_tags_1, + sizeof(asn_DEF_Node_LL_28B_tags_1) + /sizeof(asn_DEF_Node_LL_28B_tags_1[0]), /* 1 */ + asn_DEF_Node_LL_28B_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LL_28B_tags_1) + /sizeof(asn_DEF_Node_LL_28B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_LL_28B_1, + 2, /* Elements count */ + &asn_SPC_Node_LL_28B_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-LL-32B.c b/src/tmx/Asn_J2735/src/2020/Node-LL-32B.c new file mode 100644 index 000000000..9db742f71 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-LL-32B.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-LL-32B.h" + +asn_TYPE_member_t asn_MBR_Node_LL_32B_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_32B, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_32B, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LL_32B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LL_32B_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LL_32B_specs_1 = { + sizeof(struct Node_LL_32B), + offsetof(struct Node_LL_32B, _asn_ctx), + asn_MAP_Node_LL_32B_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LL_32B = { + "Node-LL-32B", + "Node-LL-32B", + &asn_OP_SEQUENCE, + asn_DEF_Node_LL_32B_tags_1, + sizeof(asn_DEF_Node_LL_32B_tags_1) + /sizeof(asn_DEF_Node_LL_32B_tags_1[0]), /* 1 */ + asn_DEF_Node_LL_32B_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LL_32B_tags_1) + /sizeof(asn_DEF_Node_LL_32B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_LL_32B_1, + 2, /* Elements count */ + &asn_SPC_Node_LL_32B_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-LL-36B.c b/src/tmx/Asn_J2735/src/2020/Node-LL-36B.c new file mode 100644 index 000000000..01ce8b51c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-LL-36B.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-LL-36B.h" + +asn_TYPE_member_t asn_MBR_Node_LL_36B_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_36B, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B18, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_36B, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B18, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LL_36B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LL_36B_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LL_36B_specs_1 = { + sizeof(struct Node_LL_36B), + offsetof(struct Node_LL_36B, _asn_ctx), + asn_MAP_Node_LL_36B_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LL_36B = { + "Node-LL-36B", + "Node-LL-36B", + &asn_OP_SEQUENCE, + asn_DEF_Node_LL_36B_tags_1, + sizeof(asn_DEF_Node_LL_36B_tags_1) + /sizeof(asn_DEF_Node_LL_36B_tags_1[0]), /* 1 */ + asn_DEF_Node_LL_36B_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LL_36B_tags_1) + /sizeof(asn_DEF_Node_LL_36B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_LL_36B_1, + 2, /* Elements count */ + &asn_SPC_Node_LL_36B_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-LL-44B.c b/src/tmx/Asn_J2735/src/2020/Node-LL-44B.c new file mode 100644 index 000000000..4098c7a11 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-LL-44B.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-LL-44B.h" + +asn_TYPE_member_t asn_MBR_Node_LL_44B_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_44B, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B22, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_44B, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B22, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LL_44B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LL_44B_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LL_44B_specs_1 = { + sizeof(struct Node_LL_44B), + offsetof(struct Node_LL_44B, _asn_ctx), + asn_MAP_Node_LL_44B_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LL_44B = { + "Node-LL-44B", + "Node-LL-44B", + &asn_OP_SEQUENCE, + asn_DEF_Node_LL_44B_tags_1, + sizeof(asn_DEF_Node_LL_44B_tags_1) + /sizeof(asn_DEF_Node_LL_44B_tags_1[0]), /* 1 */ + asn_DEF_Node_LL_44B_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LL_44B_tags_1) + /sizeof(asn_DEF_Node_LL_44B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_LL_44B_1, + 2, /* Elements count */ + &asn_SPC_Node_LL_44B_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-LL-48B.c b/src/tmx/Asn_J2735/src/2020/Node-LL-48B.c new file mode 100644 index 000000000..91a132e0d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-LL-48B.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-LL-48B.h" + +asn_TYPE_member_t asn_MBR_Node_LL_48B_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_48B, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B24, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LL_48B, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B24, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LL_48B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LL_48B_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LL_48B_specs_1 = { + sizeof(struct Node_LL_48B), + offsetof(struct Node_LL_48B, _asn_ctx), + asn_MAP_Node_LL_48B_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LL_48B = { + "Node-LL-48B", + "Node-LL-48B", + &asn_OP_SEQUENCE, + asn_DEF_Node_LL_48B_tags_1, + sizeof(asn_DEF_Node_LL_48B_tags_1) + /sizeof(asn_DEF_Node_LL_48B_tags_1[0]), /* 1 */ + asn_DEF_Node_LL_48B_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LL_48B_tags_1) + /sizeof(asn_DEF_Node_LL_48B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_LL_48B_1, + 2, /* Elements count */ + &asn_SPC_Node_LL_48B_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-LLdms-48b.c b/src/tmx/Asn_J2735/src/2020/Node-LLdms-48b.c new file mode 100644 index 000000000..20e127019 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-LLdms-48b.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-LLdms-48b.h" + +asn_TYPE_member_t asn_MBR_Node_LLdms_48b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LLdms_48b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudeDMS, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LLdms_48b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LatitudeDMS, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LLdms_48b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LLdms_48b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LLdms_48b_specs_1 = { + sizeof(struct Node_LLdms_48b), + offsetof(struct Node_LLdms_48b, _asn_ctx), + asn_MAP_Node_LLdms_48b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LLdms_48b = { + "Node-LLdms-48b", + "Node-LLdms-48b", + &asn_OP_SEQUENCE, + asn_DEF_Node_LLdms_48b_tags_1, + sizeof(asn_DEF_Node_LLdms_48b_tags_1) + /sizeof(asn_DEF_Node_LLdms_48b_tags_1[0]), /* 1 */ + asn_DEF_Node_LLdms_48b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LLdms_48b_tags_1) + /sizeof(asn_DEF_Node_LLdms_48b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_LLdms_48b_1, + 2, /* Elements count */ + &asn_SPC_Node_LLdms_48b_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-LLdms-80b.c b/src/tmx/Asn_J2735/src/2020/Node-LLdms-80b.c new file mode 100644 index 000000000..9b5331e00 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-LLdms-80b.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-LLdms-80b.h" + +asn_TYPE_member_t asn_MBR_Node_LLdms_80b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LLdms_80b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudeDMS2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LLdms_80b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LatitudeDMS2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LLdms_80b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LLdms_80b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LLdms_80b_specs_1 = { + sizeof(struct Node_LLdms_80b), + offsetof(struct Node_LLdms_80b, _asn_ctx), + asn_MAP_Node_LLdms_80b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LLdms_80b = { + "Node-LLdms-80b", + "Node-LLdms-80b", + &asn_OP_SEQUENCE, + asn_DEF_Node_LLdms_80b_tags_1, + sizeof(asn_DEF_Node_LLdms_80b_tags_1) + /sizeof(asn_DEF_Node_LLdms_80b_tags_1[0]), /* 1 */ + asn_DEF_Node_LLdms_80b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LLdms_80b_tags_1) + /sizeof(asn_DEF_Node_LLdms_80b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_LLdms_80b_1, + 2, /* Elements count */ + &asn_SPC_Node_LLdms_80b_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-LLmD-64b.c b/src/tmx/Asn_J2735/src/2020/Node-LLmD-64b.c new file mode 100644 index 000000000..37121eb18 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-LLmD-64b.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_LLmD_64b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_LLmD_64b_specs_1 = { + sizeof(struct Node_LLmD_64b), + offsetof(struct Node_LLmD_64b, _asn_ctx), + asn_MAP_Node_LLmD_64b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_Node_LLmD_64b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-XY-20b.c b/src/tmx/Asn_J2735/src/2020/Node-XY-20b.c new file mode 100644 index 000000000..18457d9ae --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-XY-20b.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_20b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_20b_specs_1 = { + sizeof(struct Node_XY_20b), + offsetof(struct Node_XY_20b, _asn_ctx), + asn_MAP_Node_XY_20b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_20b_tags_1, + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_20b_tags_1) + /sizeof(asn_DEF_Node_XY_20b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-XY-22b.c b/src/tmx/Asn_J2735/src/2020/Node-XY-22b.c new file mode 100644 index 000000000..cab823652 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-XY-22b.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_22b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_22b_specs_1 = { + sizeof(struct Node_XY_22b), + offsetof(struct Node_XY_22b, _asn_ctx), + asn_MAP_Node_XY_22b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_22b_tags_1, + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_22b_tags_1) + /sizeof(asn_DEF_Node_XY_22b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-XY-24b.c b/src/tmx/Asn_J2735/src/2020/Node-XY-24b.c new file mode 100644 index 000000000..63ef07247 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-XY-24b.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_24b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_24b_specs_1 = { + sizeof(struct Node_XY_24b), + offsetof(struct Node_XY_24b, _asn_ctx), + asn_MAP_Node_XY_24b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_24b_tags_1, + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_24b_tags_1) + /sizeof(asn_DEF_Node_XY_24b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-XY-26b.c b/src/tmx/Asn_J2735/src/2020/Node-XY-26b.c new file mode 100644 index 000000000..5b3b47c91 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-XY-26b.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_26b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_26b_specs_1 = { + sizeof(struct Node_XY_26b), + offsetof(struct Node_XY_26b, _asn_ctx), + asn_MAP_Node_XY_26b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_26b_tags_1, + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_26b_tags_1) + /sizeof(asn_DEF_Node_XY_26b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-XY-28b.c b/src/tmx/Asn_J2735/src/2020/Node-XY-28b.c new file mode 100644 index 000000000..c34cebb69 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-XY-28b.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_28b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_28b_specs_1 = { + sizeof(struct Node_XY_28b), + offsetof(struct Node_XY_28b, _asn_ctx), + asn_MAP_Node_XY_28b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_28b_tags_1, + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_28b_tags_1) + /sizeof(asn_DEF_Node_XY_28b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Node-XY-32b.c b/src/tmx/Asn_J2735/src/2020/Node-XY-32b.c new file mode 100644 index 000000000..a3897991e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Node-XY-32b.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Node_XY_32b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Node_XY_32b_specs_1 = { + sizeof(struct Node_XY_32b), + offsetof(struct Node_XY_32b, _asn_ctx), + asn_MAP_Node_XY_32b_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_Node_XY_32b_tags_1, + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_Node_XY_32b_tags_1) + /sizeof(asn_DEF_Node_XY_32b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeAttributeLL.c b/src/tmx/Asn_J2735/src/2020/NodeAttributeLL.c new file mode 100644 index 000000000..a9c7c26f6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeAttributeLL.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeAttributeLL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeAttributeLL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeAttributeLL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_NodeAttributeLL_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 8, "stopLine" }, + { 2, 16, "roundedCapStyleA" }, + { 3, 16, "roundedCapStyleB" }, + { 4, 10, "mergePoint" }, + { 5, 12, "divergePoint" }, + { 6, 18, "downstreamStopLine" }, + { 7, 19, "downstreamStartNode" }, + { 8, 15, "closedToTraffic" }, + { 9, 10, "safeIsland" }, + { 10, 20, "curbPresentAtStepOff" }, + { 11, 14, "hydrantPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NodeAttributeLL_enum2value_1[] = { + 8, /* closedToTraffic(8) */ + 10, /* curbPresentAtStepOff(10) */ + 5, /* divergePoint(5) */ + 7, /* downstreamStartNode(7) */ + 6, /* downstreamStopLine(6) */ + 11, /* hydrantPresent(11) */ + 4, /* mergePoint(4) */ + 0, /* reserved(0) */ + 2, /* roundedCapStyleA(2) */ + 3, /* roundedCapStyleB(3) */ + 9, /* safeIsland(9) */ + 1 /* stopLine(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NodeAttributeLL_specs_1 = { + asn_MAP_NodeAttributeLL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NodeAttributeLL_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeLL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeLL = { + "NodeAttributeLL", + "NodeAttributeLL", + &asn_OP_NativeEnumerated, + asn_DEF_NodeAttributeLL_tags_1, + sizeof(asn_DEF_NodeAttributeLL_tags_1) + /sizeof(asn_DEF_NodeAttributeLL_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeLL_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeLL_tags_1) + /sizeof(asn_DEF_NodeAttributeLL_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeAttributeLL_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeAttributeLL_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NodeAttributeLL_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeAttributeLLList.c b/src/tmx/Asn_J2735/src/2020/NodeAttributeLLList.c new file mode 100644 index 000000000..3a21944e2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeAttributeLLList.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeAttributeLLList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeAttributeLLList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeAttributeLLList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NodeAttributeLLList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_NodeAttributeLL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeLLList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeAttributeLLList_specs_1 = { + sizeof(struct NodeAttributeLLList), + offsetof(struct NodeAttributeLLList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeLLList = { + "NodeAttributeLLList", + "NodeAttributeLLList", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeAttributeLLList_tags_1, + sizeof(asn_DEF_NodeAttributeLLList_tags_1) + /sizeof(asn_DEF_NodeAttributeLLList_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeLLList_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeLLList_tags_1) + /sizeof(asn_DEF_NodeAttributeLLList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeAttributeLLList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeAttributeLLList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_NodeAttributeLLList_1, + 1, /* Single element */ + &asn_SPC_NodeAttributeLLList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeAttributeSetLL.c b/src/tmx/Asn_J2735/src/2020/NodeAttributeSetLL.c new file mode 100644 index 000000000..8a09886da --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeAttributeSetLL.c @@ -0,0 +1,283 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeAttributeSetLL.h" + +#include "NodeAttributeLLList.h" +#include "SegmentAttributeLLList.h" +#include "LaneDataAttributeList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_NodeAttributeSetLL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct NodeAttributeSetLL__regional), + offsetof(struct NodeAttributeSetLL__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NodeAttributeSetLL_1[] = { + { ATF_POINTER, 7, offsetof(struct NodeAttributeSetLL, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeLLList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "localNode" + }, + { ATF_POINTER, 6, offsetof(struct NodeAttributeSetLL, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeLLList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "disabled" + }, + { ATF_POINTER, 5, offsetof(struct NodeAttributeSetLL, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeLLList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 4, offsetof(struct NodeAttributeSetLL, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDataAttributeList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "data" + }, + { ATF_POINTER, 3, offsetof(struct NodeAttributeSetLL, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dWidth" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSetLL, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dElevation" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSetLL, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_NodeAttributeSetLL_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSetLL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSetLL_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localNode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* disabled */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dElevation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetLL_specs_1 = { + sizeof(struct NodeAttributeSetLL), + offsetof(struct NodeAttributeSetLL, _asn_ctx), + asn_MAP_NodeAttributeSetLL_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_NodeAttributeSetLL_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetLL = { + "NodeAttributeSetLL", + "NodeAttributeSetLL", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSetLL_tags_1, + sizeof(asn_DEF_NodeAttributeSetLL_tags_1) + /sizeof(asn_DEF_NodeAttributeSetLL_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSetLL_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSetLL_tags_1) + /sizeof(asn_DEF_NodeAttributeSetLL_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_NodeAttributeSetLL_1, + 7, /* Elements count */ + &asn_SPC_NodeAttributeSetLL_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeAttributeSetXY.c b/src/tmx/Asn_J2735/src/2020/NodeAttributeSetXY.c new file mode 100644 index 000000000..bff41ae8c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeAttributeSetXY.c @@ -0,0 +1,283 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeAttributeSetXY.h" + +#include "NodeAttributeXYList.h" +#include "SegmentAttributeXYList.h" +#include "LaneDataAttributeList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_NodeAttributeSetXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct NodeAttributeSetXY__regional), + offsetof(struct NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeXYList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "localNode" + }, + { ATF_POINTER, 6, offsetof(struct NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "disabled" + }, + { ATF_POINTER, 5, offsetof(struct NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SegmentAttributeXYList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 4, offsetof(struct NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneDataAttributeList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "data" + }, + { ATF_POINTER, 3, offsetof(struct NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dWidth" + }, + { ATF_POINTER, 2, offsetof(struct NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dElevation" + }, + { ATF_POINTER, 1, offsetof(struct NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeAttributeSetXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localNode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* disabled */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dElevation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeAttributeSetXY_specs_1 = { + sizeof(struct NodeAttributeSetXY), + offsetof(struct NodeAttributeSetXY, _asn_ctx), + asn_MAP_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_NodeAttributeSetXY_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeAttributeXY.c b/src/tmx/Asn_J2735/src/2020/NodeAttributeXY.c new file mode 100644 index 000000000..80784df12 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeAttributeXY.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_NodeAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 8, "stopLine" }, + { 2, 16, "roundedCapStyleA" }, + { 3, 16, "roundedCapStyleB" }, + { 4, 10, "mergePoint" }, + { 5, 12, "divergePoint" }, + { 6, 18, "downstreamStopLine" }, + { 7, 19, "downstreamStartNode" }, + { 8, 15, "closedToTraffic" }, + { 9, 10, "safeIsland" }, + { 10, 20, "curbPresentAtStepOff" }, + { 11, 14, "hydrantPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NodeAttributeXY_enum2value_1[] = { + 8, /* closedToTraffic(8) */ + 10, /* curbPresentAtStepOff(10) */ + 5, /* divergePoint(5) */ + 7, /* downstreamStartNode(7) */ + 6, /* downstreamStopLine(6) */ + 11, /* hydrantPresent(11) */ + 4, /* mergePoint(4) */ + 0, /* reserved(0) */ + 2, /* roundedCapStyleA(2) */ + 3, /* roundedCapStyleB(3) */ + 9, /* safeIsland(9) */ + 1 /* stopLine(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NodeAttributeXY_specs_1 = { + asn_MAP_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NodeAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_NodeAttributeXY_tags_1, + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_NodeAttributeXY_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeAttributeXY_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeAttributeXY_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeAttributeXYList.c b/src/tmx/Asn_J2735/src/2020/NodeAttributeXYList.c new file mode 100644 index 000000000..620e45a21 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeAttributeXYList.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeAttributeXYList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_NodeAttributeXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeAttributeXYList_specs_1 = { + sizeof(struct NodeAttributeXYList), + offsetof(struct NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_NodeAttributeXYList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeAttributeXYList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeAttributeXYList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeLL.c b/src/tmx/Asn_J2735/src/2020/NodeLL.c new file mode 100644 index 000000000..a1e84362b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeLL.c @@ -0,0 +1,87 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeLL.h" + +#include "NodeAttributeSetLL.h" +asn_TYPE_member_t asn_MBR_NodeLL_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeLL, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointLL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "delta" + }, + { ATF_POINTER, 1, offsetof(struct NodeLL, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeSetLL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_NodeLL_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_NodeLL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeLL_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delta */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeLL_specs_1 = { + sizeof(struct NodeLL), + offsetof(struct NodeLL, _asn_ctx), + asn_MAP_NodeLL_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NodeLL_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeLL = { + "NodeLL", + "NodeLL", + &asn_OP_SEQUENCE, + asn_DEF_NodeLL_tags_1, + sizeof(asn_DEF_NodeLL_tags_1) + /sizeof(asn_DEF_NodeLL_tags_1[0]), /* 1 */ + asn_DEF_NodeLL_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeLL_tags_1) + /sizeof(asn_DEF_NodeLL_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_NodeLL_1, + 2, /* Elements count */ + &asn_SPC_NodeLL_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeListLL.c b/src/tmx/Asn_J2735/src/2020/NodeListLL.c new file mode 100644 index 000000000..edcee50fa --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeListLL.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeListLL.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeListLL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeListLL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NodeListLL_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeListLL, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetLL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodes" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeListLL_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nodes */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeListLL_specs_1 = { + sizeof(struct NodeListLL), + offsetof(struct NodeListLL, _asn_ctx), + offsetof(struct NodeListLL, present), + sizeof(((struct NodeListLL *)0)->present), + asn_MAP_NodeListLL_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeListLL = { + "NodeListLL", + "NodeListLL", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeListLL_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeListLL_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_NodeListLL_1, + 1, /* Elements count */ + &asn_SPC_NodeListLL_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeListXY.c b/src/tmx/Asn_J2735/src/2020/NodeListXY.c new file mode 100644 index 000000000..a11b4ecda --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeListXY.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeListXY.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeListXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeListXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeSetXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ComputedLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "computed" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeListXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* computed */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeListXY_specs_1 = { + sizeof(struct NodeListXY), + offsetof(struct NodeListXY, _asn_ctx), + offsetof(struct NodeListXY, present), + sizeof(((struct NodeListXY *)0)->present), + asn_MAP_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeListXY = { + "NodeListXY", + "NodeListXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeListXY_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeListXY_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeOffsetPointLL.c b/src/tmx/Asn_J2735/src/2020/NodeOffsetPointLL.c new file mode 100644 index 000000000..378248396 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeOffsetPointLL.c @@ -0,0 +1,201 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeOffsetPointLL.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointLL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeOffsetPointLL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NodeOffsetPointLL_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointLL, choice.node_LL1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LL_24B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-LL1" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointLL, choice.node_LL2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LL_28B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-LL2" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointLL, choice.node_LL3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LL_32B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-LL3" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointLL, choice.node_LL4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LL_36B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-LL4" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointLL, choice.node_LL5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LL_44B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-LL5" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointLL, choice.node_LL6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LL_48B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-LL6" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointLL, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLmD_64b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-LatLon" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointLL, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_NodeOffsetPointLL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointLL_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-LL1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-LL2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-LL3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-LL4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-LL5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* node-LL6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* node-LatLon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointLL_specs_1 = { + sizeof(struct NodeOffsetPointLL), + offsetof(struct NodeOffsetPointLL, _asn_ctx), + offsetof(struct NodeOffsetPointLL, present), + sizeof(((struct NodeOffsetPointLL *)0)->present), + asn_MAP_NodeOffsetPointLL_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointLL = { + "NodeOffsetPointLL", + "NodeOffsetPointLL", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeOffsetPointLL_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeOffsetPointLL_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_NodeOffsetPointLL_1, + 8, /* Elements count */ + &asn_SPC_NodeOffsetPointLL_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeOffsetPointXY-addGrpB.c b/src/tmx/Asn_J2735/src/2020/NodeOffsetPointXY-addGrpB.c new file mode 100644 index 000000000..d85858a93 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeOffsetPointXY-addGrpB.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeOffsetPointXY-addGrpB.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointXY_addGrpB_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_addGrpB_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_addGrpB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY_addGrpB, choice.posA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLdms_48b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posA" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY_addGrpB, choice.posB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLdms_80b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointXY_addGrpB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* posA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* posB */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_addGrpB_specs_1 = { + sizeof(struct NodeOffsetPointXY_addGrpB), + offsetof(struct NodeOffsetPointXY_addGrpB, _asn_ctx), + offsetof(struct NodeOffsetPointXY_addGrpB, present), + sizeof(((struct NodeOffsetPointXY_addGrpB *)0)->present), + asn_MAP_NodeOffsetPointXY_addGrpB_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY_addGrpB = { + "NodeOffsetPointXY-addGrpB", + "NodeOffsetPointXY-addGrpB", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeOffsetPointXY_addGrpB_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeOffsetPointXY_addGrpB_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_NodeOffsetPointXY_addGrpB_1, + 2, /* Elements count */ + &asn_SPC_NodeOffsetPointXY_addGrpB_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeOffsetPointXY.c b/src/tmx/Asn_J2735/src/2020/NodeOffsetPointXY.c new file mode 100644 index 000000000..d9291e5f4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeOffsetPointXY.c @@ -0,0 +1,201 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeOffsetPointXY.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_20b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY1" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_22b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY2" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_24b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY3" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_26b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY4" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_28b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY5" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_32b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY6" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_LLmD_64b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-LatLon" + }, + { ATF_NOFLAGS, 0, offsetof(struct NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_NodeOffsetPointXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeOffsetPointXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-XY1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-XY2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-XY3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-XY4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-XY5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* node-XY6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* node-LatLon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_NodeOffsetPointXY_specs_1 = { + sizeof(struct NodeOffsetPointXY), + offsetof(struct NodeOffsetPointXY, _asn_ctx), + offsetof(struct NodeOffsetPointXY, present), + sizeof(((struct NodeOffsetPointXY *)0)->present), + asn_MAP_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeOffsetPointXY = { + "NodeOffsetPointXY", + "NodeOffsetPointXY", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeOffsetPointXY_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeOffsetPointXY_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeSetLL.c b/src/tmx/Asn_J2735/src/2020/NodeSetLL.c new file mode 100644 index 000000000..4b25eff3e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeSetLL.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeSetLL.h" + +#include "NodeLL.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeSetLL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..63)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeSetLL_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 2, 63 } /* (SIZE(2..63)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NodeSetLL_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeLL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeSetLL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeSetLL_specs_1 = { + sizeof(struct NodeSetLL), + offsetof(struct NodeSetLL, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeSetLL = { + "NodeSetLL", + "NodeSetLL", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeSetLL_tags_1, + sizeof(asn_DEF_NodeSetLL_tags_1) + /sizeof(asn_DEF_NodeSetLL_tags_1[0]), /* 1 */ + asn_DEF_NodeSetLL_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeSetLL_tags_1) + /sizeof(asn_DEF_NodeSetLL_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeSetLL_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeSetLL_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_NodeSetLL_1, + 1, /* Single element */ + &asn_SPC_NodeSetLL_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeSetXY.c b/src/tmx/Asn_J2735/src/2020/NodeSetXY.c new file mode 100644 index 000000000..d5ba891da --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeSetXY.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeSetXY.h" + +#include "NodeXY.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..63)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NodeSetXY_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 2, 63 } /* (SIZE(2..63)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NodeXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NodeSetXY_specs_1 = { + sizeof(struct NodeSetXY), + offsetof(struct NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_NodeSetXY_tags_1, + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeSetXY_tags_1) + /sizeof(asn_DEF_NodeSetXY_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NodeSetXY_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NodeSetXY_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NodeXY.c b/src/tmx/Asn_J2735/src/2020/NodeXY.c new file mode 100644 index 000000000..3b1f67a55 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NodeXY.c @@ -0,0 +1,87 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NodeXY.h" + +#include "NodeAttributeSetXY.h" +asn_TYPE_member_t asn_MBR_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "delta" + }, + { ATF_POINTER, 1, offsetof(struct NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NodeAttributeSetXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NodeXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delta */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NodeXY_specs_1 = { + sizeof(struct NodeXY), + offsetof(struct NodeXY, _asn_ctx), + asn_MAP_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_NodeXY_tags_1, + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_NodeXY_tags_1) + /sizeof(asn_DEF_NodeXY_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/NumberOfParticipantsInCluster.c b/src/tmx/Asn_J2735/src/2020/NumberOfParticipantsInCluster.c new file mode 100644 index 000000000..7679697b1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/NumberOfParticipantsInCluster.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "NumberOfParticipantsInCluster.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_NumberOfParticipantsInCluster_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_NumberOfParticipantsInCluster_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_NumberOfParticipantsInCluster_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 5, "small" }, + { 2, 6, "medium" }, + { 3, 5, "large" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NumberOfParticipantsInCluster_enum2value_1[] = { + 3, /* large(3) */ + 2, /* medium(2) */ + 1, /* small(1) */ + 0 /* unavailable(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NumberOfParticipantsInCluster_specs_1 = { + asn_MAP_NumberOfParticipantsInCluster_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NumberOfParticipantsInCluster_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NumberOfParticipantsInCluster_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfParticipantsInCluster = { + "NumberOfParticipantsInCluster", + "NumberOfParticipantsInCluster", + &asn_OP_NativeEnumerated, + asn_DEF_NumberOfParticipantsInCluster_tags_1, + sizeof(asn_DEF_NumberOfParticipantsInCluster_tags_1) + /sizeof(asn_DEF_NumberOfParticipantsInCluster_tags_1[0]), /* 1 */ + asn_DEF_NumberOfParticipantsInCluster_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfParticipantsInCluster_tags_1) + /sizeof(asn_DEF_NumberOfParticipantsInCluster_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_NumberOfParticipantsInCluster_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_NumberOfParticipantsInCluster_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NumberOfParticipantsInCluster_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER.c b/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER.c new file mode 100644 index 000000000..5cf2d6066 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER.c @@ -0,0 +1,532 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include +#include /* for CHAR_BIT */ +#include +#include + +/* + * OBJECT IDENTIFIER basic type description. + */ +static const ber_tlv_tag_t asn_DEF_OBJECT_IDENTIFIER_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)) +}; +asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = { + ASN__PRIMITIVE_TYPE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OBJECT_IDENTIFIER_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, /* Implemented in terms of a string comparison */ +#if !defined(ASN_DISABLE_BER_SUPPORT) + ber_decode_primitive, + der_encode_primitive, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OBJECT_IDENTIFIER_decode_xer, + OBJECT_IDENTIFIER_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OBJECT_IDENTIFIER_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OBJECT_IDENTIFIER_decode_oer, + OBJECT_IDENTIFIER_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OBJECT_IDENTIFIER_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER = { + "OBJECT IDENTIFIER", + "OBJECT_IDENTIFIER", + &asn_OP_OBJECT_IDENTIFIER, + asn_DEF_OBJECT_IDENTIFIER_tags, + sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) + / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), + asn_DEF_OBJECT_IDENTIFIER_tags, /* Same as above */ + sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) + / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OBJECT_IDENTIFIER_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +OBJECT_IDENTIFIER_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, + void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + + if(st && st->buf) { + if(st->size < 1) { + ASN__CTFAIL(app_key, td, sptr, + "%s: at least one numerical value " + "expected (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + +static ssize_t +OBJECT_IDENTIFIER_get_first_arcs(const uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t *arc0, asn_oid_arc_t *arc1) { + asn_oid_arc_t value; + + ssize_t rd = OBJECT_IDENTIFIER_get_single_arc(arcbuf, arcbuf_len, &value); + if(rd <= 0) return rd; + + if(value >= 80) { + *arc0 = 2; + *arc1 = value - 80; + } else if(value >= 40) { + *arc0 = 1; + *arc1 = value - 40; + } else { + *arc0 = 0; + *arc1 = value; + } + + return rd; +} + +ssize_t +OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t *ret_value) { + const uint8_t *b = arcbuf; + const uint8_t *arcend = arcbuf + arcbuf_len; /* End of arc */ + + if(arcbuf == arcend) { + return 0; + } else { + asn_oid_arc_t accum; + asn_oid_arc_t upper_limit = (ASN_OID_ARC_MAX >> 7); + /* When the value reaches "upper_limit", it can take */ + /* at most one more digit. If it exceeds "upper_limit" */ + /* but there are more digits - it's an Overflow condition */ + /* Gather all bits into the accumulator */ + for(accum = 0; b < arcend; b++) { + accum = (accum << 7) | (*b & ~0x80); + if((*b & 0x80) == 0) { // no more digits + if(accum <= ASN_OID_ARC_MAX) { + *ret_value = accum; + return 1 + (b - arcbuf); + } else { + errno = ERANGE; /* Overflow */ + return -1; + } + } else { // to make sure we aren't wrapping around + if(accum > upper_limit) { + errno = ERANGE; /* Overflow */ + return -1; + } + } + } + errno = EINVAL; + return -1; + } + +} + +ssize_t +OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st, + asn_app_consume_bytes_f *cb, void *app_key) { + char scratch[32]; + asn_oid_arc_t arc0 = 0; + asn_oid_arc_t arc1 = 0; + size_t produced = 0; + size_t off = 0; + ssize_t rd; + int ret; + + rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); + if(rd <= 0) { + return -1; + } + + ret = snprintf(scratch, sizeof(scratch), "%"PRIu32".%"PRIu32, arc0, arc1); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + if(cb(scratch, ret, app_key) < 0) + return -1; + + for(off = rd; ; ) { + asn_oid_arc_t arc; + rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, + &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + assert(off <= st->size); + ret = snprintf(scratch, sizeof(scratch), ".%" PRIu32, arc); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + if(cb(scratch, ret, app_key) < 0) return -1; + } + } + + if(off != st->size) { + ASN_DEBUG("Could not scan to the end of Object Identifier"); + return -1; + } + + return produced; +} + +ssize_t +OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *st, asn_oid_arc_t *arcs, + size_t arc_slots) { + asn_oid_arc_t arc0 = 0; + asn_oid_arc_t arc1 = 0; + size_t num_arcs = 0; + size_t off; + ssize_t rd; + + if(!st || !st->buf) { + errno = EINVAL; + return -1; + } + + rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); + if(rd <= 0) { + return -1; + } + num_arcs = 2; + switch(arc_slots) { + default: + case 2: + arcs[1] = arc1; + /* Fall through */ + case 1: + arcs[0] = arc0; + /* Fall through */ + case 0: + break; + } + + for(off = rd; ; ) { + asn_oid_arc_t arc; + rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, + &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + if(num_arcs < arc_slots) { + arcs[num_arcs] = arc; + } + num_arcs++; + } + } + + if(off != st->size) { + return -1; + } + + return num_arcs; +} + + +/* + * Save the single value as an object identifier arc. + */ +ssize_t +OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t value) { + /* + * The following conditions must hold: + * assert(arcbuf); + */ + uint8_t scratch[((sizeof(value) * CHAR_BIT + 6) / 7)]; + uint8_t *scratch_end = &scratch[sizeof(scratch)-1]; + uint8_t *b; + size_t result_len; + uint8_t mask; + + for(b = scratch_end, mask = 0; ; mask = 0x80, b--) { + *b = mask | (value & 0x7f); + value >>= 7; + if(!value) { + break; + } + } + + result_len = (scratch_end - b) + 1; + + if(result_len > arcbuf_len) { + return -1; + } + + memcpy(arcbuf, b, result_len); + + return result_len; +} + +int +OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *st, const asn_oid_arc_t *arcs, + size_t arc_slots) { + uint8_t *buf; + uint8_t *bp; + ssize_t wrote; + asn_oid_arc_t arc0; + asn_oid_arc_t arc1; + size_t size; + size_t i; + + if(!st || !arcs || arc_slots < 2) { + errno = EINVAL; + return -1; + } + + arc0 = arcs[0]; + arc1 = arcs[1]; + + if(arc0 <= 1) { + if(arc1 >= 40) { + /* 8.19.4: At most 39 subsequent values (including 0) */ + errno = ERANGE; + return -1; + } + } else if(arc0 == 2) { + if(arc1 > ASN_OID_ARC_MAX - 80) { + errno = ERANGE; + return -1; + } + } else if(arc0 > 2) { + /* 8.19.4: Only three values are allocated from the root node */ + errno = ERANGE; + return -1; + } + + /* + * After above tests it is known that the value of arc0 is completely + * trustworthy (0..2). However, the arc1's value is still meaningless. + */ + + /* + * Roughly estimate the maximum size necessary to encode these arcs. + * This estimation implicitly takes in account the following facts, + * that cancel each other: + * * the first two arcs are encoded in a single value. + * * the first value may require more space (+1 byte) + * * the value of the first arc which is in range (0..2) + */ + size = ((sizeof(asn_oid_arc_t) * CHAR_BIT + 6) / 7) * arc_slots; + bp = buf = (uint8_t *)MALLOC(size + 1); + if(!buf) { + /* ENOMEM */ + return -1; + } + + wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arc0 * 40 + arc1); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + + for(i = 2; i < arc_slots; i++) { + wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arcs[i]); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + } + + /* + * Replace buffer. + */ + st->size = bp - buf; + bp = st->buf; + st->buf = buf; + st->buf[st->size] = '\0'; + if(bp) FREEMEM(bp); + + return 0; +} + +ssize_t +OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, ssize_t oid_txt_length, + asn_oid_arc_t *arcs, size_t arcs_count, + const char **opt_oid_text_end) { + size_t num_arcs = 0; + const char *oid_end; + enum { + ST_LEADSPACE, + ST_TAILSPACE, + ST_AFTERVALUE, /* Next character ought to be '.' or a space */ + ST_WAITDIGITS /* Next character is expected to be a digit */ + } state = ST_LEADSPACE; + + if(!oid_text || oid_txt_length < -1 || (arcs_count && !arcs)) { + if(opt_oid_text_end) *opt_oid_text_end = oid_text; + errno = EINVAL; + return -1; + } + + if(oid_txt_length == -1) + oid_txt_length = strlen(oid_text); + +#define _OID_CAPTURE_ARC(oid_text, oid_end) \ + do { \ + const char *endp = oid_end; \ + unsigned long value; \ + switch(asn_strtoul_lim(oid_text, &endp, &value)) { \ + case ASN_STRTOX_EXTRA_DATA: \ + case ASN_STRTOX_OK: \ + if(value <= ASN_OID_ARC_MAX) { \ + if(num_arcs < arcs_count) arcs[num_arcs] = value; \ + num_arcs++; \ + oid_text = endp - 1; \ + break; \ + } \ + /* Fall through */ \ + case ASN_STRTOX_ERROR_RANGE: \ + if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ + errno = ERANGE; \ + return -1; \ + case ASN_STRTOX_ERROR_INVAL: \ + case ASN_STRTOX_EXPECT_MORE: \ + if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ + errno = EINVAL; \ + return -1; \ + } \ + } while(0) + + for(oid_end = oid_text + oid_txt_length; oid_text broken OID */ + return -1; + case ST_LEADSPACE: + case ST_WAITDIGITS: + _OID_CAPTURE_ARC(oid_text, oid_end); + state = ST_AFTERVALUE; + continue; + } + break; + default: + /* Unexpected symbols */ + state = ST_WAITDIGITS; + break; + } /* switch() */ + break; + } /* for() */ + + + if(opt_oid_text_end) *opt_oid_text_end = oid_text; + + /* Finalize last arc */ + switch(state) { + case ST_LEADSPACE: + return 0; /* No OID found in input data */ + case ST_WAITDIGITS: + errno = EINVAL; /* Broken OID */ + return -1; + case ST_AFTERVALUE: + case ST_TAILSPACE: + return num_arcs; + } + + errno = EINVAL; /* Broken OID */ + return -1; +} diff --git a/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_jer.c b/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_jer.c new file mode 100644 index 000000000..f105f038e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_jer.c @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + + +asn_enc_rval_t +OBJECT_IDENTIFIER_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) { + ASN__ENCODE_FAILED; + } + + er.encoded = OBJECT_IDENTIFIER__dump_body(st, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_print.c b/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_print.c new file mode 100644 index 000000000..b0c3a9e84 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_print.c @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +OBJECT_IDENTIFIER_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, + void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb("{ ", 2, app_key) < 0) + return -1; + + if(OBJECT_IDENTIFIER__dump_body(st, cb, app_key) < 0) { + return -1; + } + + return (cb(" }", 2, app_key) < 0) ? -1 : 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_rfill.c b/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_rfill.c new file mode 100644 index 000000000..55093c8e1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_rfill.c @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Generate values from the list of interesting values, or just a random + * value up to the upper limit. + */ +static asn_oid_arc_t +OBJECT_IDENTIFIER__biased_random_arc(asn_oid_arc_t upper_bound) { + const asn_oid_arc_t values[] = {0, 1, 127, 128, 129, 254, 255, 256}; + size_t idx; + + switch(asn_random_between(0, 2)) { + case 0: + idx = asn_random_between(0, sizeof(values) / sizeof(values[0]) - 1); + if(values[idx] < upper_bound) { + return values[idx]; + } + /* Fall through */ + case 1: + return asn_random_between(0, upper_bound); + case 2: + default: + return upper_bound; + } +} + +asn_random_fill_result_t +OBJECT_IDENTIFIER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + OBJECT_IDENTIFIER_t *st; + asn_oid_arc_t arcs[5]; + size_t arcs_len = asn_random_between(2, 5); + size_t i; + + (void)constraints; + + if(max_length < arcs_len) return result_skipped; + + if(*sptr) { + st = *sptr; + } else { + st = CALLOC(1, sizeof(*st)); + } + + arcs[0] = asn_random_between(0, 2); + arcs[1] = OBJECT_IDENTIFIER__biased_random_arc( + arcs[0] <= 1 ? 39 : (ASN_OID_ARC_MAX - 80)); + for(i = 2; i < arcs_len; i++) { + arcs[i] = OBJECT_IDENTIFIER__biased_random_arc(ASN_OID_ARC_MAX); + } + + if(OBJECT_IDENTIFIER_set_arcs(st, arcs, arcs_len)) { + if(st != *sptr) { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } + + *sptr = st; + + result_ok.length = st->size; + return result_ok; +} diff --git a/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_xer.c b/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_xer.c new file mode 100644 index 000000000..706e51a94 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OBJECT_IDENTIFIER_xer.c @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +static enum xer_pbd_rval +OBJECT_IDENTIFIER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + OBJECT_IDENTIFIER_t *st = (OBJECT_IDENTIFIER_t *)sptr; + const char *chunk_end = (const char *)chunk_buf + chunk_size; + const char *endptr; + asn_oid_arc_t s_arcs[10]; + asn_oid_arc_t *arcs = s_arcs; + ssize_t num_arcs; + ssize_t ret; + + (void)td; + + num_arcs = OBJECT_IDENTIFIER_parse_arcs( + (const char *)chunk_buf, chunk_size, arcs, + sizeof(s_arcs) / sizeof(s_arcs[0]), &endptr); + if(num_arcs < 0) { + /* Expecting more than zero arcs */ + return XPBD_BROKEN_ENCODING; + } else if(num_arcs == 0) { + return XPBD_NOT_BODY_IGNORE; + } + (void)chunk_end; + assert(endptr == chunk_end); + + if((size_t)num_arcs > sizeof(s_arcs)/sizeof(s_arcs[0])) { + arcs = (asn_oid_arc_t *)MALLOC(num_arcs * sizeof(asn_oid_arc_t)); + if(!arcs) return XPBD_SYSTEM_FAILURE; + ret = OBJECT_IDENTIFIER_parse_arcs((const char *)chunk_buf, chunk_size, + arcs, num_arcs, &endptr); + if(ret != num_arcs) + return XPBD_SYSTEM_FAILURE; /* assert?.. */ + } + + /* + * Convert arcs into BER representation. + */ + ret = OBJECT_IDENTIFIER_set_arcs(st, arcs, num_arcs); + if(arcs != s_arcs) FREEMEM(arcs); + + return ret ? XPBD_SYSTEM_FAILURE : XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +OBJECT_IDENTIFIER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(OBJECT_IDENTIFIER_t), opt_mname, + buf_ptr, size, OBJECT_IDENTIFIER__xer_body_decode); +} + +asn_enc_rval_t +OBJECT_IDENTIFIER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) { + ASN__ENCODE_FAILED; + } + + er.encoded = OBJECT_IDENTIFIER__dump_body(st, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/OCTET_STRING.c b/src/tmx/Asn_J2735/src/2020/OCTET_STRING.c new file mode 100644 index 000000000..d0bdeade7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OCTET_STRING.c @@ -0,0 +1,383 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * OCTET STRING basic type description. + */ +static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { + sizeof(OCTET_STRING_t), + offsetof(OCTET_STRING_t, _asn_ctx), + ASN_OSUBV_STR +}; +asn_TYPE_operation_t asn_OP_OCTET_STRING = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, /* Unaligned PER decoder */ + OCTET_STRING_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, /* Aligned PER decoder */ + OCTET_STRING_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OCTET_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { + "OCTET STRING", /* Canonical name */ + "OCTET_STRING", /* XML tag name */ + &asn_OP_OCTET_STRING, + asn_DEF_OCTET_STRING_tags, + sizeof(asn_DEF_OCTET_STRING_tags) + / sizeof(asn_DEF_OCTET_STRING_tags[0]), + asn_DEF_OCTET_STRING_tags, /* Same as above */ + sizeof(asn_DEF_OCTET_STRING_tags) + / sizeof(asn_DEF_OCTET_STRING_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs +}; + +void +OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + + if(!td || !st) + return; + + ASN_DEBUG("Freeing %s as OCTET STRING", td->name); + + if(st->buf) { + FREEMEM(st->buf); + st->buf = 0; + } + +#if !defined(ASN_DISABLE_BER_SUPPORT) + const asn_OCTET_STRING_specifics_t *specs; + asn_struct_ctx_t *ctx; + + specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Remove decode-time stack. + */ + struct _stack *stck; + stck = (struct _stack *)ctx->ptr; + if(stck) { + while(stck->tail) { + struct _stack_el *sel = stck->tail; + stck->tail = sel->prev; + FREEMEM(sel); + } + FREEMEM(stck); + } +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(sptr, 0, + td->specifics + ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) + ->struct_size + : sizeof(OCTET_STRING_t)); + break; + } +} + +/* + * Conversion routines. + */ +int +OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { + void *buf; + + if(st == 0 || (str == 0 && len)) { + errno = EINVAL; + return -1; + } + + /* + * Clear the OCTET STRING. + */ + if(str == NULL) { + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + return 0; + } + + /* Determine the original string size, if not explicitly given */ + if(len < 0) + len = strlen(str); + + /* Allocate and fill the memory */ + buf = MALLOC(len + 1); + if(buf == NULL) + return -1; + + memcpy(buf, str, len); + ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ + FREEMEM(st->buf); + st->buf = (uint8_t *)buf; + st->size = len; + + return 0; +} + +OCTET_STRING_t * +OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, + int len) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + OCTET_STRING_t *st; + + st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); + if(st && str && OCTET_STRING_fromBuf(st, str, len)) { + FREEMEM(st); + st = NULL; + } + + return st; +} + +/* + * Lexicographically compare the common prefix of both strings, + * and if it is the same return -1 for the smallest string. + */ +int +OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + const OCTET_STRING_t *a = aptr; + const OCTET_STRING_t *b = bptr; + + (void)specs; + assert(!specs || specs->subvariant != ASN_OSUBV_BIT); + + if(a && b) { + size_t common_prefix_size = a->size <= b->size ? a->size : b->size; + int ret = memcmp(a->buf, b->buf, common_prefix_size); + if(ret == 0) { + /* Figure out which string with equal prefixes is longer. */ + if(a->size < b->size) { + return -1; + } else if(a->size > b->size) { + return 1; + } else { + return 0; + } + } else { + return ret < 0 ? -1 : 1; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int +OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, + size_t units, unsigned int bpc, unsigned int unit_bits, + long lb, long ub, const asn_per_constraints_t *pc) { + uint8_t *end = buf + units * bpc; + + ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", + (int)units, lb, ub, unit_bits); + + /* X.691: 27.5.4 */ + if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { + /* Decode without translation */ + lb = 0; + } else if(pc && pc->code2value) { + if(unit_bits > 16) + return 1; /* FATAL: can't have constrained + * UniversalString with more than + * 16 million code points */ + for(; buf < end; buf += bpc) { + int value; + int code = per_get_few_bits(po, unit_bits); + if(code < 0) return -1; /* WMORE */ + value = pc->code2value(code); + if(value < 0) { + ASN_DEBUG("Code %d (0x%02x) is" + " not in map (%ld..%ld)", + code, code, lb, ub); + return 1; /* FATAL */ + } + switch(bpc) { + case 1: *buf = value; break; + case 2: buf[0] = value >> 8; buf[1] = value; break; + case 4: buf[0] = value >> 24; buf[1] = value >> 16; + buf[2] = value >> 8; buf[3] = value; break; + } + } + return 0; + } + + /* Shortcut the no-op copying to the aligned structure */ + if(lb == 0 && (unit_bits == 8 * bpc)) { + return per_get_many_bits(po, buf, 0, unit_bits * units); + } + + for(; buf < end; buf += bpc) { + int32_t code = per_get_few_bits(po, unit_bits); + int32_t ch = code + lb; + if(code < 0) return -1; /* WMORE */ + if(ch > ub) { + ASN_DEBUG("Code %d is out of range (%ld..%ld)", + ch, lb, ub); + return 1; /* FATAL */ + } + switch(bpc) { + case 1: *buf = ch; break; + case 2: buf[0] = ch >> 8; buf[1] = ch; break; + case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; + buf[2] = ch >> 8; buf[3] = ch; break; + } + } + + return 0; +} + +int +OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, + size_t units, unsigned int bpc, unsigned int unit_bits, + long lb, long ub, const asn_per_constraints_t *pc) { + const uint8_t *end = buf + units * bpc; + + ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", + (int)units, lb, ub, unit_bits, bpc); + + /* X.691: 27.5.4 */ + if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { + /* Encode as is */ + lb = 0; + } else if(pc && pc->value2code) { + for(; buf < end; buf += bpc) { + int code; + uint32_t value; + switch(bpc) { + case 1: value = *(const uint8_t *)buf; break; + case 2: value = (buf[0] << 8) | buf[1]; break; + case 4: value = (buf[0] << 24) | (buf[1] << 16) + | (buf[2] << 8) | buf[3]; break; + default: return -1; + } + code = pc->value2code(value); + if(code < 0) { + ASN_DEBUG("Character %d (0x%02x) is" + " not in map (%ld..%ld)", + *buf, *buf, lb, ub); + return -1; + } + if(per_put_few_bits(po, code, unit_bits)) + return -1; + } + } + + /* Shortcut the no-op copying to the aligned structure */ + if(lb == 0 && (unit_bits == 8 * bpc)) { + return per_put_many_bits(po, buf, unit_bits * units); + } + + for(ub -= lb; buf < end; buf += bpc) { + int ch; + uint32_t value; + switch(bpc) { + case 1: + value = *(const uint8_t *)buf; + break; + case 2: + value = (buf[0] << 8) | buf[1]; + break; + case 4: + value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + break; + default: + return -1; + } + ch = value - lb; + if(ch < 0 || ch > ub) { + ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, + value, lb, ub + lb); + return -1; + } + if(per_put_few_bits(po, ch, unit_bits)) return -1; + } + + return 0; +} +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ diff --git a/src/tmx/Asn_J2735/src/2020/OCTET_STRING_aper.c b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_aper.c new file mode 100644 index 000000000..0373fe6ad --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_aper.c @@ -0,0 +1,414 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +#undef RETURN +#define RETURN(_code) do {\ + asn_dec_rval_t tmprval;\ + tmprval.code = _code;\ + tmprval.consumed = consumed_myself;\ + return tmprval;\ + } while(0) + +static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { + { APC_CONSTRAINED, 8, 8, 0, 255 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, + 0, 0 +}; + +asn_dec_rval_t +OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints + ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + enum { + OS__BPC_BIT = 0, + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + + (void)opt_codec_ctx; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + + switch(specs->subvariant) { + default: +/* + case ASN_OSUBV_ANY: + ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); + RETURN(RC_FAIL); +*/ + case ASN_OSUBV_BIT: + canonical_unit_bits = unit_bits = 1; + bpc = OS__BPC_BIT; + break; + case ASN_OSUBV_ANY: + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; +/* + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; +*/ + bpc = OS__BPC_CHAR; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + break; + } + + /* + * Allocate the string. + */ + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %lld .. %lld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + (long long int)csiz->lower_bound, (long long int)csiz->upper_bound, + csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + cval = &asn_DEF_OCTET_STRING_constraints.value; + unit_bits = canonical_unit_bits; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + if(bpc) { + st->size = csiz->upper_bound * bpc; + } else { + st->size = (csiz->upper_bound + 7) >> 3; + } + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + /* X.691 #16 NOTE 1 for fixed length (<= 16 bits) strings */ + if (st->size > 2 || csiz->range_bits != 0) { + if (aper_get_align(pd) < 0) + RETURN(RC_FAIL); + } + if(bpc) { + ASN_DEBUG("Decoding OCTET STRING size %lld", + (long long int)csiz->upper_bound); + ret = OCTET_STRING_per_get_characters(pd, st->buf, + csiz->upper_bound, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ASN_DEBUG("Decoding BIT STRING size %lld", + (long long int)csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, + unit_bits * csiz->upper_bound); + } + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += unit_bits * csiz->upper_bound; + st->buf[st->size] = 0; + if(bpc == 0) { + int ubs = (csiz->upper_bound & 0x7); + st->bits_unused = ubs ? 8 - ubs : 0; + } + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + repeat = 0; + /* Get the PER length */ + if (csiz->upper_bound - csiz->lower_bound == 0) + /* Indefinite length case */ + raw_len = aper_get_length(pd, -1, -1, csiz->effective_bits, &repeat); + else + raw_len = aper_get_length(pd, csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + raw_len += csiz->lower_bound; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + + /* X.691 #16 NOTE 1 for fixed length (<=16 bits) strings */ + if ((raw_len > 2) || (csiz->upper_bound > 2) || (csiz->range_bits != 0)) + { + if (aper_get_align(pd) < 0) + RETURN(RC_FAIL); + } + + if(bpc) { + len_bytes = raw_len * bpc; + len_bits = len_bytes * unit_bits; + } else { + len_bits = raw_len; + len_bytes = (len_bits + 7) >> 3; + if(len_bits & 0x7) + st->bits_unused = 8 - (len_bits & 0x7); + /* len_bits be multiple of 16K if repeat is set */ + } + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + if(bpc) { + ret = OCTET_STRING_per_get_characters(pd, + &st->buf[st->size], + raw_len, bpc, + unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ret = per_get_many_bits(pd, &st->buf[st->size], + 0, len_bits); + } + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints + ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + unsigned int sizeinunits; + const uint8_t *buf; + int ret; + enum { + OS__BPC_BIT = 0, + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + switch(specs->subvariant) { + default: +/* + case ASN_OSUBV_ANY: + ASN__ENCODE_FAILED; +*/ + case ASN_OSUBV_BIT: + canonical_unit_bits = unit_bits = 1; + bpc = OS__BPC_BIT; + sizeinunits = st->size * 8 - (st->bits_unused & 0x07); + ASN_DEBUG("BIT STRING of %d bytes", + sizeinunits); + break; + case ASN_OSUBV_ANY: + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; +/* + if(cval->flags & APC_CONSTRAINED) + unit_bits = 8; +*/ + bpc = OS__BPC_CHAR; + sizeinunits = st->size; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + sizeinunits = st->size / 2; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + sizeinunits = st->size / 4; + break; + } + + ASN_DEBUG("Encoding %s into %d units of %d bits" + " (%lld..%lld, effective %d)%s", + td->name, sizeinunits, unit_bits, + (long long int)csiz->lower_bound, + (long long int)csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out wheter size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((int)sizeinunits < csiz->lower_bound + || (int)sizeinunits > csiz->upper_bound) { + if(ct_extensible) { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + inext = 1; + } else + ASN__ENCODE_FAILED; + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits >= 0) { + ASN_DEBUG("Encoding %zu bytes (%lld), length in %d bits", + st->size, (long long int)(sizeinunits - csiz->lower_bound), + csiz->effective_bits); + if (csiz->effective_bits > 0) { + ret = aper_put_length(po, csiz->lower_bound, csiz->upper_bound, + sizeinunits - csiz->lower_bound, NULL); + if(ret < 0) ASN__ENCODE_FAILED; + } + if (csiz->effective_bits > 0 || (st->size > 2) + || (csiz->upper_bound > (2 * 8 / unit_bits)) + || (csiz->range_bits != 0)) + { /* X.691 #16 NOTE 1 for fixed length (<=16 bits) strings*/ + if (aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + } + if(bpc) { + ret = OCTET_STRING_per_put_characters(po, st->buf, + sizeinunits, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + } else { + ret = per_put_many_bits(po, st->buf, + sizeinunits * unit_bits); + } + if(ret) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %zu bytes", st->size); + + if(sizeinunits == 0) { + if(aper_put_length(po, -1, -1, 0, NULL) < 0) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + buf = st->buf; + while(sizeinunits) { + int need_eom = 0; + ssize_t maySave = aper_put_length(po, -1, -1, sizeinunits, &need_eom); + + if(maySave < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %ld of %ld", + (long)maySave, (long)sizeinunits); + + if(bpc) { + ret = OCTET_STRING_per_put_characters(po, buf, maySave, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + } else { + ret = per_put_many_bits(po, buf, maySave * unit_bits); + } + if(ret) ASN__ENCODE_FAILED; + + if(bpc) + buf += maySave * bpc; + else + buf += maySave >> 3; + sizeinunits -= maySave; + assert(!(maySave & 0x07) || !sizeinunits); + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/OCTET_STRING_ber.c b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_ber.c new file mode 100644 index 000000000..9530eaedb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_ber.c @@ -0,0 +1,525 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +#undef _CH_PHASE +#define _CH_PHASE(ctx, inc) do {\ + if(ctx->phase == 0)\ + ctx->context = 0;\ + ctx->phase += inc;\ + } while(0) + +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) +#undef PREV_PHASE +#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) + +#undef ADVANCE +#define ADVANCE(num_bytes) do {\ + size_t num = (num_bytes);\ + buf_ptr = ((const char *)buf_ptr) + num;\ + size -= num;\ + consumed_myself += num;\ + } while(0) + +#undef RETURN +#define RETURN(_code) do {\ + asn_dec_rval_t tmprval;\ + tmprval.code = _code;\ + tmprval.consumed = consumed_myself;\ + return tmprval;\ + } while(0) + +#undef APPEND +#define APPEND(bufptr, bufsize) do {\ + size_t _bs = (bufsize); /* Append size */\ + size_t _ns = ctx->context; /* Allocated now */\ + size_t _es = st->size + _bs; /* Expected size */\ + /* int is really a typeof(st->size): */\ + if((int)_es < 0) RETURN(RC_FAIL);\ + if(_ns <= _es) {\ + void *ptr;\ + /* Be nice and round to the memory allocator */\ + do { _ns = _ns ? _ns << 1 : 16; }\ + while(_ns <= _es);\ + /* int is really a typeof(st->size): */\ + if((int)_ns < 0) RETURN(RC_FAIL);\ + ptr = REALLOC(st->buf, _ns);\ + if(ptr) {\ + st->buf = (uint8_t *)ptr;\ + ctx->context = _ns;\ + } else {\ + RETURN(RC_FAIL);\ + }\ + ASN_DEBUG("Reallocating into %ld", (long)_ns);\ + }\ + memcpy(st->buf + st->size, bufptr, _bs);\ + /* Convenient nul-termination */\ + st->buf[_es] = '\0';\ + st->size = _es;\ + } while(0) + +/* + * The main reason why ASN.1 is still alive is that too much time and effort + * is necessary for learning it more or less adequately, thus creating a gut + * necessity to demonstrate that acquired skill everywhere afterwards. + * No, I am not going to explain what the following stuff is. + */ +static struct _stack_el * +OS__add_stack_el(struct _stack *st) { + struct _stack_el *nel; + + /* + * Reuse the old stack frame or allocate a new one. + */ + if(st->cur_ptr && st->cur_ptr->next) { + nel = st->cur_ptr->next; + nel->bits_chopped = 0; + nel->got = 0; + /* Retain the nel->cont_level, it's correct. */ + } else { + nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); + if(nel == NULL) + return NULL; + + if(st->tail) { + /* Increase a subcontainment depth */ + nel->cont_level = st->tail->cont_level + 1; + st->tail->next = nel; + } + nel->prev = st->tail; + st->tail = nel; + } + + st->cur_ptr = nel; + + return nel; +} + +static struct _stack * +_new_stack(void) { + return (struct _stack *)CALLOC(1, sizeof(struct _stack)); +} + +/* + * Decode OCTET STRING type. + */ +asn_dec_rval_t +OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buf_ptr, size_t size, int tag_mode) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + asn_dec_rval_t rval; + asn_struct_ctx_t *ctx; + ssize_t consumed_myself = 0; + struct _stack *stck; /* Expectations stack structure */ + struct _stack_el *sel = 0; /* Stack element */ + int tlv_constr; + enum asn_OS_Subvariant type_variant = specs->subvariant; + + ASN_DEBUG("Decoding %s as %s (frame %ld)", + td->name, + (type_variant == ASN_OSUBV_STR) ? + "OCTET STRING" : "OS-SpecialCase", + (long)size); + + /* + * Create the string if does not exist. + */ + if(st == NULL) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(st == NULL) RETURN(RC_FAIL); + } + + /* Restore parsing context */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + switch(ctx->phase) { + case 0: + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, ctx, + buf_ptr, size, tag_mode, -1, + &ctx->left, &tlv_constr); + if(rval.code != RC_OK) + return rval; + + if(tlv_constr) { + /* + * Complex operation, requires stack of expectations. + */ + ctx->ptr = _new_stack(); + if(!ctx->ptr) { + RETURN(RC_FAIL); + } + } else { + /* + * Jump into stackless primitive decoding. + */ + _CH_PHASE(ctx, 3); + if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) + APPEND(buf_ptr, rval.consumed); + ADVANCE(rval.consumed); + goto phase3; + } + + NEXT_PHASE(ctx); + /* Fall through */ + case 1: + phase1: + /* + * Fill the stack with expectations. + */ + stck = (struct _stack *)ctx->ptr; + sel = stck->cur_ptr; + do { + ber_tlv_tag_t tlv_tag; + ber_tlv_len_t tlv_len; + ber_tlv_tag_t expected_tag; + ssize_t tl, ll, tlvl; + /* This one works even if (sel->left == -1) */ + size_t Left = ((!sel||(size_t)sel->left >= size) + ?size:(size_t)sel->left); + + + ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, + (long)(sel?sel->left:0), + (long)(sel?sel->want_nulls:0), + (long)(sel?sel->got:0) + ); + if(sel && sel->left <= 0 && sel->want_nulls == 0) { + if(sel->prev) { + struct _stack_el *prev = sel->prev; + if(prev->left != -1) { + if(prev->left < sel->got) + RETURN(RC_FAIL); + prev->left -= sel->got; + } + prev->got += sel->got; + sel = stck->cur_ptr = prev; + if(!sel) break; + tlv_constr = 1; + continue; + } else { + sel = stck->cur_ptr = 0; + break; /* Nothing to wait */ + } + } + + tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); + ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", + (long)size, (long)Left, sel?"":"!", + (long)(sel?sel->left:0), + (long)(sel?sel->want_nulls:0), + (long)tl); + switch(tl) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); + + ll = ber_fetch_length(tlv_constr, + (const char *)buf_ptr + tl,Left - tl,&tlv_len); + ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", + ber_tlv_tag_string(tlv_tag), tlv_constr, + (long)Left, (long)tl, (long)tlv_len, (long)ll); + switch(ll) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + if(sel && sel->want_nulls + && ((const uint8_t *)buf_ptr)[0] == 0 + && ((const uint8_t *)buf_ptr)[1] == 0) + { + ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); + + if(type_variant == ASN_OSUBV_ANY + && (tag_mode != 1 || sel->cont_level)) + APPEND("\0\0", 2); + + ADVANCE(2); + sel->got += 2; + if(sel->left != -1) { + sel->left -= 2; /* assert(sel->left >= 2) */ + } + + sel->want_nulls--; + if(sel->want_nulls == 0) { + /* Move to the next expectation */ + sel->left = 0; + tlv_constr = 1; + } + + continue; + } + + /* + * Set up expected tags, + * depending on ASN.1 type being decoded. + */ + switch(type_variant) { + case ASN_OSUBV_BIT: + /* X.690: 8.6.4.1, NOTE 2 */ + /* Fall through */ + case ASN_OSUBV_STR: + default: + if(sel) { + unsigned level = sel->cont_level; + if(level < td->all_tags_count) { + expected_tag = td->all_tags[level]; + break; + } else if(td->all_tags_count) { + expected_tag = td->all_tags + [td->all_tags_count - 1]; + break; + } + /* else, Fall through */ + } + /* Fall through */ + case ASN_OSUBV_ANY: + expected_tag = tlv_tag; + break; + } + + if(tlv_tag != expected_tag) { + char buf[2][32]; + ber_tlv_tag_snprint(tlv_tag, + buf[0], sizeof(buf[0])); + ber_tlv_tag_snprint(td->tags[td->tags_count-1], + buf[1], sizeof(buf[1])); + ASN_DEBUG("Tag does not match expectation: %s != %s", + buf[0], buf[1]); + RETURN(RC_FAIL); + } + + tlvl = tl + ll; /* Combined length of T and L encoding */ + if((tlv_len + tlvl) < 0) { + /* tlv_len value is too big */ + ASN_DEBUG("TLV encoding + length (%ld) is too big", + (long)tlv_len); + RETURN(RC_FAIL); + } + + /* + * Append a new expectation. + */ + sel = OS__add_stack_el(stck); + if(!sel) RETURN(RC_FAIL); + + sel->tag = tlv_tag; + + sel->want_nulls = (tlv_len==-1); + if(sel->prev && sel->prev->left != -1) { + /* Check that the parent frame is big enough */ + if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) + RETURN(RC_FAIL); + if(tlv_len == -1) + sel->left = sel->prev->left - tlvl; + else + sel->left = tlv_len; + } else { + sel->left = tlv_len; + } + if(type_variant == ASN_OSUBV_ANY + && (tag_mode != 1 || sel->cont_level)) + APPEND(buf_ptr, tlvl); + sel->got += tlvl; + ADVANCE(tlvl); + + ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", + (long)sel->got, (long)sel->left, + sel->want_nulls, sel->cont_level); + + } while(tlv_constr); + if(sel == NULL) { + /* Finished operation, "phase out" */ + ASN_DEBUG("Phase out"); + _CH_PHASE(ctx, +3); + break; + } + + NEXT_PHASE(ctx); + /* Fall through */ + case 2: + stck = (struct _stack *)ctx->ptr; + sel = stck->cur_ptr; + ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", + (long)sel->left, (long)size, (long)sel->got, + sel->want_nulls); + { + ber_tlv_len_t len; + + assert(sel->left >= 0); + + len = ((ber_tlv_len_t)size < sel->left) + ? (ber_tlv_len_t)size : sel->left; + if(len > 0) { + if(type_variant == ASN_OSUBV_BIT + && sel->bits_chopped == 0) { + /* Put the unused-bits-octet away */ + st->bits_unused = *(const uint8_t *)buf_ptr; + APPEND(((const char *)buf_ptr+1), (len - 1)); + sel->bits_chopped = 1; + } else { + APPEND(buf_ptr, len); + } + ADVANCE(len); + sel->left -= len; + sel->got += len; + } + + if(sel->left) { + ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", + (long)sel->left, (long)size, sel->want_nulls); + RETURN(RC_WMORE); + } + + PREV_PHASE(ctx); + goto phase1; + } + break; + case 3: + phase3: + /* + * Primitive form, no stack required. + */ + assert(ctx->left >= 0); + + if(size < (size_t)ctx->left) { + if(!size) RETURN(RC_WMORE); + if(type_variant == ASN_OSUBV_BIT && !ctx->context) { + st->bits_unused = *(const uint8_t *)buf_ptr; + ctx->left--; + ADVANCE(1); + } + APPEND(buf_ptr, size); + assert(ctx->context > 0); + ctx->left -= size; + ADVANCE(size); + RETURN(RC_WMORE); + } else { + if(type_variant == ASN_OSUBV_BIT + && !ctx->context && ctx->left) { + st->bits_unused = *(const uint8_t *)buf_ptr; + ctx->left--; + ADVANCE(1); + } + APPEND(buf_ptr, ctx->left); + ADVANCE(ctx->left); + ctx->left = 0; + + NEXT_PHASE(ctx); + } + break; + } + + if(sel) { + ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", + (void *)sel->prev, sel->want_nulls, + (long)sel->left, (long)sel->got, (long)size); + if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { + RETURN(RC_WMORE); + } + } + + /* + * BIT STRING-specific processing. + */ + if(type_variant == ASN_OSUBV_BIT) { + if(st->size) { + if(st->bits_unused < 0 || st->bits_unused > 7) { + RETURN(RC_FAIL); + } + /* Finalize BIT STRING: zero out unused bits. */ + st->buf[st->size-1] &= 0xff << st->bits_unused; + } else { + if(st->bits_unused) { + RETURN(RC_FAIL); + } + } + } + + ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", + (long)consumed_myself, td->name, + (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", + (long)st->size); + + + RETURN(RC_OK); +} + +/* + * Encode OCTET STRING type using DER. + */ +asn_enc_rval_t +OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = { 0, 0, 0 }; + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + enum asn_OS_Subvariant type_variant = specs->subvariant; + int fix_last_byte = 0; + + ASN_DEBUG("%s %s as OCTET STRING", + cb?"Estimating":"Encoding", td->name); + + /* + * Write tags. + */ + if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { + er.encoded = der_write_tags(td, + (type_variant == ASN_OSUBV_BIT) + st->size, + tag_mode, type_variant == ASN_OSUBV_ANY, tag, + cb, app_key); + if(er.encoded == -1) { + er.failed_type = td; + er.structure_ptr = sptr; + return er; + } + } else { + /* Disallow: [] IMPLICIT ANY */ + assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); + er.encoded = 0; + } + + if(!cb) { + er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; + ASN__ENCODED_OK(er); + } + + /* + * Prepare to deal with the last octet of BIT STRING. + */ + if(type_variant == ASN_OSUBV_BIT) { + uint8_t b = st->bits_unused & 0x07; + if(b && st->size) fix_last_byte = 1; + ASN__CALLBACK(&b, 1); + } + + /* Invoke callback for the main part of the buffer */ + ASN__CALLBACK(st->buf, st->size - fix_last_byte); + + /* The last octet should be stripped off the unused bits */ + if(fix_last_byte) { + uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); + ASN__CALLBACK(&b, 1); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/OCTET_STRING_jer.c b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_jer.c new file mode 100644 index 000000000..d744cc3e3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_jer.c @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +asn_enc_rval_t +OCTET_STRING_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = buf + st->size; + ASN__CALLBACK("\"", 1); + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + ASN__CALLBACK(scratch, p-scratch); + p = scratch; + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + } + if(p - scratch) { + ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ + } + ASN__CALLBACK("\"", 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +static const struct OCTET_STRING__jer_escape_table_s { + const char *string; + int size; +} OCTET_STRING__jer_escape_table[] = { +#define OSXET(s) { s, sizeof(s) - 1 } + OSXET("\074\156\165\154\057\076"), /* */ + OSXET("\074\163\157\150\057\076"), /* */ + OSXET("\074\163\164\170\057\076"), /* */ + OSXET("\074\145\164\170\057\076"), /* */ + OSXET("\074\145\157\164\057\076"), /* */ + OSXET("\074\145\156\161\057\076"), /* */ + OSXET("\074\141\143\153\057\076"), /* */ + OSXET("\074\142\145\154\057\076"), /* */ + OSXET("\074\142\163\057\076"), /* */ + OSXET("\011"), /* \t */ + OSXET("\012"), /* \n */ + OSXET("\074\166\164\057\076"), /* */ + OSXET("\074\146\146\057\076"), /* */ + OSXET("\015"), /* \r */ + OSXET("\074\163\157\057\076"), /* */ + OSXET("\074\163\151\057\076"), /* */ + OSXET("\074\144\154\145\057\076"), /* */ + OSXET("\074\144\143\061\057\076"), /* */ + OSXET("\074\144\143\062\057\076"), /* */ + OSXET("\074\144\143\063\057\076"), /* */ + OSXET("\074\144\143\064\057\076"), /* */ + OSXET("\074\156\141\153\057\076"), /* */ + OSXET("\074\163\171\156\057\076"), /* */ + OSXET("\074\145\164\142\057\076"), /* */ + OSXET("\074\143\141\156\057\076"), /* */ + OSXET("\074\145\155\057\076"), /* */ + OSXET("\074\163\165\142\057\076"), /* */ + OSXET("\074\145\163\143\057\076"), /* */ + OSXET("\074\151\163\064\057\076"), /* */ + OSXET("\074\151\163\063\057\076"), /* */ + OSXET("\074\151\163\062\057\076"), /* */ + OSXET("\074\151\163\061\057\076"), /* */ + { 0, 0 }, /* " " */ + { 0, 0 }, /* ! */ + { 0, 0 }, /* \" */ + { 0, 0 }, /* # */ + { 0, 0 }, /* $ */ + { 0, 0 }, /* % */ + OSXET("\046\141\155\160\073"), /* & */ + { 0, 0 }, /* ' */ + {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* ()*+,-./ */ + {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 01234567 */ + {0,0},{0,0},{0,0},{0,0}, /* 89:; */ + OSXET("\046\154\164\073"), /* < */ + { 0, 0 }, /* = */ + OSXET("\046\147\164\073"), /* > */ +}; + +asn_enc_rval_t +OCTET_STRING_encode_jer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + uint8_t *buf, *end; + uint8_t *ss; /* Sequence start */ + ssize_t encoded_len = 0; + + (void)ilevel; /* Unused argument */ + (void)flags; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + buf = st->buf; + end = buf + st->size; + for(ss = buf; buf < end; buf++) { + unsigned int ch = *buf; + int s_len; /* Special encoding sequence length */ + + /* + * Escape certain characters: X.680/11.15 + */ + if(ch < sizeof(OCTET_STRING__jer_escape_table) + / sizeof(OCTET_STRING__jer_escape_table[0]) + && (s_len = OCTET_STRING__jer_escape_table[ch].size)) { + if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) + || cb(OCTET_STRING__jer_escape_table[ch].string, s_len, app_key) < 0) + ASN__ENCODE_FAILED; + encoded_len += (buf - ss) + s_len; + ss = buf + 1; + } + } + + encoded_len += (buf - ss); + if((buf - ss) && cb(ss, buf - ss, app_key) < 0) + ASN__ENCODE_FAILED; + + er.encoded = encoded_len; + ASN__ENCODED_OK(er); +} + diff --git a/src/tmx/Asn_J2735/src/2020/OCTET_STRING_oer.c b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_oer.c new file mode 100644 index 000000000..e69d0a6a4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_oer.c @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + const asn_oer_constraints_t *cts = + constraints ? constraints : td->encoding_constraints.oer_constraints; + ssize_t ct_size = cts ? cts->size : -1; + asn_dec_rval_t rval = {RC_OK, 0}; + size_t expected_length = 0; + + size_t unit_bytes; + switch(specs->subvariant) { + default: + case ASN_OSUBV_BIT: + ASN_DEBUG("Invalid use of OCTET STRING to decode BIT STRING"); + ASN__DECODE_FAILED; + case ASN_OSUBV_ANY: + /* Fall through */ + case ASN_OSUBV_STR: + unit_bytes = 1; + break; + case ASN_OSUBV_U16: + unit_bytes = 2; + break; + case ASN_OSUBV_U32: + unit_bytes = 4; + break; + } + + (void)opt_codec_ctx; + + if(!st) { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) ASN__DECODE_FAILED; + } + + if(ct_size >= 0) { + expected_length = unit_bytes * ct_size; + } else { + /* + * X.696 (08/2015) #27.2 + * Encode length determinant as _number of octets_, but only + * if upper bound is not equal to lower bound. + */ + ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); + if(len_len > 0) { + rval.consumed = len_len; + ptr = (const char *)ptr + len_len; + size -= len_len; + } else if(len_len == 0) { + ASN__DECODE_STARVED; + } else if(len_len < 0) { + ASN__DECODE_FAILED; + } + + if(expected_length % unit_bytes != 0) { + ASN_DEBUG( + "Data size %" ASN_PRI_SIZE " bytes is not consistent with multiplier %" ASN_PRI_SIZE "", + expected_length, unit_bytes); + ASN__DECODE_FAILED; + } + } + + if(size < expected_length) { + ASN__DECODE_STARVED; + } else { + uint8_t *buf = MALLOC(expected_length + 1); + if(buf == NULL) { + ASN__DECODE_FAILED; + } else { + memcpy(buf, ptr, expected_length); + buf[expected_length] = '\0'; + } + FREEMEM(st->buf); + st->buf = buf; + st->size = expected_length; + + rval.consumed += expected_length; + return rval; + } +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +OCTET_STRING_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + const asn_oer_constraints_t *cts = + constraints ? constraints : td->encoding_constraints.oer_constraints; + ssize_t ct_size = cts ? cts->size : -1; + asn_enc_rval_t er = {0, 0, 0}; + + if(!st) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s %" ASN_PRI_SIZE " as OCTET STRING", td ? td->name : "", st->size); + + if(ct_size >= 0) { + /* + * Check that available data matches the constraint + */ + size_t unit_bytes; + switch(specs->subvariant) { + default: + case ASN_OSUBV_BIT: + ASN_DEBUG("Invalid use of OCTET STRING to encode BIT STRING"); + ASN__ENCODE_FAILED; + case ASN_OSUBV_ANY: + /* Fall through */ + case ASN_OSUBV_STR: + unit_bytes = 1; + break; + case ASN_OSUBV_U16: + unit_bytes = 2; + break; + case ASN_OSUBV_U32: + unit_bytes = 4; + break; + } + + if(st->size != unit_bytes * (size_t)ct_size) { + ASN_DEBUG( + "Trying to encode %s (%" ASN_PRI_SIZE " bytes) which doesn't fit SIZE " + "constraint (%" ASN_PRI_SIZE ")", + td->name, st->size, ct_size); + ASN__ENCODE_FAILED; + } + } else { + /* + * X.696 (08/2015) #27.2 + * Encode length determinant as _number of octets_, but only + * if upper bound is not equal to lower bound. + */ + ssize_t ret = oer_serialize_length(st->size, cb, app_key); + if(ret < 0) { + ASN__ENCODE_FAILED; + } + er.encoded += ret; + } + + er.encoded += st->size; + if(cb(st->buf, st->size, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + ASN__ENCODED_OK(er); + } +} diff --git a/src/tmx/Asn_J2735/src/2020/OCTET_STRING_print.c b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_print.c new file mode 100644 index 000000000..6daa33e9f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_print.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + (void)td; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = (buf == NULL)? NULL : buf + st->size; + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + _i_INDENT(1); + p = scratch; + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + + if(p > scratch) { + p--; /* Remove the tail space */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + } + + return 0; +} + +int +OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, + void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st && (st->buf || !st->size)) { + return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/OCTET_STRING_rfill.c b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_rfill.c new file mode 100644 index 000000000..5c8b0648e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_rfill.c @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Biased function for randomizing character values around their limits. + */ +static uint32_t +OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { + assert(lb <= ub); + switch(asn_random_between(0, 16)) { + case 0: + if(lb < ub) return lb + 1; + /* Fall through */ + case 1: + return lb; + case 2: + if(lb < ub) return ub - 1; + /* Fall through */ + case 3: + return ub; + default: + return asn_random_between(lb, ub); + } +} + +asn_random_fill_result_t +OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + unsigned int unit_bytes = 1; + unsigned long clb = 0; /* Lower bound on char */ + unsigned long cub = 255; /* Higher bound on char value */ + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_len; + OCTET_STRING_t *st; + + if(max_length == 0 && !*sptr) return result_skipped; + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + return result_failed; + case ASN_OSUBV_BIT: + /* Handled by BIT_STRING itself. */ + return result_failed; + case ASN_OSUBV_STR: + unit_bytes = 1; + clb = 0; + cub = 255; + break; + case ASN_OSUBV_U16: + unit_bytes = 2; + clb = 0; + cub = 65535; + break; + case ASN_OSUBV_U32: + unit_bytes = 4; + clb = 0; + cub = 0x10FFFF; + break; + } + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->value; + if(pc->flags & APC_SEMI_CONSTRAINED) { + clb = pc->lower_bound; + } else if(pc->flags & APC_CONSTRAINED) { + clb = pc->lower_bound; + cub = pc->upper_bound; + } + } +#else + if(!constraints) constraints = &td->encoding_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + + rnd_len = + OCTET_STRING_random_length_constrained(td, constraints, max_length); + + buf = CALLOC(unit_bytes, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[unit_bytes * rnd_len]; + + switch(unit_bytes) { + case 1: + for(b = buf; b < bend; b += unit_bytes) { + *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); + } + *(uint8_t *)b = 0; + break; + case 2: + for(b = buf; b < bend; b += unit_bytes) { + uint32_t code = OCTET_STRING__random_char(clb, cub); + b[0] = code >> 8; + b[1] = code; + } + *(uint16_t *)b = 0; + break; + case 4: + for(b = buf; b < bend; b += unit_bytes) { + uint32_t code = OCTET_STRING__random_char(clb, cub); + b[0] = code >> 24; + b[1] = code >> 16; + b[2] = code >> 8; + b[3] = code; + } + *(uint32_t *)b = 0; + break; + } + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = unit_bytes * rnd_len; + + result_ok.length = st->size; + return result_ok; +} + +size_t +OCTET_STRING_random_length_constrained( + const asn_TYPE_descriptor_t *td, + const asn_encoding_constraints_t *constraints, size_t max_length) { + const unsigned lengths[] = {0, 1, 2, 3, 4, 8, + 126, 127, 128, 16383, 16384, 16385, + 65534, 65535, 65536, 65537}; + size_t rnd_len; + + /* Figure out how far we should go */ + rnd_len = lengths[asn_random_between( + 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_CONSTRAINED) { + long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length + ? pc->upper_bound + : (ssize_t)max_length; + if(max_length <= (size_t)pc->lower_bound) { + return pc->lower_bound; + } + if(pc->flags & APC_EXTENSIBLE) { + switch(asn_random_between(0, 5)) { + case 0: + if(pc->lower_bound > 0) { + rnd_len = pc->lower_bound - 1; + break; + } + /* Fall through */ + case 1: + rnd_len = pc->upper_bound + 1; + break; + case 2: + /* Keep rnd_len from the table */ + if(rnd_len <= max_length) { + break; + } + /* Fall through */ + default: + rnd_len = asn_random_between(pc->lower_bound, + suggested_upper_bound); + } + } else { + rnd_len = + asn_random_between(pc->lower_bound, suggested_upper_bound); + } + } else { + rnd_len = asn_random_between(0, max_length); + } + } else { +#else + if(!constraints) constraints = &td->encoding_constraints; + { +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + if(rnd_len > max_length) { + rnd_len = asn_random_between(0, max_length); + } + } + + return rnd_len; +} diff --git a/src/tmx/Asn_J2735/src/2020/OCTET_STRING_uper.c b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_uper.c new file mode 100644 index 000000000..80130cadc --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_uper.c @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +#undef RETURN +#define RETURN(_code) do {\ + asn_dec_rval_t tmprval;\ + tmprval.code = _code;\ + tmprval.consumed = consumed_myself;\ + return tmprval;\ + } while(0) + +static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { + { APC_CONSTRAINED, 8, 8, 0, 255 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, + 0, 0 +}; + +asn_dec_rval_t +OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + enum { + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + + (void)opt_codec_ctx; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + case ASN_OSUBV_BIT: + ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); + RETURN(RC_FAIL); + break; + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + break; + } + + /* + * Allocate the string. + */ + if(!st) { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + if(bpc) { + st->size = csiz->upper_bound * bpc; + } else { + st->size = (csiz->upper_bound + 7) >> 3; + } + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + if(bpc) { + ASN_DEBUG("Encoding OCTET STRING size %ld", + csiz->upper_bound); + ret = OCTET_STRING_per_get_characters(pd, st->buf, + csiz->upper_bound, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ASN_DEBUG("Encoding BIT STRING size %ld", + csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, + unit_bits * csiz->upper_bound); + } + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += unit_bits * csiz->upper_bound; + st->buf[st->size] = 0; + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, + &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len * bpc; + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, + bpc, unit_bits, cval->lower_bound, + cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints + ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + size_t size_in_units; + const uint8_t *buf; + int ret; + enum { + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + case ASN_OSUBV_BIT: + ASN__ENCODE_FAILED; + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + size_in_units = st->size; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + size_in_units = st->size >> 1; + if(st->size & 1) { + ASN_DEBUG("%s string size is not modulo 2", td->name); + ASN__ENCODE_FAILED; + } + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + size_in_units = st->size >> 2; + if(st->size & 3) { + ASN_DEBUG("%s string size is not modulo 4", td->name); + ASN__ENCODE_FAILED; + } + break; + } + + ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" + " (%ld..%ld, effective %d)%s", + td->name, size_in_units, unit_bits, + csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out whether size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((ssize_t)size_in_units < csiz->lower_bound + || (ssize_t)size_in_units > csiz->upper_bound) { + if(ct_extensible) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + inext = 1; + } else { + ASN__ENCODE_FAILED; + } + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + if(csiz->effective_bits >= 0 && !inext) { + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, + size_in_units - csiz->lower_bound, csiz->effective_bits); + ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, + csiz->effective_bits); + if(ret) ASN__ENCODE_FAILED; + ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, + unit_bits, cval->lower_bound, + cval->upper_bound, pc); + if(ret) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); + + buf = st->buf; + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, + need_eom ? ",+EOM" : ""); + + ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, pc); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save * bpc; + size_in_units -= may_save; + assert(!(may_save & 0x07) || !size_in_units); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size_in_units); + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/OCTET_STRING_xer.c b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_xer.c new file mode 100644 index 000000000..490f362a9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OCTET_STRING_xer.c @@ -0,0 +1,627 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +asn_enc_rval_t +OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = buf + st->size; + if(flags & XER_F_CANONICAL) { + char *scend = scratch + (sizeof(scratch) - 2); + for(; buf < end; buf++) { + if(p >= scend) { + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + } + + ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ + } else { + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + ASN__CALLBACK(scratch, p-scratch); + p = scratch; + ASN__TEXT_INDENT(1, ilevel); + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + if(p - scratch) { + p--; /* Remove the tail space */ + ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ + if(st->size > 16) + ASN__TEXT_INDENT(1, ilevel-1); + } + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +static const struct OCTET_STRING__xer_escape_table_s { + const char *string; + int size; +} OCTET_STRING__xer_escape_table[] = { +#define OSXET(s) { s, sizeof(s) - 1 } + OSXET("\074\156\165\154\057\076"), /* */ + OSXET("\074\163\157\150\057\076"), /* */ + OSXET("\074\163\164\170\057\076"), /* */ + OSXET("\074\145\164\170\057\076"), /* */ + OSXET("\074\145\157\164\057\076"), /* */ + OSXET("\074\145\156\161\057\076"), /* */ + OSXET("\074\141\143\153\057\076"), /* */ + OSXET("\074\142\145\154\057\076"), /* */ + OSXET("\074\142\163\057\076"), /* */ + OSXET("\011"), /* \t */ + OSXET("\012"), /* \n */ + OSXET("\074\166\164\057\076"), /* */ + OSXET("\074\146\146\057\076"), /* */ + OSXET("\015"), /* \r */ + OSXET("\074\163\157\057\076"), /* */ + OSXET("\074\163\151\057\076"), /* */ + OSXET("\074\144\154\145\057\076"), /* */ + OSXET("\074\144\143\061\057\076"), /* */ + OSXET("\074\144\143\062\057\076"), /* */ + OSXET("\074\144\143\063\057\076"), /* */ + OSXET("\074\144\143\064\057\076"), /* */ + OSXET("\074\156\141\153\057\076"), /* */ + OSXET("\074\163\171\156\057\076"), /* */ + OSXET("\074\145\164\142\057\076"), /* */ + OSXET("\074\143\141\156\057\076"), /* */ + OSXET("\074\145\155\057\076"), /* */ + OSXET("\074\163\165\142\057\076"), /* */ + OSXET("\074\145\163\143\057\076"), /* */ + OSXET("\074\151\163\064\057\076"), /* */ + OSXET("\074\151\163\063\057\076"), /* */ + OSXET("\074\151\163\062\057\076"), /* */ + OSXET("\074\151\163\061\057\076"), /* */ + { 0, 0 }, /* " " */ + { 0, 0 }, /* ! */ + { 0, 0 }, /* \" */ + { 0, 0 }, /* # */ + { 0, 0 }, /* $ */ + { 0, 0 }, /* % */ + OSXET("\046\141\155\160\073"), /* & */ + { 0, 0 }, /* ' */ + {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* ()*+,-./ */ + {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 01234567 */ + {0,0},{0,0},{0,0},{0,0}, /* 89:; */ + OSXET("\046\154\164\073"), /* < */ + { 0, 0 }, /* = */ + OSXET("\046\147\164\073"), /* > */ +}; + +static int +OS__check_escaped_control_char(const void *buf, int size) { + size_t i; + /* + * Inefficient algorithm which translates the escape sequences + * defined above into characters. Returns -1 if not found. + * TODO: replace by a faster algorithm (bsearch(), hash or + * nested table lookups). + */ + for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { + const struct OCTET_STRING__xer_escape_table_s *el; + el = &OCTET_STRING__xer_escape_table[i]; + if(el->size == size && memcmp(buf, el->string, size) == 0) + return i; + } + return -1; +} + +static int +OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { + /* + * This might be one of the escape sequences + * for control characters. Check it out. + * #11.15.5 + */ + int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); + if(control_char >= 0) { + OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; + void *p = REALLOC(st->buf, st->size + 2); + if(p) { + st->buf = (uint8_t *)p; + st->buf[st->size++] = control_char; + st->buf[st->size] = '\0'; /* nul-termination */ + return 0; + } + } + + return -1; /* No, it's not */ +} + +asn_enc_rval_t +OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + uint8_t *buf, *end; + uint8_t *ss; /* Sequence start */ + ssize_t encoded_len = 0; + + (void)ilevel; /* Unused argument */ + (void)flags; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + buf = st->buf; + end = buf + st->size; + for(ss = buf; buf < end; buf++) { + unsigned int ch = *buf; + int s_len; /* Special encoding sequence length */ + + /* + * Escape certain characters: X.680/11.15 + */ + if(ch < sizeof(OCTET_STRING__xer_escape_table) + / sizeof(OCTET_STRING__xer_escape_table[0]) + && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { + if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) + || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, app_key) < 0) + ASN__ENCODE_FAILED; + encoded_len += (buf - ss) + s_len; + ss = buf + 1; + } + } + + encoded_len += (buf - ss); + if((buf - ss) && cb(ss, buf - ss, app_key) < 0) + ASN__ENCODE_FAILED; + + er.encoded = encoded_len; + ASN__ENCODED_OK(er); +} + +/* + * Convert from hexadecimal format (cstring): "AB CD EF" + */ +static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + const char *chunk_stop = (const char *)chunk_buf; + const char *p = chunk_stop; + const char *pend = p + chunk_size; + unsigned int clv = 0; + int half = 0; /* Half bit */ + uint8_t *buf; + + /* Reallocate buffer according to high cap estimation */ + size_t new_size = st->size + (chunk_size + 1) / 2; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + /* + * If something like " a b c " appears here, the " a b":3 will be + * converted, and the rest skipped. That is, unless buf_size is greater + * than chunk_size, then it'll be equivalent to "ABC0". + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + switch(ch) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* Ignore whitespace */ + continue; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ + clv = (clv << 4) + (ch - 0x30); + break; + case 0x41: case 0x42: case 0x43: /* ABC */ + case 0x44: case 0x45: case 0x46: /* DEF */ + clv = (clv << 4) + (ch - 0x41 + 10); + break; + case 0x61: case 0x62: case 0x63: /* abc */ + case 0x64: case 0x65: case 0x66: /* def */ + clv = (clv << 4) + (ch - 0x61 + 10); + break; + default: + *buf = 0; /* JIC */ + return -1; + } + if(half++) { + half = 0; + *buf++ = clv; + chunk_stop = p + 1; + } + } + + /* + * Check partial decoding. + */ + if(half) { + if(have_more) { + /* + * Partial specification is fine, + * because no more more PXER_TEXT data is available. + */ + *buf++ = clv << 4; + chunk_stop = p; + } + } else { + chunk_stop = p; + } + + st->size = buf - st->buf; /* Adjust the buffer size */ + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return (chunk_stop - (const char *)chunk_buf); /* Converted size */ +} + +/* + * Convert from binary format: "00101011101" + */ +static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { + BIT_STRING_t *st = (BIT_STRING_t *)sptr; + const char *p = (const char *)chunk_buf; + const char *pend = (p == NULL)? NULL : p + chunk_size; + int bits_unused = st->bits_unused & 0x7; + uint8_t *buf; + + /* Reallocate buffer according to high cap estimation */ + size_t new_size = st->size + (chunk_size + 7) / 8; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + (void)have_more; + + if(bits_unused == 0) + bits_unused = 8; + else if(st->size) + buf--; + + /* + * Convert series of 0 and 1 into the octet string. + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + switch(ch) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* Ignore whitespace */ + break; + case 0x30: + case 0x31: + if(bits_unused-- <= 0) { + *++buf = 0; /* Clean the cell */ + bits_unused = 7; + } + *buf |= (ch&1) << bits_unused; + break; + default: + st->bits_unused = bits_unused; + return -1; + } + } + + if(bits_unused == 8) { + st->size = buf - st->buf; + st->bits_unused = 0; + } else { + st->size = buf - st->buf + 1; + st->bits_unused = bits_unused; + } + + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return chunk_size; /* Converted in full */ +} + +/* + * Something like strtod(), but with stricter rules. + */ +static int +OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { + const int32_t last_unicode_codepoint = 0x10ffff; + int32_t val = 0; + const char *p; + + for(p = buf; p < end; p++) { + int ch = *p; + + switch(ch) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ + val = val * base + (ch - 0x30); + break; + case 0x41: case 0x42: case 0x43: /* ABC */ + case 0x44: case 0x45: case 0x46: /* DEF */ + val = val * base + (ch - 0x41 + 10); + break; + case 0x61: case 0x62: case 0x63: /* abc */ + case 0x64: case 0x65: case 0x66: /* def */ + val = val * base + (ch - 0x61 + 10); + break; + case 0x3b: /* ';' */ + *ret_value = val; + return (p - buf) + 1; + default: + return -1; /* Character set error */ + } + + /* Value exceeds the Unicode range. */ + if(val > last_unicode_codepoint) { + return -1; + } + } + + *ret_value = -1; + return (p - buf); +} + +/* + * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" + */ +static ssize_t +OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, + size_t chunk_size, int have_more) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + const char *p = (const char *)chunk_buf; + const char *pend = p + chunk_size; + uint8_t *buf; + + /* Reallocate buffer */ + size_t new_size = st->size + chunk_size; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + /* + * Convert series of 0 and 1 into the octet string. + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + int len; /* Length of the rest of the chunk */ + + if(ch != 0x26 /* '&' */) { + *buf++ = ch; + continue; /* That was easy... */ + } + + /* + * Process entity reference. + */ + len = chunk_size - (p - (const char *)chunk_buf); + if(len == 1 /* "&" */) goto want_more; + if(p[1] == 0x23 /* '#' */) { + const char *pval; /* Pointer to start of digits */ + int32_t val = 0; /* Entity reference value */ + int base; + + if(len == 2 /* "&#" */) goto want_more; + if(p[2] == 0x78 /* 'x' */) + pval = p + 3, base = 16; + else + pval = p + 2, base = 10; + len = OS__strtoent(base, pval, p + len, &val); + if(len == -1) { + /* Invalid charset. Just copy verbatim. */ + *buf++ = ch; + continue; + } + if(!len || pval[len-1] != 0x3b) goto want_more; + assert(val > 0); + p += (pval - p) + len - 1; /* Advance past entref */ + + if(val < 0x80) { + *buf++ = (char)val; + } else if(val < 0x800) { + *buf++ = 0xc0 | ((val >> 6)); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x10000) { + *buf++ = 0xe0 | ((val >> 12)); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x200000) { + *buf++ = 0xf0 | ((val >> 18)); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x4000000) { + *buf++ = 0xf8 | ((val >> 24)); + *buf++ = 0x80 | ((val >> 18) & 0x3f); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else { + *buf++ = 0xfc | ((val >> 30) & 0x1); + *buf++ = 0x80 | ((val >> 24) & 0x3f); + *buf++ = 0x80 | ((val >> 18) & 0x3f); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } + } else { + /* + * Ugly, limited parsing of & > < + */ + char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); + if(!sc) goto want_more; + if((sc - p) == 4 + && p[1] == 0x61 /* 'a' */ + && p[2] == 0x6d /* 'm' */ + && p[3] == 0x70 /* 'p' */) { + *buf++ = 0x26; + p = sc; + continue; + } + if((sc - p) == 3) { + if(p[1] == 0x6c) { + *buf = 0x3c; /* '<' */ + } else if(p[1] == 0x67) { + *buf = 0x3e; /* '>' */ + } else { + /* Unsupported entity reference */ + *buf++ = ch; + continue; + } + if(p[2] != 0x74) { + /* Unsupported entity reference */ + *buf++ = ch; + continue; + } + buf++; + p = sc; + continue; + } + /* Unsupported entity reference */ + *buf++ = ch; + } + + continue; + want_more: + if(have_more) { + /* + * We know that no more data (of the same type) + * is coming. Copy the rest verbatim. + */ + *buf++ = ch; + continue; + } + chunk_size = (p - (const char *)chunk_buf); + /* Processing stalled: need more data */ + break; + } + + st->size = buf - st->buf; + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return chunk_size; /* Converted in full */ +} + +/* + * Decode OCTET STRING from the XML element's body. + */ +static asn_dec_rval_t +OCTET_STRING__decode_xer( + const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, + void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, + size_t chunk_size), + ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, + size_t chunk_size, int have_more)) { + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + asn_struct_ctx_t *ctx; /* Per-structure parser context */ + asn_dec_rval_t rval; /* Return value from the decoder */ + int st_allocated; + + /* + * Create the string if does not exist. + */ + if(!st) { + st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); + *sptr = (void *)st; + if(!st) goto sta_failed; + st_allocated = 1; + } else { + st_allocated = 0; + } + if(!st->buf) { + /* This is separate from above section */ + st->buf = (uint8_t *)CALLOC(1, 1); + if(!st->buf) { + if(st_allocated) { + *sptr = 0; + goto stb_failed; + } else { + goto sta_failed; + } + } + } + + /* Restore parsing context */ + ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); + + return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, + buf_ptr, size, + opt_unexpected_tag_decoder, + body_receiver); + +stb_failed: + FREEMEM(st); +sta_failed: + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; +} + +/* + * Decode OCTET STRING from the hexadecimal data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, 0, + OCTET_STRING__convert_hexadecimal); +} + +/* + * Decode OCTET STRING from the binary (0/1) data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, 0, + OCTET_STRING__convert_binary); +} + +/* + * Decode OCTET STRING from the string (ASCII/UTF-8) data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, + OCTET_STRING__handle_control_chars, + OCTET_STRING__convert_entrefs); +} diff --git a/src/tmx/Asn_J2735/src/2020/OPEN_TYPE.c b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE.c new file mode 100644 index 000000000..c9afecffe --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_TYPE_operation_t asn_OP_OPEN_TYPE = { + OPEN_TYPE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OPEN_TYPE_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OPEN_TYPE_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OPEN_TYPE_decode_ber, + OPEN_TYPE_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OPEN_TYPE_decode_xer, + OPEN_TYPE_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OPEN_TYPE_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OPEN_TYPE_decode_oer, + OPEN_TYPE_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OPEN_TYPE_decode_uper, + OPEN_TYPE_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OPEN_TYPE_decode_aper, + OPEN_TYPE_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + 0, /* Random fill is not supported for open type */ +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; diff --git a/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_aper.c b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_aper.c new file mode 100644 index 000000000..3e2ab1888 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_aper.c @@ -0,0 +1,173 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, asn_per_data_t *pd) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, + &inner_value, pd); + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_WMORE: + case RC_FAIL: + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + } + return rv; +} + +asn_enc_rval_t +OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const void *memb_ptr; /* Pointer to the member */ + asn_TYPE_member_t *elm; /* CHOICE's element */ + asn_enc_rval_t er = {0,0,0}; + unsigned present; + + (void)constraints; + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + present--; + } + + ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { + ASN__ENCODE_FAILED; + } + + er.encoded = 0; + ASN__ENCODED_OK(er); +} + + +int OPEN_TYPE_aper_is_unknown_type(const asn_TYPE_descriptor_t *td, void *sptr, const asn_TYPE_member_t *elm) { + asn_type_selector_result_t selected; + + if(!elm->type_selector) { + return 1; + } + else { + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + return 1; + } + } + return 0; +} + +asn_dec_rval_t +OPEN_TYPE_aper_unknown_type_discard_bytes (asn_per_data_t *pd) { +#define ASN_DUMMY_BYTES 256 + unsigned char dummy[ASN_DUMMY_BYTES], *dummy_ptr = NULL; + ssize_t bytes; + int repeat; + asn_dec_rval_t rv; + + rv.consumed = 0; + rv.code = RC_FAIL; + + do { + bytes = aper_get_length(pd, -1, -1, -1, &repeat); + if (bytes > 10 * ASN_DUMMY_BYTES) + { + return rv; + } + else if (bytes > ASN_DUMMY_BYTES) + { + dummy_ptr = CALLOC(1, bytes); + if (!dummy_ptr) + return rv; + } + + per_get_many_bits(pd, (dummy_ptr ? dummy_ptr : dummy), 0, bytes << 3); + + if (dummy_ptr) + { + FREEMEM(dummy_ptr); + dummy_ptr = NULL; + } + } while (repeat); + + rv.code = RC_OK; + return rv; +#undef ASN_DUMMY_BYTES +} diff --git a/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_ber.c b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_ber.c new file mode 100644 index 000000000..7d8948072 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_ber.c @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, const void *ptr, size_t size) { + size_t consumed_myself = 0; + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + ASN_DEBUG("presence %d\n", selected.presence_index); + + rv = selected.type_descriptor->op->ber_decoder( + opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, + elm->tag_mode); + ADVANCE(rv.consumed); + rv.consumed = 0; + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + rv.code = RC_OK; + rv.consumed = consumed_myself; + return rv; + } else { + /* Oh, now a full-blown failure failure */ + } + /* Fall through */ + case RC_FAIL: + rv.consumed = consumed_myself; + /* Fall through */ + case RC_WMORE: + break; + } + + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + return rv; +} diff --git a/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_oer.c b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_oer.c new file mode 100644 index 000000000..05a5eaad2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_oer.c @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + asn_TYPE_member_t *elm, const void *ptr, size_t size) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + size_t ot_ret; + + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + ot_ret = oer_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, + &inner_value, ptr, size); + switch(ot_ret) { + default: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + rv.code = RC_OK; + rv.consumed = ot_ret; + return rv; + } else { + /* Oh, now a full-blown failure failure */ + } + /* Fall through */ + case -1: + rv.code = RC_FAIL; + rv.consumed = ot_ret; + break; + case 0: + rv.code = RC_WMORE; + rv.consumed = 0; + break; + } + + if(*memb_ptr2) { + const asn_CHOICE_specifics_t *specs = + selected.type_descriptor->specifics; + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_FREE_CONTENTS_ONLY(*selected.type_descriptor, + inner_value); + memset(*memb_ptr2, 0, specs->struct_size); + } + } + return rv; +} diff --git a/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_uper.c b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_uper.c new file mode 100644 index 000000000..2f27bb904 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_uper.c @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, asn_per_data_t *pd) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, + &inner_value, pd); + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_WMORE: + case RC_FAIL: + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + } + return rv; +} + +asn_enc_rval_t +OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const void *memb_ptr; /* Pointer to the member */ + asn_TYPE_member_t *elm; /* CHOICE's element */ + asn_enc_rval_t er = {0,0,0}; + unsigned present; + + (void)constraints; + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + present--; + } + + ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { + ASN__ENCODE_FAILED; + } + + er.encoded = 0; + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_xer.c b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_xer.c new file mode 100644 index 000000000..fc38562e9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OPEN_TYPE_xer.c @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, const void *ptr, size_t size) { + size_t consumed_myself = 0; + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + int xer_context = 0; + ssize_t ch_size; + pxer_chunk_type_e ch_type; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + /* + * Confirm wrapper. + */ + for(;;) { + ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); + if(ch_size < 0) { + ASN__DECODE_FAILED; + } else { + switch(ch_type) { + case PXER_WMORE: + ASN__DECODE_STARVED; + case PXER_COMMENT: + case PXER_TEXT: + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; + } + break; + } + } + + /* + * Wrapper value confirmed. + */ + switch(xer_check_tag(ptr, ch_size, elm->name)) { + case XCT_OPENING: + ADVANCE(ch_size); + break; + case XCT_BROKEN: + default: + ASN__DECODE_FAILED; + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = selected.type_descriptor->op->xer_decoder( + opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); + ADVANCE(rv.consumed); + rv.consumed = 0; + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_FAIL: + /* Point to a best position where failure occurred */ + rv.consumed = consumed_myself; + /* Fall through */ + case RC_WMORE: + /* Wrt. rv.consumed==0: + * In case a genuine RC_WMORE, the whole Open Type decoding + * will have to be restarted. + */ + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + return rv; + } + + /* + * Finalize wrapper. + */ + for(;;) { + ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); + if(ch_size < 0) { + ASN__DECODE_FAILED; + } else { + switch(ch_type) { + case PXER_WMORE: + ASN__DECODE_STARVED; + case PXER_COMMENT: + case PXER_TEXT: + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; + } + break; + } + } + + /* + * Wrapper value confirmed. + */ + switch(xer_check_tag(ptr, ch_size, elm->name)) { + case XCT_CLOSING: + ADVANCE(ch_size); + break; + case XCT_BROKEN: + default: + ASN__DECODE_FAILED; + } + + rv.consumed += consumed_myself; + + return rv; +} diff --git a/src/tmx/Asn_J2735/src/2020/ObjectCount.c b/src/tmx/Asn_J2735/src/2020/ObjectCount.c new file mode 100644 index 000000000..81a5bb8fd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ObjectCount.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NMEAcorrections" + * found in "J2735-NMEAcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ObjectCount.h" + +int +ObjectCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 1023L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ObjectCount_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ObjectCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ObjectCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ObjectCount = { + "ObjectCount", + "ObjectCount", + &asn_OP_NativeInteger, + asn_DEF_ObjectCount_tags_1, + sizeof(asn_DEF_ObjectCount_tags_1) + /sizeof(asn_DEF_ObjectCount_tags_1[0]), /* 1 */ + asn_DEF_ObjectCount_tags_1, /* Same as above */ + sizeof(asn_DEF_ObjectCount_tags_1) + /sizeof(asn_DEF_ObjectCount_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ObjectCount_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ObjectCount_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ObjectCount_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ObjectDescriptor.c b/src/tmx/Asn_J2735/src/2020/ObjectDescriptor.c new file mode 100644 index 000000000..c311a9291 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ObjectDescriptor.c @@ -0,0 +1,91 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * ObjectDescriptor basic type description. + */ +static const ber_tlv_tag_t asn_DEF_ObjectDescriptor_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), /* [UNIVERSAL 7] IMPLICIT ... */ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_ObjectDescriptor = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print_utf8, /* Treat as ASCII subset (it's not) */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_encode_jer_utf8, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, + 0, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + 0, /* Not supported for ObjectDescriptor */ +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor = { + "ObjectDescriptor", + "ObjectDescriptor", + &asn_OP_ObjectDescriptor, + asn_DEF_ObjectDescriptor_tags, + sizeof(asn_DEF_ObjectDescriptor_tags) + / sizeof(asn_DEF_ObjectDescriptor_tags[0]) - 1, + asn_DEF_ObjectDescriptor_tags, + sizeof(asn_DEF_ObjectDescriptor_tags) + / sizeof(asn_DEF_ObjectDescriptor_tags[0]), + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + asn_generic_unknown_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; diff --git a/src/tmx/Asn_J2735/src/2020/ObstacleDetection.c b/src/tmx/Asn_J2735/src/2020/ObstacleDetection.c new file mode 100644 index 000000000..1c82a7ec6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ObstacleDetection.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ObstacleDetection.h" + +static int +memb_description_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 523L && value <= 541L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_description_constr_4 CC_NOTUSED = { + { 2, 1 } /* (523..541) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_description_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 523, 541 } /* (523..541) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ObstacleDetection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ObstacleDetection, obDist), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObstacleDistance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "obDist" + }, + { ATF_NOFLAGS, 0, offsetof(struct ObstacleDetection, obDirect), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObstacleDirection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "obDirect" + }, + { ATF_POINTER, 2, offsetof(struct ObstacleDetection, description), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_description_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_description_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_description_constraint_1 + }, + 0, 0, /* No default value */ + "description" + }, + { ATF_POINTER, 1, offsetof(struct ObstacleDetection, locationDetails), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GenericLocations, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "locationDetails" + }, + { ATF_NOFLAGS, 0, offsetof(struct ObstacleDetection, dateTime), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDateTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dateTime" + }, + { ATF_POINTER, 1, offsetof(struct ObstacleDetection, vertEvent), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationThreshold, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vertEvent" + }, +}; +static const int asn_MAP_ObstacleDetection_oms_1[] = { 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_ObstacleDetection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ObstacleDetection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* obDist */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* obDirect */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* description */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* locationDetails */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dateTime */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* vertEvent */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ObstacleDetection_specs_1 = { + sizeof(struct ObstacleDetection), + offsetof(struct ObstacleDetection, _asn_ctx), + asn_MAP_ObstacleDetection_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ObstacleDetection_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ObstacleDetection = { + "ObstacleDetection", + "ObstacleDetection", + &asn_OP_SEQUENCE, + asn_DEF_ObstacleDetection_tags_1, + sizeof(asn_DEF_ObstacleDetection_tags_1) + /sizeof(asn_DEF_ObstacleDetection_tags_1[0]), /* 1 */ + asn_DEF_ObstacleDetection_tags_1, /* Same as above */ + sizeof(asn_DEF_ObstacleDetection_tags_1) + /sizeof(asn_DEF_ObstacleDetection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ObstacleDetection_1, + 6, /* Elements count */ + &asn_SPC_ObstacleDetection_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ObstacleDirection.c b/src/tmx/Asn_J2735/src/2020/ObstacleDirection.c new file mode 100644 index 000000000..a8f73bb60 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ObstacleDirection.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ObstacleDirection.h" + +int +ObstacleDirection_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 28800L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using Common_Angle, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ObstacleDirection_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..28800) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ObstacleDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ObstacleDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ObstacleDirection = { + "ObstacleDirection", + "ObstacleDirection", + &asn_OP_NativeInteger, + asn_DEF_ObstacleDirection_tags_1, + sizeof(asn_DEF_ObstacleDirection_tags_1) + /sizeof(asn_DEF_ObstacleDirection_tags_1[0]), /* 1 */ + asn_DEF_ObstacleDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_ObstacleDirection_tags_1) + /sizeof(asn_DEF_ObstacleDirection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ObstacleDirection_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ObstacleDirection_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ObstacleDirection_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ObstacleDistance.c b/src/tmx/Asn_J2735/src/2020/ObstacleDistance.c new file mode 100644 index 000000000..166e68f83 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ObstacleDistance.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ObstacleDistance.h" + +int +ObstacleDistance_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ObstacleDistance_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ObstacleDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ObstacleDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ObstacleDistance = { + "ObstacleDistance", + "ObstacleDistance", + &asn_OP_NativeInteger, + asn_DEF_ObstacleDistance_tags_1, + sizeof(asn_DEF_ObstacleDistance_tags_1) + /sizeof(asn_DEF_ObstacleDistance_tags_1[0]), /* 1 */ + asn_DEF_ObstacleDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_ObstacleDistance_tags_1) + /sizeof(asn_DEF_ObstacleDistance_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ObstacleDistance_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ObstacleDistance_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ObstacleDistance_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Offset-B09.c b/src/tmx/Asn_J2735/src/2020/Offset-B09.c new file mode 100644 index 000000000..b8d550cf6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Offset-B09.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Offset-B09.h" + +int +Offset_B09_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -256L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Offset_B09_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-256..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Offset_B09_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -256, 255 } /* (-256..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_Offset_B09_tags_1, + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B09_tags_1) + /sizeof(asn_DEF_Offset_B09_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Offset_B09_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Offset_B09_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Offset_B09_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Offset-B10.c b/src/tmx/Asn_J2735/src/2020/Offset-B10.c new file mode 100644 index 000000000..a4d34fa4d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Offset-B10.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Offset-B10.h" + +int +Offset_B10_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -512L && value <= 511L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Offset_B10_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-512..511) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Offset_B10_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -512, 511 } /* (-512..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_Offset_B10_tags_1, + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B10_tags_1) + /sizeof(asn_DEF_Offset_B10_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Offset_B10_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Offset_B10_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Offset_B10_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Offset-B11.c b/src/tmx/Asn_J2735/src/2020/Offset-B11.c new file mode 100644 index 000000000..b150777db --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Offset-B11.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Offset-B11.h" + +int +Offset_B11_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1024L && value <= 1023L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Offset_B11_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1024..1023) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Offset_B11_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_Offset_B11_tags_1, + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B11_tags_1) + /sizeof(asn_DEF_Offset_B11_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Offset_B11_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Offset_B11_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Offset_B11_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Offset-B12.c b/src/tmx/Asn_J2735/src/2020/Offset-B12.c new file mode 100644 index 000000000..561c0c956 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Offset-B12.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Offset-B12.h" + +int +Offset_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048L && value <= 2047L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Offset_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Offset_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_Offset_B12_tags_1, + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B12_tags_1) + /sizeof(asn_DEF_Offset_B12_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Offset_B12_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Offset_B12_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Offset_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Offset-B13.c b/src/tmx/Asn_J2735/src/2020/Offset-B13.c new file mode 100644 index 000000000..724859988 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Offset-B13.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Offset-B13.h" + +int +Offset_B13_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -4096L && value <= 4095L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Offset_B13_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-4096..4095) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Offset_B13_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, -4096, 4095 } /* (-4096..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_Offset_B13_tags_1, + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B13_tags_1) + /sizeof(asn_DEF_Offset_B13_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Offset_B13_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Offset_B13_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Offset_B13_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Offset-B14.c b/src/tmx/Asn_J2735/src/2020/Offset-B14.c new file mode 100644 index 000000000..88abdd688 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Offset-B14.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Offset-B14.h" + +int +Offset_B14_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8192L && value <= 8191L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Offset_B14_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-8192..8191) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Offset_B14_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_Offset_B14_tags_1, + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B14_tags_1) + /sizeof(asn_DEF_Offset_B14_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Offset_B14_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Offset_B14_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Offset_B14_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Offset-B16.c b/src/tmx/Asn_J2735/src/2020/Offset-B16.c new file mode 100644 index 000000000..11f6360d1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Offset-B16.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Offset-B16.h" + +int +Offset_B16_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Offset_B16_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Offset_B16_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_Offset_B16_tags_1, + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_Offset_B16_tags_1) + /sizeof(asn_DEF_Offset_B16_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Offset_B16_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Offset_B16_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Offset_B16_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/OffsetLL-B12.c b/src/tmx/Asn_J2735/src/2020/OffsetLL-B12.c new file mode 100644 index 000000000..5978a82f9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OffsetLL-B12.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "OffsetLL-B12.h" + +int +OffsetLL_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048L && value <= 2047L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_OffsetLL_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_OffsetLL_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_OffsetLL_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OffsetLL_B12 = { + "OffsetLL-B12", + "OffsetLL-B12", + &asn_OP_NativeInteger, + asn_DEF_OffsetLL_B12_tags_1, + sizeof(asn_DEF_OffsetLL_B12_tags_1) + /sizeof(asn_DEF_OffsetLL_B12_tags_1[0]), /* 1 */ + asn_DEF_OffsetLL_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_OffsetLL_B12_tags_1) + /sizeof(asn_DEF_OffsetLL_B12_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_OffsetLL_B12_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_OffsetLL_B12_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OffsetLL_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/OffsetLL-B14.c b/src/tmx/Asn_J2735/src/2020/OffsetLL-B14.c new file mode 100644 index 000000000..1768f6e22 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OffsetLL-B14.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "OffsetLL-B14.h" + +int +OffsetLL_B14_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8192L && value <= 8191L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_OffsetLL_B14_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-8192..8191) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_OffsetLL_B14_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_OffsetLL_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OffsetLL_B14 = { + "OffsetLL-B14", + "OffsetLL-B14", + &asn_OP_NativeInteger, + asn_DEF_OffsetLL_B14_tags_1, + sizeof(asn_DEF_OffsetLL_B14_tags_1) + /sizeof(asn_DEF_OffsetLL_B14_tags_1[0]), /* 1 */ + asn_DEF_OffsetLL_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_OffsetLL_B14_tags_1) + /sizeof(asn_DEF_OffsetLL_B14_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_OffsetLL_B14_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_OffsetLL_B14_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OffsetLL_B14_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/OffsetLL-B16.c b/src/tmx/Asn_J2735/src/2020/OffsetLL-B16.c new file mode 100644 index 000000000..67ca46cc8 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OffsetLL-B16.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "OffsetLL-B16.h" + +int +OffsetLL_B16_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32768L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_OffsetLL_B16_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32768..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_OffsetLL_B16_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_OffsetLL_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OffsetLL_B16 = { + "OffsetLL-B16", + "OffsetLL-B16", + &asn_OP_NativeInteger, + asn_DEF_OffsetLL_B16_tags_1, + sizeof(asn_DEF_OffsetLL_B16_tags_1) + /sizeof(asn_DEF_OffsetLL_B16_tags_1[0]), /* 1 */ + asn_DEF_OffsetLL_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_OffsetLL_B16_tags_1) + /sizeof(asn_DEF_OffsetLL_B16_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_OffsetLL_B16_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_OffsetLL_B16_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OffsetLL_B16_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/OffsetLL-B18.c b/src/tmx/Asn_J2735/src/2020/OffsetLL-B18.c new file mode 100644 index 000000000..e6681f1c9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OffsetLL-B18.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "OffsetLL-B18.h" + +int +OffsetLL_B18_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -131072L && value <= 131071L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_OffsetLL_B18_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131072..131071) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_OffsetLL_B18_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131072, 131071 } /* (-131072..131071) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_OffsetLL_B18_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OffsetLL_B18 = { + "OffsetLL-B18", + "OffsetLL-B18", + &asn_OP_NativeInteger, + asn_DEF_OffsetLL_B18_tags_1, + sizeof(asn_DEF_OffsetLL_B18_tags_1) + /sizeof(asn_DEF_OffsetLL_B18_tags_1[0]), /* 1 */ + asn_DEF_OffsetLL_B18_tags_1, /* Same as above */ + sizeof(asn_DEF_OffsetLL_B18_tags_1) + /sizeof(asn_DEF_OffsetLL_B18_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_OffsetLL_B18_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_OffsetLL_B18_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OffsetLL_B18_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/OffsetLL-B22.c b/src/tmx/Asn_J2735/src/2020/OffsetLL-B22.c new file mode 100644 index 000000000..d9c6e35cc --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OffsetLL-B22.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "OffsetLL-B22.h" + +int +OffsetLL_B22_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2097152L && value <= 2097151L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_OffsetLL_B22_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-2097152..2097151) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_OffsetLL_B22_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 22, -1, -2097152, 2097151 } /* (-2097152..2097151) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_OffsetLL_B22_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OffsetLL_B22 = { + "OffsetLL-B22", + "OffsetLL-B22", + &asn_OP_NativeInteger, + asn_DEF_OffsetLL_B22_tags_1, + sizeof(asn_DEF_OffsetLL_B22_tags_1) + /sizeof(asn_DEF_OffsetLL_B22_tags_1[0]), /* 1 */ + asn_DEF_OffsetLL_B22_tags_1, /* Same as above */ + sizeof(asn_DEF_OffsetLL_B22_tags_1) + /sizeof(asn_DEF_OffsetLL_B22_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_OffsetLL_B22_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_OffsetLL_B22_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OffsetLL_B22_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/OffsetLL-B24.c b/src/tmx/Asn_J2735/src/2020/OffsetLL-B24.c new file mode 100644 index 000000000..cfa22a228 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OffsetLL-B24.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "OffsetLL-B24.h" + +int +OffsetLL_B24_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8388608L && value <= 8388607L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_OffsetLL_B24_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-8388608..8388607) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_OffsetLL_B24_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 24, -1, -8388608, 8388607 } /* (-8388608..8388607) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_OffsetLL_B24_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OffsetLL_B24 = { + "OffsetLL-B24", + "OffsetLL-B24", + &asn_OP_NativeInteger, + asn_DEF_OffsetLL_B24_tags_1, + sizeof(asn_DEF_OffsetLL_B24_tags_1) + /sizeof(asn_DEF_OffsetLL_B24_tags_1[0]), /* 1 */ + asn_DEF_OffsetLL_B24_tags_1, /* Same as above */ + sizeof(asn_DEF_OffsetLL_B24_tags_1) + /sizeof(asn_DEF_OffsetLL_B24_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_OffsetLL_B24_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_OffsetLL_B24_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OffsetLL_B24_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/OffsetSystem.c b/src/tmx/Asn_J2735/src/2020/OffsetSystem.c new file mode 100644 index 000000000..6f1d4d202 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OffsetSystem.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "OffsetSystem.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_offset_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_offset_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_offset_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct OffsetSystem__offset, choice.xy), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "xy" + }, + { ATF_NOFLAGS, 0, offsetof(struct OffsetSystem__offset, choice.ll), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListLL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ll" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_offset_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xy */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ll */ +}; +static asn_CHOICE_specifics_t asn_SPC_offset_specs_3 = { + sizeof(struct OffsetSystem__offset), + offsetof(struct OffsetSystem__offset, _asn_ctx), + offsetof(struct OffsetSystem__offset, present), + sizeof(((struct OffsetSystem__offset *)0)->present), + asn_MAP_offset_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_offset_3 = { + "offset", + "offset", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_offset_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_offset_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_offset_3, + 2, /* Elements count */ + &asn_SPC_offset_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_OffsetSystem_1[] = { + { ATF_POINTER, 1, offsetof(struct OffsetSystem, scale), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Zoom, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "scale" + }, + { ATF_NOFLAGS, 0, offsetof(struct OffsetSystem, offset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_offset_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_OffsetSystem_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_OffsetSystem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_OffsetSystem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scale */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_OffsetSystem_specs_1 = { + sizeof(struct OffsetSystem), + offsetof(struct OffsetSystem, _asn_ctx), + asn_MAP_OffsetSystem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_OffsetSystem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_OffsetSystem = { + "OffsetSystem", + "OffsetSystem", + &asn_OP_SEQUENCE, + asn_DEF_OffsetSystem_tags_1, + sizeof(asn_DEF_OffsetSystem_tags_1) + /sizeof(asn_DEF_OffsetSystem_tags_1[0]), /* 1 */ + asn_DEF_OffsetSystem_tags_1, /* Same as above */ + sizeof(asn_DEF_OffsetSystem_tags_1) + /sizeof(asn_DEF_OffsetSystem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_OffsetSystem_1, + 2, /* Elements count */ + &asn_SPC_OffsetSystem_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/OverlayLaneList.c b/src/tmx/Asn_J2735/src/2020/OverlayLaneList.c new file mode 100644 index 000000000..bc52dd6e0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/OverlayLaneList.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "OverlayLaneList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_OverlayLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_OverlayLaneList_specs_1 = { + sizeof(struct OverlayLaneList), + offsetof(struct OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_OverlayLaneList_tags_1, + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_OverlayLaneList_tags_1) + /sizeof(asn_DEF_OverlayLaneList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_OverlayLaneList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_OverlayLaneList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PartII-Id.c b/src/tmx/Asn_J2735/src/2020/PartII-Id.c new file mode 100644 index 000000000..e05557755 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PartII-Id.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PartII-Id.h" + +int +PartII_Id_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 63L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PartII_Id_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PartII_Id_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_PartII_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PartII_Id = { + "PartII-Id", + "PartII-Id", + &asn_OP_NativeInteger, + asn_DEF_PartII_Id_tags_1, + sizeof(asn_DEF_PartII_Id_tags_1) + /sizeof(asn_DEF_PartII_Id_tags_1[0]), /* 1 */ + asn_DEF_PartII_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_PartII_Id_tags_1) + /sizeof(asn_DEF_PartII_Id_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PartII_Id_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PartII_Id_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + PartII_Id_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PartIIcontent.c b/src/tmx/Asn_J2735/src/2020/PartIIcontent.c new file mode 100644 index 000000000..0476382eb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PartIIcontent.c @@ -0,0 +1,284 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PartIIcontent.h" + +static const long asn_VAL_1_vehicleSafetyExt = 0; +static const long asn_VAL_2_specialVehicleExt = 1; +static const long asn_VAL_3_supplementalVehicleExt = 2; +static const asn_ioc_cell_t asn_IOS_BSMpartIIExtension_1_rows[] = { + { "&id", aioc__value, &asn_DEF_PartII_Id, &asn_VAL_1_vehicleSafetyExt }, + { "&Type", aioc__type, &asn_DEF_VehicleSafetyExtensions }, + { "&id", aioc__value, &asn_DEF_PartII_Id, &asn_VAL_2_specialVehicleExt }, + { "&Type", aioc__type, &asn_DEF_SpecialVehicleExtensions }, + { "&id", aioc__value, &asn_DEF_PartII_Id, &asn_VAL_3_supplementalVehicleExt }, + { "&Type", aioc__type, &asn_DEF_SupplementalVehicleExtensions } +}; +static const asn_ioc_set_t asn_IOS_BSMpartIIExtension_1[] = { + { 3, 2, asn_IOS_BSMpartIIExtension_1_rows } +}; +static int +memb_partII_Id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 63L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_BSMpartIIExtension_partII_Value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_BSMpartIIExtension_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct BSMpartIIExtension, partII_Id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_partII_Value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_partII_Id_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_partII_Id_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_partII_Value_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_partII_Value_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_partII_Value_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct BSMpartIIExtension__partII_Value, choice.VehicleSafetyExtensions), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_VehicleSafetyExtensions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "VehicleSafetyExtensions" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMpartIIExtension__partII_Value, choice.SpecialVehicleExtensions), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SpecialVehicleExtensions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "SpecialVehicleExtensions" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSMpartIIExtension__partII_Value, choice.SupplementalVehicleExtensions), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SupplementalVehicleExtensions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "SupplementalVehicleExtensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_partII_Value_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* VehicleSafetyExtensions */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* SpecialVehicleExtensions */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* SupplementalVehicleExtensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_partII_Value_specs_3 = { + sizeof(struct BSMpartIIExtension__partII_Value), + offsetof(struct BSMpartIIExtension__partII_Value, _asn_ctx), + offsetof(struct BSMpartIIExtension__partII_Value, present), + sizeof(((struct BSMpartIIExtension__partII_Value *)0)->present), + asn_MAP_partII_Value_tag2el_3, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_partII_Value_3 = { + "partII-Value", + "partII-Value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_partII_Value_3, + 3, /* Elements count */ + &asn_SPC_partII_Value_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BSMpartIIExtension_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BSMpartIIExtension, partII_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PartII_Id, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_partII_Id_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_partII_Id_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_partII_Id_constraint_1 + }, + 0, 0, /* No default value */ + "partII-Id" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct BSMpartIIExtension, partII_Value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_partII_Value_3, + select_BSMpartIIExtension_partII_Value_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_partII_Value_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_partII_Value_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_partII_Value_constraint_1 + }, + 0, 0, /* No default value */ + "partII-Value" + }, +}; +static const ber_tlv_tag_t asn_DEF_BSMpartIIExtension_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BSMpartIIExtension_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* partII-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* partII-Value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BSMpartIIExtension_specs_1 = { + sizeof(struct BSMpartIIExtension), + offsetof(struct BSMpartIIExtension, _asn_ctx), + asn_MAP_BSMpartIIExtension_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BSMpartIIExtension = { + "BSMpartIIExtension", + "BSMpartIIExtension", + &asn_OP_SEQUENCE, + asn_DEF_BSMpartIIExtension_tags_1, + sizeof(asn_DEF_BSMpartIIExtension_tags_1) + /sizeof(asn_DEF_BSMpartIIExtension_tags_1[0]), /* 1 */ + asn_DEF_BSMpartIIExtension_tags_1, /* Same as above */ + sizeof(asn_DEF_BSMpartIIExtension_tags_1) + /sizeof(asn_DEF_BSMpartIIExtension_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_BSMpartIIExtension_1, + 2, /* Elements count */ + &asn_SPC_BSMpartIIExtension_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PathHistory.c b/src/tmx/Asn_J2735/src/2020/PathHistory.c new file mode 100644 index 000000000..381f510ff --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PathHistory.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PathHistory.h" + +#include "FullPositionVector.h" +asn_TYPE_member_t asn_MBR_PathHistory_1[] = { + { ATF_POINTER, 2, offsetof(struct PathHistory, initialPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "initialPosition" + }, + { ATF_POINTER, 1, offsetof(struct PathHistory, currGNSSstatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNSSstatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "currGNSSstatus" + }, + { ATF_NOFLAGS, 0, offsetof(struct PathHistory, crumbData), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathHistoryPointList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "crumbData" + }, +}; +static const int asn_MAP_PathHistory_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathHistory_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initialPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* currGNSSstatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* crumbData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathHistory_specs_1 = { + sizeof(struct PathHistory), + offsetof(struct PathHistory, _asn_ctx), + asn_MAP_PathHistory_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_PathHistory_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE, + asn_DEF_PathHistory_tags_1, + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistory_tags_1) + /sizeof(asn_DEF_PathHistory_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_PathHistory_1, + 3, /* Elements count */ + &asn_SPC_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PathHistoryPoint.c b/src/tmx/Asn_J2735/src/2020/PathHistoryPoint.c new file mode 100644 index 000000000..95721bbc3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PathHistoryPoint.c @@ -0,0 +1,177 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PathHistoryPoint.h" + +#include "PositionalAccuracy.h" +asn_TYPE_member_t asn_MBR_PathHistoryPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathHistoryPoint, latOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B18, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "latOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct PathHistoryPoint, lonOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B18, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lonOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct PathHistoryPoint, elevationOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VertOffset_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevationOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct PathHistoryPoint, timeOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeOffset, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeOffset" + }, + { ATF_POINTER, 3, offsetof(struct PathHistoryPoint, speed), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Speed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 2, offsetof(struct PathHistoryPoint, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posAccuracy" + }, + { ATF_POINTER, 1, offsetof(struct PathHistoryPoint, heading), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CoarseHeading, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heading" + }, +}; +static const int asn_MAP_PathHistoryPoint_oms_1[] = { 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_PathHistoryPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathHistoryPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latOffset */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lonOffset */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevationOffset */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* timeOffset */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* posAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* heading */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathHistoryPoint_specs_1 = { + sizeof(struct PathHistoryPoint), + offsetof(struct PathHistoryPoint, _asn_ctx), + asn_MAP_PathHistoryPoint_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_PathHistoryPoint_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistoryPoint = { + "PathHistoryPoint", + "PathHistoryPoint", + &asn_OP_SEQUENCE, + asn_DEF_PathHistoryPoint_tags_1, + sizeof(asn_DEF_PathHistoryPoint_tags_1) + /sizeof(asn_DEF_PathHistoryPoint_tags_1[0]), /* 1 */ + asn_DEF_PathHistoryPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistoryPoint_tags_1) + /sizeof(asn_DEF_PathHistoryPoint_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_PathHistoryPoint_1, + 7, /* Elements count */ + &asn_SPC_PathHistoryPoint_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PathHistoryPointList.c b/src/tmx/Asn_J2735/src/2020/PathHistoryPointList.c new file mode 100644 index 000000000..702f172a6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PathHistoryPointList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PathHistoryPointList.h" + +#include "PathHistoryPoint.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PathHistoryPointList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PathHistoryPointList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_PathHistoryPointList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PathHistoryPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathHistoryPointList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PathHistoryPointList_specs_1 = { + sizeof(struct PathHistoryPointList), + offsetof(struct PathHistoryPointList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PathHistoryPointList = { + "PathHistoryPointList", + "PathHistoryPointList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PathHistoryPointList_tags_1, + sizeof(asn_DEF_PathHistoryPointList_tags_1) + /sizeof(asn_DEF_PathHistoryPointList_tags_1[0]), /* 1 */ + asn_DEF_PathHistoryPointList_tags_1, /* Same as above */ + sizeof(asn_DEF_PathHistoryPointList_tags_1) + /sizeof(asn_DEF_PathHistoryPointList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PathHistoryPointList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PathHistoryPointList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_PathHistoryPointList_1, + 1, /* Single element */ + &asn_SPC_PathHistoryPointList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PathPrediction.c b/src/tmx/Asn_J2735/src/2020/PathPrediction.c new file mode 100644 index 000000000..c056b0d97 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PathPrediction.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PathPrediction.h" + +asn_TYPE_member_t asn_MBR_PathPrediction_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PathPrediction, radiusOfCurve), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RadiusOfCurvature, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "radiusOfCurve" + }, + { ATF_NOFLAGS, 0, offsetof(struct PathPrediction, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Confidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_PathPrediction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PathPrediction_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radiusOfCurve */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PathPrediction_specs_1 = { + sizeof(struct PathPrediction), + offsetof(struct PathPrediction, _asn_ctx), + asn_MAP_PathPrediction_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PathPrediction = { + "PathPrediction", + "PathPrediction", + &asn_OP_SEQUENCE, + asn_DEF_PathPrediction_tags_1, + sizeof(asn_DEF_PathPrediction_tags_1) + /sizeof(asn_DEF_PathPrediction_tags_1[0]), /* 1 */ + asn_DEF_PathPrediction_tags_1, /* Same as above */ + sizeof(asn_DEF_PathPrediction_tags_1) + /sizeof(asn_DEF_PathPrediction_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_PathPrediction_1, + 2, /* Elements count */ + &asn_SPC_PathPrediction_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PayloadData.c b/src/tmx/Asn_J2735/src/2020/PayloadData.c new file mode 100644 index 000000000..7fb349dc0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PayloadData.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PayloadData.h" + +int +PayloadData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 2048UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PayloadData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2048)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_PayloadData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 11, 11, 1, 2048 } /* (SIZE(1..2048)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_PayloadData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PayloadData = { + "PayloadData", + "PayloadData", + &asn_OP_OCTET_STRING, + asn_DEF_PayloadData_tags_1, + sizeof(asn_DEF_PayloadData_tags_1) + /sizeof(asn_DEF_PayloadData_tags_1[0]), /* 1 */ + asn_DEF_PayloadData_tags_1, /* Same as above */ + sizeof(asn_DEF_PayloadData_tags_1) + /sizeof(asn_DEF_PayloadData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PayloadData_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PayloadData_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + PayloadData_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PedestrianBicycleDetect.c b/src/tmx/Asn_J2735/src/2020/PedestrianBicycleDetect.c new file mode 100644 index 000000000..3c661ad95 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PedestrianBicycleDetect.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BOOLEAN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PersonalAssistive.c b/src/tmx/Asn_J2735/src/2020/PersonalAssistive.c new file mode 100644 index 000000000..f0fd72036 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PersonalAssistive.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PersonalAssistive.h" + +int +PersonalAssistive_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 6UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PersonalAssistive_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PersonalAssistive_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 6, 6 } /* (SIZE(6..6,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_PersonalAssistive_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PersonalAssistive = { + "PersonalAssistive", + "PersonalAssistive", + &asn_OP_BIT_STRING, + asn_DEF_PersonalAssistive_tags_1, + sizeof(asn_DEF_PersonalAssistive_tags_1) + /sizeof(asn_DEF_PersonalAssistive_tags_1[0]), /* 1 */ + asn_DEF_PersonalAssistive_tags_1, /* Same as above */ + sizeof(asn_DEF_PersonalAssistive_tags_1) + /sizeof(asn_DEF_PersonalAssistive_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PersonalAssistive_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PersonalAssistive_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + PersonalAssistive_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PersonalClusterRadius.c b/src/tmx/Asn_J2735/src/2020/PersonalClusterRadius.c new file mode 100644 index 000000000..f4b53def7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PersonalClusterRadius.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PersonalClusterRadius.h" + +int +PersonalClusterRadius_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 100L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PersonalClusterRadius_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..100) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PersonalClusterRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_PersonalClusterRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PersonalClusterRadius = { + "PersonalClusterRadius", + "PersonalClusterRadius", + &asn_OP_NativeInteger, + asn_DEF_PersonalClusterRadius_tags_1, + sizeof(asn_DEF_PersonalClusterRadius_tags_1) + /sizeof(asn_DEF_PersonalClusterRadius_tags_1[0]), /* 1 */ + asn_DEF_PersonalClusterRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_PersonalClusterRadius_tags_1) + /sizeof(asn_DEF_PersonalClusterRadius_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PersonalClusterRadius_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PersonalClusterRadius_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + PersonalClusterRadius_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PersonalCrossingInProgress.c b/src/tmx/Asn_J2735/src/2020/PersonalCrossingInProgress.c new file mode 100644 index 000000000..d207fbd5e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PersonalCrossingInProgress.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PersonalCrossingInProgress.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PersonalCrossingInProgress_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PersonalCrossingInProgress = { + "PersonalCrossingInProgress", + "PersonalCrossingInProgress", + &asn_OP_BOOLEAN, + asn_DEF_PersonalCrossingInProgress_tags_1, + sizeof(asn_DEF_PersonalCrossingInProgress_tags_1) + /sizeof(asn_DEF_PersonalCrossingInProgress_tags_1[0]), /* 1 */ + asn_DEF_PersonalCrossingInProgress_tags_1, /* Same as above */ + sizeof(asn_DEF_PersonalCrossingInProgress_tags_1) + /sizeof(asn_DEF_PersonalCrossingInProgress_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BOOLEAN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PersonalCrossingRequest.c b/src/tmx/Asn_J2735/src/2020/PersonalCrossingRequest.c new file mode 100644 index 000000000..380017614 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PersonalCrossingRequest.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PersonalCrossingRequest.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PersonalCrossingRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PersonalCrossingRequest = { + "PersonalCrossingRequest", + "PersonalCrossingRequest", + &asn_OP_BOOLEAN, + asn_DEF_PersonalCrossingRequest_tags_1, + sizeof(asn_DEF_PersonalCrossingRequest_tags_1) + /sizeof(asn_DEF_PersonalCrossingRequest_tags_1[0]), /* 1 */ + asn_DEF_PersonalCrossingRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_PersonalCrossingRequest_tags_1) + /sizeof(asn_DEF_PersonalCrossingRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BOOLEAN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PersonalDeviceUsageState.c b/src/tmx/Asn_J2735/src/2020/PersonalDeviceUsageState.c new file mode 100644 index 000000000..def11d2b4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PersonalDeviceUsageState.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PersonalDeviceUsageState.h" + +int +PersonalDeviceUsageState_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 9UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PersonalDeviceUsageState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PersonalDeviceUsageState_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 9, 9 } /* (SIZE(9..9,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_PersonalDeviceUsageState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PersonalDeviceUsageState = { + "PersonalDeviceUsageState", + "PersonalDeviceUsageState", + &asn_OP_BIT_STRING, + asn_DEF_PersonalDeviceUsageState_tags_1, + sizeof(asn_DEF_PersonalDeviceUsageState_tags_1) + /sizeof(asn_DEF_PersonalDeviceUsageState_tags_1[0]), /* 1 */ + asn_DEF_PersonalDeviceUsageState_tags_1, /* Same as above */ + sizeof(asn_DEF_PersonalDeviceUsageState_tags_1) + /sizeof(asn_DEF_PersonalDeviceUsageState_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PersonalDeviceUsageState_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PersonalDeviceUsageState_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + PersonalDeviceUsageState_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PersonalDeviceUserType.c b/src/tmx/Asn_J2735/src/2020/PersonalDeviceUserType.c new file mode 100644 index 000000000..764ee48ec --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PersonalDeviceUserType.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PersonalDeviceUserType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PersonalDeviceUserType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PersonalDeviceUserType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_PersonalDeviceUserType_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "aPEDESTRIAN" }, + { 2, 13, "aPEDALCYCLIST" }, + { 3, 19, "aPUBLICSAFETYWORKER" }, + { 4, 8, "anANIMAL" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PersonalDeviceUserType_enum2value_1[] = { + 2, /* aPEDALCYCLIST(2) */ + 1, /* aPEDESTRIAN(1) */ + 3, /* aPUBLICSAFETYWORKER(3) */ + 4, /* anANIMAL(4) */ + 0 /* unavailable(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PersonalDeviceUserType_specs_1 = { + asn_MAP_PersonalDeviceUserType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PersonalDeviceUserType_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PersonalDeviceUserType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PersonalDeviceUserType = { + "PersonalDeviceUserType", + "PersonalDeviceUserType", + &asn_OP_NativeEnumerated, + asn_DEF_PersonalDeviceUserType_tags_1, + sizeof(asn_DEF_PersonalDeviceUserType_tags_1) + /sizeof(asn_DEF_PersonalDeviceUserType_tags_1[0]), /* 1 */ + asn_DEF_PersonalDeviceUserType_tags_1, /* Same as above */ + sizeof(asn_DEF_PersonalDeviceUserType_tags_1) + /sizeof(asn_DEF_PersonalDeviceUserType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PersonalDeviceUserType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PersonalDeviceUserType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PersonalDeviceUserType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PersonalSafetyMessage.c b/src/tmx/Asn_J2735/src/2020/PersonalSafetyMessage.c new file mode 100644 index 000000000..474eede66 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PersonalSafetyMessage.c @@ -0,0 +1,626 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PersonalSafetyMessage.h" + +#include "AccelerationSet4Way.h" +#include "PathHistory.h" +#include "PathPrediction.h" +#include "PropelledInformation.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_27[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_PersonalSafetyMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_27[] = { + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_27 = { + sizeof(struct PersonalSafetyMessage__regional), + offsetof(struct PersonalSafetyMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_27 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_27, + sizeof(asn_DEF_regional_tags_27) + /sizeof(asn_DEF_regional_tags_27[0]) - 1, /* 1 */ + asn_DEF_regional_tags_27, /* Same as above */ + sizeof(asn_DEF_regional_tags_27) + /sizeof(asn_DEF_regional_tags_27[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_27, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_27, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_27, + 1, /* Single element */ + &asn_SPC_regional_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PersonalSafetyMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PersonalSafetyMessage, basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PersonalDeviceUserType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PersonalSafetyMessage, secMark), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "secMark" + }, + { ATF_NOFLAGS, 0, offsetof(struct PersonalSafetyMessage, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct PersonalSafetyMessage, id), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PersonalSafetyMessage, position), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "position" + }, + { ATF_NOFLAGS, 0, offsetof(struct PersonalSafetyMessage, accuracy), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionalAccuracy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accuracy" + }, + { ATF_NOFLAGS, 0, offsetof(struct PersonalSafetyMessage, speed), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct PersonalSafetyMessage, heading), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Heading, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 18, offsetof(struct PersonalSafetyMessage, accelSet), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationSet4Way, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accelSet" + }, + { ATF_POINTER, 17, offsetof(struct PersonalSafetyMessage, pathHistory), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathHistory, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pathHistory" + }, + { ATF_POINTER, 16, offsetof(struct PersonalSafetyMessage, pathPrediction), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathPrediction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pathPrediction" + }, + { ATF_POINTER, 15, offsetof(struct PersonalSafetyMessage, propulsion), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_PropelledInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "propulsion" + }, + { ATF_POINTER, 14, offsetof(struct PersonalSafetyMessage, useState), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PersonalDeviceUsageState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "useState" + }, + { ATF_POINTER, 13, offsetof(struct PersonalSafetyMessage, crossRequest), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PersonalCrossingRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "crossRequest" + }, + { ATF_POINTER, 12, offsetof(struct PersonalSafetyMessage, crossState), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PersonalCrossingInProgress, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "crossState" + }, + { ATF_POINTER, 11, offsetof(struct PersonalSafetyMessage, clusterSize), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NumberOfParticipantsInCluster, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "clusterSize" + }, + { ATF_POINTER, 10, offsetof(struct PersonalSafetyMessage, clusterRadius), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PersonalClusterRadius, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "clusterRadius" + }, + { ATF_POINTER, 9, offsetof(struct PersonalSafetyMessage, eventResponderType), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PublicSafetyEventResponderWorkerType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventResponderType" + }, + { ATF_POINTER, 8, offsetof(struct PersonalSafetyMessage, activityType), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PublicSafetyAndRoadWorkerActivity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "activityType" + }, + { ATF_POINTER, 7, offsetof(struct PersonalSafetyMessage, activitySubType), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PublicSafetyDirectingTrafficSubType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "activitySubType" + }, + { ATF_POINTER, 6, offsetof(struct PersonalSafetyMessage, assistType), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PersonalAssistive, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "assistType" + }, + { ATF_POINTER, 5, offsetof(struct PersonalSafetyMessage, sizing), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UserSizeAndBehaviour, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sizing" + }, + { ATF_POINTER, 4, offsetof(struct PersonalSafetyMessage, attachment), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Attachment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attachment" + }, + { ATF_POINTER, 3, offsetof(struct PersonalSafetyMessage, attachmentRadius), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AttachmentRadius, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attachmentRadius" + }, + { ATF_POINTER, 2, offsetof(struct PersonalSafetyMessage, animalType), + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AnimalType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "animalType" + }, + { ATF_POINTER, 1, offsetof(struct PersonalSafetyMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + 0, + &asn_DEF_regional_27, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_27, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_27, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_PersonalSafetyMessage_oms_1[] = { 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }; +static const ber_tlv_tag_t asn_DEF_PersonalSafetyMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PersonalSafetyMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secMark */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* accuracy */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* accelSet */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* pathHistory */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* pathPrediction */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* propulsion */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* useState */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* crossRequest */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* crossState */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* clusterSize */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* clusterRadius */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* eventResponderType */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* activityType */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* activitySubType */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* assistType */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* sizing */ + { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* attachment */ + { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 }, /* attachmentRadius */ + { (ASN_TAG_CLASS_CONTEXT | (24 << 2)), 24, 0, 0 }, /* animalType */ + { (ASN_TAG_CLASS_CONTEXT | (25 << 2)), 25, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PersonalSafetyMessage_specs_1 = { + sizeof(struct PersonalSafetyMessage), + offsetof(struct PersonalSafetyMessage, _asn_ctx), + asn_MAP_PersonalSafetyMessage_tag2el_1, + 26, /* Count of tags in the map */ + asn_MAP_PersonalSafetyMessage_oms_1, /* Optional members */ + 18, 0, /* Root/Additions */ + 26, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PersonalSafetyMessage = { + "PersonalSafetyMessage", + "PersonalSafetyMessage", + &asn_OP_SEQUENCE, + asn_DEF_PersonalSafetyMessage_tags_1, + sizeof(asn_DEF_PersonalSafetyMessage_tags_1) + /sizeof(asn_DEF_PersonalSafetyMessage_tags_1[0]), /* 1 */ + asn_DEF_PersonalSafetyMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_PersonalSafetyMessage_tags_1) + /sizeof(asn_DEF_PersonalSafetyMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_PersonalSafetyMessage_1, + 26, /* Elements count */ + &asn_SPC_PersonalSafetyMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PivotPointDescription.c b/src/tmx/Asn_J2735/src/2020/PivotPointDescription.c new file mode 100644 index 000000000..4350032ab --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PivotPointDescription.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PivotPointDescription.h" + +asn_TYPE_member_t asn_MBR_PivotPointDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PivotPointDescription, pivotOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pivotOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct PivotPointDescription, pivotAngle), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_Angle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pivotAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct PivotPointDescription, pivots), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PivotingAllowed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pivots" + }, +}; +static const ber_tlv_tag_t asn_DEF_PivotPointDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PivotPointDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pivotOffset */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pivotAngle */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pivots */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PivotPointDescription_specs_1 = { + sizeof(struct PivotPointDescription), + offsetof(struct PivotPointDescription, _asn_ctx), + asn_MAP_PivotPointDescription_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PivotPointDescription = { + "PivotPointDescription", + "PivotPointDescription", + &asn_OP_SEQUENCE, + asn_DEF_PivotPointDescription_tags_1, + sizeof(asn_DEF_PivotPointDescription_tags_1) + /sizeof(asn_DEF_PivotPointDescription_tags_1[0]), /* 1 */ + asn_DEF_PivotPointDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_PivotPointDescription_tags_1) + /sizeof(asn_DEF_PivotPointDescription_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_PivotPointDescription_1, + 3, /* Elements count */ + &asn_SPC_PivotPointDescription_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PivotingAllowed.c b/src/tmx/Asn_J2735/src/2020/PivotingAllowed.c new file mode 100644 index 000000000..2bffd7207 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PivotingAllowed.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PivotingAllowed.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_PivotingAllowed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PivotingAllowed = { + "PivotingAllowed", + "PivotingAllowed", + &asn_OP_BOOLEAN, + asn_DEF_PivotingAllowed_tags_1, + sizeof(asn_DEF_PivotingAllowed_tags_1) + /sizeof(asn_DEF_PivotingAllowed_tags_1[0]), /* 1 */ + asn_DEF_PivotingAllowed_tags_1, /* Same as above */ + sizeof(asn_DEF_PivotingAllowed_tags_1) + /sizeof(asn_DEF_PivotingAllowed_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BOOLEAN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Position3D-addGrpB.c b/src/tmx/Asn_J2735/src/2020/Position3D-addGrpB.c new file mode 100644 index 000000000..984da2f94 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Position3D-addGrpB.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Position3D-addGrpB.h" + +asn_TYPE_member_t asn_MBR_Position3D_addGrpB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpB, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LatitudeDMS2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpB, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongitudeDMS2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpB, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AddGrpB_Elevation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevation" + }, +}; +static const ber_tlv_tag_t asn_DEF_Position3D_addGrpB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_addGrpB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* elevation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpB_specs_1 = { + sizeof(struct Position3D_addGrpB), + offsetof(struct Position3D_addGrpB, _asn_ctx), + asn_MAP_Position3D_addGrpB_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpB = { + "Position3D-addGrpB", + "Position3D-addGrpB", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_addGrpB_tags_1, + sizeof(asn_DEF_Position3D_addGrpB_tags_1) + /sizeof(asn_DEF_Position3D_addGrpB_tags_1[0]), /* 1 */ + asn_DEF_Position3D_addGrpB_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_addGrpB_tags_1) + /sizeof(asn_DEF_Position3D_addGrpB_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Position3D_addGrpB_1, + 3, /* Elements count */ + &asn_SPC_Position3D_addGrpB_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Position3D-addGrpC.c b/src/tmx/Asn_J2735/src/2020/Position3D-addGrpC.c new file mode 100644 index 000000000..5f939570e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Position3D-addGrpC.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Altitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_addGrpC_specs_1 = { + sizeof(struct Position3D_addGrpC), + offsetof(struct Position3D_addGrpC, _asn_ctx), + asn_MAP_Position3D_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_Position3D_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Position3D.c b/src/tmx/Asn_J2735/src/2020/Position3D.c new file mode 100644 index 000000000..5d0f1fd12 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Position3D.c @@ -0,0 +1,226 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Position3D.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct Position3D__regional), + offsetof(struct Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Latitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Longitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "long" + }, + { ATF_POINTER, 2, offsetof(struct Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_Elevation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 1, offsetof(struct Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Position3D_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Position3D_specs_1 = { + sizeof(struct Position3D), + offsetof(struct Position3D, _asn_ctx), + asn_MAP_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Position3D_tags_1, + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + asn_DEF_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_Position3D_tags_1) + /sizeof(asn_DEF_Position3D_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Position3D_1, + 4, /* Elements count */ + &asn_SPC_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PositionConfidence.c b/src/tmx/Asn_J2735/src/2020/PositionConfidence.c new file mode 100644 index 000000000..7c31c5d65 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PositionConfidence.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PositionConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PositionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_PositionConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 5, "a500m" }, + { 2, 5, "a200m" }, + { 3, 5, "a100m" }, + { 4, 4, "a50m" }, + { 5, 4, "a20m" }, + { 6, 4, "a10m" }, + { 7, 3, "a5m" }, + { 8, 3, "a2m" }, + { 9, 3, "a1m" }, + { 10, 5, "a50cm" }, + { 11, 5, "a20cm" }, + { 12, 5, "a10cm" }, + { 13, 4, "a5cm" }, + { 14, 4, "a2cm" }, + { 15, 4, "a1cm" } +}; +static const unsigned int asn_MAP_PositionConfidence_enum2value_1[] = { + 3, /* a100m(3) */ + 12, /* a10cm(12) */ + 6, /* a10m(6) */ + 15, /* a1cm(15) */ + 9, /* a1m(9) */ + 2, /* a200m(2) */ + 11, /* a20cm(11) */ + 5, /* a20m(5) */ + 14, /* a2cm(14) */ + 8, /* a2m(8) */ + 1, /* a500m(1) */ + 10, /* a50cm(10) */ + 4, /* a50m(4) */ + 13, /* a5cm(13) */ + 7, /* a5m(7) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_PositionConfidence_specs_1 = { + asn_MAP_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PositionConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_PositionConfidence_tags_1, + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidence_tags_1) + /sizeof(asn_DEF_PositionConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PositionConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PositionConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PositionConfidenceSet.c b/src/tmx/Asn_J2735/src/2020/PositionConfidenceSet.c new file mode 100644 index 000000000..1bc94f224 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PositionConfidenceSet.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PositionConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pos" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ElevationConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionConfidenceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pos */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* elevation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionConfidenceSet_specs_1 = { + sizeof(struct PositionConfidenceSet), + offsetof(struct PositionConfidenceSet, _asn_ctx), + asn_MAP_PositionConfidenceSet_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_PositionConfidenceSet_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PositionalAccuracy.c b/src/tmx/Asn_J2735/src/2020/PositionalAccuracy.c new file mode 100644 index 000000000..558ff4937 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PositionalAccuracy.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisAccuracy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMajor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMinorAxisAccuracy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMinor" + }, + { ATF_NOFLAGS, 0, offsetof(struct PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SemiMajorAxisOrientation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "orientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PositionalAccuracy_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinor */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* orientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PositionalAccuracy_specs_1 = { + sizeof(struct PositionalAccuracy), + offsetof(struct PositionalAccuracy, _asn_ctx), + asn_MAP_PositionalAccuracy_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_PositionalAccuracy_tags_1, + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_PositionalAccuracy_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PreemptPriorityList.c b/src/tmx/Asn_J2735/src/2020/PreemptPriorityList.c new file mode 100644 index 000000000..1c0ee9388 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PreemptPriorityList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PreemptPriorityList.h" + +#include "SignalControlZone.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PreemptPriorityList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalControlZone, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PreemptPriorityList_specs_1 = { + sizeof(struct PreemptPriorityList), + offsetof(struct PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PreemptPriorityList_tags_1, + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_PreemptPriorityList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PreemptPriorityList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PreemptPriorityList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PrioritizationResponse.c b/src/tmx/Asn_J2735/src/2020/PrioritizationResponse.c new file mode 100644 index 000000000..d81720c1c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PrioritizationResponse.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "priorState" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalGroup" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrioritizationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* priorState */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroup */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrioritizationResponse_specs_1 = { + sizeof(struct PrioritizationResponse), + offsetof(struct PrioritizationResponse, _asn_ctx), + asn_MAP_PrioritizationResponse_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_PrioritizationResponse_tags_1, + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_PrioritizationResponse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PrioritizationResponseList.c b/src/tmx/Asn_J2735/src/2020/PrioritizationResponseList.c new file mode 100644 index 000000000..6a948a18f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PrioritizationResponseList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PrioritizationResponseList.h" + +#include "PrioritizationResponse.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PrioritizationResponse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PrioritizationResponseList_specs_1 = { + sizeof(struct PrioritizationResponseList), + offsetof(struct PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_PrioritizationResponseList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PrioritizationResponseList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PrioritizationResponseList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PrioritizationResponseStatus.c b/src/tmx/Asn_J2735/src/2020/PrioritizationResponseStatus.c new file mode 100644 index 000000000..615d0c257 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PrioritizationResponseStatus.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PrioritizationResponseStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_PrioritizationResponseStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 9, "requested" }, + { 2, 10, "processing" }, + { 3, 17, "watchOtherTraffic" }, + { 4, 7, "granted" }, + { 5, 8, "rejected" }, + { 6, 11, "maxPresence" }, + { 7, 15, "reserviceLocked" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PrioritizationResponseStatus_enum2value_1[] = { + 4, /* granted(4) */ + 6, /* maxPresence(6) */ + 2, /* processing(2) */ + 5, /* rejected(5) */ + 1, /* requested(1) */ + 7, /* reserviceLocked(7) */ + 0, /* unknown(0) */ + 3 /* watchOtherTraffic(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PrioritizationResponseStatus_specs_1 = { + asn_MAP_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PrioritizationResponseStatus_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PrioritizationResponseStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PrioritizationResponseStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Priority.c b/src/tmx/Asn_J2735/src/2020/Priority.c new file mode 100644 index 000000000..14ba90a89 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Priority.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Priority.h" + +int +Priority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 1UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Priority_constr_1 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Priority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Priority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Priority = { + "Priority", + "Priority", + &asn_OP_OCTET_STRING, + asn_DEF_Priority_tags_1, + sizeof(asn_DEF_Priority_tags_1) + /sizeof(asn_DEF_Priority_tags_1[0]), /* 1 */ + asn_DEF_Priority_tags_1, /* Same as above */ + sizeof(asn_DEF_Priority_tags_1) + /sizeof(asn_DEF_Priority_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Priority_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Priority_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Priority_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PriorityRequestType.c b/src/tmx/Asn_J2735/src/2020/PriorityRequestType.c new file mode 100644 index 000000000..32d2b2508 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PriorityRequestType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PriorityRequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PriorityRequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_PriorityRequestType_value2enum_1[] = { + { 0, 27, "priorityRequestTypeReserved" }, + { 1, 15, "priorityRequest" }, + { 2, 21, "priorityRequestUpdate" }, + { 3, 20, "priorityCancellation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PriorityRequestType_enum2value_1[] = { + 3, /* priorityCancellation(3) */ + 1, /* priorityRequest(1) */ + 0, /* priorityRequestTypeReserved(0) */ + 2 /* priorityRequestUpdate(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PriorityRequestType_specs_1 = { + asn_MAP_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PriorityRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_PriorityRequestType_tags_1, + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_PriorityRequestType_tags_1) + /sizeof(asn_DEF_PriorityRequestType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PriorityRequestType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PriorityRequestType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PrivilegedEventFlags.c b/src/tmx/Asn_J2735/src/2020/PrivilegedEventFlags.c new file mode 100644 index 000000000..675044fc5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PrivilegedEventFlags.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PrivilegedEventFlags.h" + +int +PrivilegedEventFlags_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PrivilegedEventFlags_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PrivilegedEventFlags_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_PrivilegedEventFlags_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PrivilegedEventFlags = { + "PrivilegedEventFlags", + "PrivilegedEventFlags", + &asn_OP_BIT_STRING, + asn_DEF_PrivilegedEventFlags_tags_1, + sizeof(asn_DEF_PrivilegedEventFlags_tags_1) + /sizeof(asn_DEF_PrivilegedEventFlags_tags_1[0]), /* 1 */ + asn_DEF_PrivilegedEventFlags_tags_1, /* Same as above */ + sizeof(asn_DEF_PrivilegedEventFlags_tags_1) + /sizeof(asn_DEF_PrivilegedEventFlags_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PrivilegedEventFlags_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PrivilegedEventFlags_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + PrivilegedEventFlags_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PrivilegedEvents.c b/src/tmx/Asn_J2735/src/2020/PrivilegedEvents.c new file mode 100644 index 000000000..f23c91d25 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PrivilegedEvents.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PrivilegedEvents.h" + +asn_TYPE_member_t asn_MBR_PrivilegedEvents_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrivilegedEvents, notUsed), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSPindex, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "notUsed" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrivilegedEvents, event), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrivilegedEventFlags, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "event" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrivilegedEvents_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrivilegedEvents_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* notUsed */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* event */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrivilegedEvents_specs_1 = { + sizeof(struct PrivilegedEvents), + offsetof(struct PrivilegedEvents, _asn_ctx), + asn_MAP_PrivilegedEvents_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PrivilegedEvents = { + "PrivilegedEvents", + "PrivilegedEvents", + &asn_OP_SEQUENCE, + asn_DEF_PrivilegedEvents_tags_1, + sizeof(asn_DEF_PrivilegedEvents_tags_1) + /sizeof(asn_DEF_PrivilegedEvents_tags_1[0]), /* 1 */ + asn_DEF_PrivilegedEvents_tags_1, /* Same as above */ + sizeof(asn_DEF_PrivilegedEvents_tags_1) + /sizeof(asn_DEF_PrivilegedEvents_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_PrivilegedEvents_1, + 2, /* Elements count */ + &asn_SPC_PrivilegedEvents_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ProbeDataManagement.c b/src/tmx/Asn_J2735/src/2020/ProbeDataManagement.c new file mode 100644 index 000000000..b3c4e6dd0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ProbeDataManagement.c @@ -0,0 +1,469 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ProbeDataManagement.h" + +#include "VehicleStatusRequestList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_term_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_term_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_snapshot_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_snapshot_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_13 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_13 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_term_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProbeDataManagement__term, choice.termtime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TermTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "termtime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProbeDataManagement__term, choice.termDistance), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TermDistance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "termDistance" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_term_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* termtime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* termDistance */ +}; +static asn_CHOICE_specifics_t asn_SPC_term_specs_5 = { + sizeof(struct ProbeDataManagement__term), + offsetof(struct ProbeDataManagement__term, _asn_ctx), + offsetof(struct ProbeDataManagement__term, present), + sizeof(((struct ProbeDataManagement__term *)0)->present), + asn_MAP_term_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_term_5 = { + "term", + "term", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_term_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_term_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_term_5, + 2, /* Elements count */ + &asn_SPC_term_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_snapshot_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct ProbeDataManagement__snapshot, choice.snapshotTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SnapshotTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "snapshotTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProbeDataManagement__snapshot, choice.snapshotDistance), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SnapshotDistance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "snapshotDistance" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_snapshot_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* snapshotTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* snapshotDistance */ +}; +static asn_CHOICE_specifics_t asn_SPC_snapshot_specs_8 = { + sizeof(struct ProbeDataManagement__snapshot), + offsetof(struct ProbeDataManagement__snapshot, _asn_ctx), + offsetof(struct ProbeDataManagement__snapshot, present), + sizeof(((struct ProbeDataManagement__snapshot *)0)->present), + asn_MAP_snapshot_tag2el_8, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_snapshot_8 = { + "snapshot", + "snapshot", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_snapshot_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_snapshot_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_snapshot_8, + 2, /* Elements count */ + &asn_SPC_snapshot_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_13[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ProbeDataManagement, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_13 = { + sizeof(struct ProbeDataManagement__regional), + offsetof(struct ProbeDataManagement__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_13 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_13, + sizeof(asn_DEF_regional_tags_13) + /sizeof(asn_DEF_regional_tags_13[0]) - 1, /* 1 */ + asn_DEF_regional_tags_13, /* Same as above */ + sizeof(asn_DEF_regional_tags_13) + /sizeof(asn_DEF_regional_tags_13[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_13, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_13, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_13, + 1, /* Single element */ + &asn_SPC_regional_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProbeDataManagement_1[] = { + { ATF_POINTER, 1, offsetof(struct ProbeDataManagement, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProbeDataManagement, sample), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Sample, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sample" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProbeDataManagement, directions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingSlice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "directions" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProbeDataManagement, term), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_term_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "term" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProbeDataManagement, snapshot), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_snapshot_8, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "snapshot" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProbeDataManagement, txInterval), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecondOfTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "txInterval" + }, + { ATF_POINTER, 2, offsetof(struct ProbeDataManagement, dataElements), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleStatusRequestList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dataElements" + }, + { ATF_POINTER, 1, offsetof(struct ProbeDataManagement, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_13, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_13, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ProbeDataManagement_oms_1[] = { 0, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ProbeDataManagement_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProbeDataManagement_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sample */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* directions */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* term */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* snapshot */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* txInterval */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dataElements */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProbeDataManagement_specs_1 = { + sizeof(struct ProbeDataManagement), + offsetof(struct ProbeDataManagement, _asn_ctx), + asn_MAP_ProbeDataManagement_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ProbeDataManagement_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProbeDataManagement = { + "ProbeDataManagement", + "ProbeDataManagement", + &asn_OP_SEQUENCE, + asn_DEF_ProbeDataManagement_tags_1, + sizeof(asn_DEF_ProbeDataManagement_tags_1) + /sizeof(asn_DEF_ProbeDataManagement_tags_1[0]), /* 1 */ + asn_DEF_ProbeDataManagement_tags_1, /* Same as above */ + sizeof(asn_DEF_ProbeDataManagement_tags_1) + /sizeof(asn_DEF_ProbeDataManagement_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ProbeDataManagement_1, + 8, /* Elements count */ + &asn_SPC_ProbeDataManagement_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ProbeSegmentNumber.c b/src/tmx/Asn_J2735/src/2020/ProbeSegmentNumber.c new file mode 100644 index 000000000..ef8b7b015 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ProbeSegmentNumber.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ProbeSegmentNumber.h" + +int +ProbeSegmentNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ProbeSegmentNumber_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ProbeSegmentNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ProbeSegmentNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProbeSegmentNumber = { + "ProbeSegmentNumber", + "ProbeSegmentNumber", + &asn_OP_NativeInteger, + asn_DEF_ProbeSegmentNumber_tags_1, + sizeof(asn_DEF_ProbeSegmentNumber_tags_1) + /sizeof(asn_DEF_ProbeSegmentNumber_tags_1[0]), /* 1 */ + asn_DEF_ProbeSegmentNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ProbeSegmentNumber_tags_1) + /sizeof(asn_DEF_ProbeSegmentNumber_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ProbeSegmentNumber_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ProbeSegmentNumber_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ProbeSegmentNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ProbeVehicleData.c b/src/tmx/Asn_J2735/src/2020/ProbeVehicleData.c new file mode 100644 index 000000000..3ba525c4a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ProbeVehicleData.c @@ -0,0 +1,385 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ProbeVehicleData.h" + +#include "VehicleIdent.h" +#include "Snapshot.h" +#include "RegionalExtension.h" +static int +memb_snapshots_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 32UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_snapshots_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_snapshots_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_snapshots_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_snapshots_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_snapshots_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Snapshot, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_snapshots_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_snapshots_specs_7 = { + sizeof(struct ProbeVehicleData__snapshots), + offsetof(struct ProbeVehicleData__snapshots, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_snapshots_7 = { + "snapshots", + "snapshots", + &asn_OP_SEQUENCE_OF, + asn_DEF_snapshots_tags_7, + sizeof(asn_DEF_snapshots_tags_7) + /sizeof(asn_DEF_snapshots_tags_7[0]) - 1, /* 1 */ + asn_DEF_snapshots_tags_7, /* Same as above */ + sizeof(asn_DEF_snapshots_tags_7) + /sizeof(asn_DEF_snapshots_tags_7[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_snapshots_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_snapshots_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_snapshots_7, + 1, /* Single element */ + &asn_SPC_snapshots_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_ProbeVehicleData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct ProbeVehicleData__regional), + offsetof(struct ProbeVehicleData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_9, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_9, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProbeVehicleData_1[] = { + { ATF_POINTER, 3, offsetof(struct ProbeVehicleData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct ProbeVehicleData, segNum), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProbeSegmentNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "segNum" + }, + { ATF_POINTER, 1, offsetof(struct ProbeVehicleData, probeID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleIdent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "probeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProbeVehicleData, startVector), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startVector" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProbeVehicleData, vehicleType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleClassification, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ProbeVehicleData, snapshots), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_snapshots_7, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_snapshots_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_snapshots_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_snapshots_constraint_1 + }, + 0, 0, /* No default value */ + "snapshots" + }, + { ATF_POINTER, 1, offsetof(struct ProbeVehicleData, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_9, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_9, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ProbeVehicleData_oms_1[] = { 0, 1, 2, 6 }; +static const ber_tlv_tag_t asn_DEF_ProbeVehicleData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ProbeVehicleData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* segNum */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* probeID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* startVector */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* snapshots */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ProbeVehicleData_specs_1 = { + sizeof(struct ProbeVehicleData), + offsetof(struct ProbeVehicleData, _asn_ctx), + asn_MAP_ProbeVehicleData_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ProbeVehicleData_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ProbeVehicleData = { + "ProbeVehicleData", + "ProbeVehicleData", + &asn_OP_SEQUENCE, + asn_DEF_ProbeVehicleData_tags_1, + sizeof(asn_DEF_ProbeVehicleData_tags_1) + /sizeof(asn_DEF_ProbeVehicleData_tags_1[0]), /* 1 */ + asn_DEF_ProbeVehicleData_tags_1, /* Same as above */ + sizeof(asn_DEF_ProbeVehicleData_tags_1) + /sizeof(asn_DEF_ProbeVehicleData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ProbeVehicleData_1, + 7, /* Elements count */ + &asn_SPC_ProbeVehicleData_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PropelledInformation.c b/src/tmx/Asn_J2735/src/2020/PropelledInformation.c new file mode 100644 index 000000000..74597615e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PropelledInformation.c @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PropelledInformation.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PropelledInformation_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PropelledInformation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_PropelledInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PropelledInformation, choice.human), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HumanPropelledType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "human" + }, + { ATF_NOFLAGS, 0, offsetof(struct PropelledInformation, choice.animal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AnimalPropelledType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "animal" + }, + { ATF_NOFLAGS, 0, offsetof(struct PropelledInformation, choice.motor), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MotorizedPropelledType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "motor" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_PropelledInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* human */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* animal */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* motor */ +}; +asn_CHOICE_specifics_t asn_SPC_PropelledInformation_specs_1 = { + sizeof(struct PropelledInformation), + offsetof(struct PropelledInformation, _asn_ctx), + offsetof(struct PropelledInformation, present), + sizeof(((struct PropelledInformation *)0)->present), + asn_MAP_PropelledInformation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_PropelledInformation = { + "PropelledInformation", + "PropelledInformation", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PropelledInformation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PropelledInformation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_PropelledInformation_1, + 3, /* Elements count */ + &asn_SPC_PropelledInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PublicSafetyAndRoadWorkerActivity.c b/src/tmx/Asn_J2735/src/2020/PublicSafetyAndRoadWorkerActivity.c new file mode 100644 index 000000000..3f0a124cd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PublicSafetyAndRoadWorkerActivity.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PublicSafetyAndRoadWorkerActivity.h" + +int +PublicSafetyAndRoadWorkerActivity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 6UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PublicSafetyAndRoadWorkerActivity_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PublicSafetyAndRoadWorkerActivity_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 6, 6 } /* (SIZE(6..6,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_PublicSafetyAndRoadWorkerActivity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PublicSafetyAndRoadWorkerActivity = { + "PublicSafetyAndRoadWorkerActivity", + "PublicSafetyAndRoadWorkerActivity", + &asn_OP_BIT_STRING, + asn_DEF_PublicSafetyAndRoadWorkerActivity_tags_1, + sizeof(asn_DEF_PublicSafetyAndRoadWorkerActivity_tags_1) + /sizeof(asn_DEF_PublicSafetyAndRoadWorkerActivity_tags_1[0]), /* 1 */ + asn_DEF_PublicSafetyAndRoadWorkerActivity_tags_1, /* Same as above */ + sizeof(asn_DEF_PublicSafetyAndRoadWorkerActivity_tags_1) + /sizeof(asn_DEF_PublicSafetyAndRoadWorkerActivity_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PublicSafetyAndRoadWorkerActivity_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PublicSafetyAndRoadWorkerActivity_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + PublicSafetyAndRoadWorkerActivity_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PublicSafetyDirectingTrafficSubType.c b/src/tmx/Asn_J2735/src/2020/PublicSafetyDirectingTrafficSubType.c new file mode 100644 index 000000000..0736d68fd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PublicSafetyDirectingTrafficSubType.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PublicSafetyDirectingTrafficSubType.h" + +int +PublicSafetyDirectingTrafficSubType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 7UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PublicSafetyDirectingTrafficSubType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PublicSafetyDirectingTrafficSubType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 7, 7 } /* (SIZE(7..7,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_PublicSafetyDirectingTrafficSubType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PublicSafetyDirectingTrafficSubType = { + "PublicSafetyDirectingTrafficSubType", + "PublicSafetyDirectingTrafficSubType", + &asn_OP_BIT_STRING, + asn_DEF_PublicSafetyDirectingTrafficSubType_tags_1, + sizeof(asn_DEF_PublicSafetyDirectingTrafficSubType_tags_1) + /sizeof(asn_DEF_PublicSafetyDirectingTrafficSubType_tags_1[0]), /* 1 */ + asn_DEF_PublicSafetyDirectingTrafficSubType_tags_1, /* Same as above */ + sizeof(asn_DEF_PublicSafetyDirectingTrafficSubType_tags_1) + /sizeof(asn_DEF_PublicSafetyDirectingTrafficSubType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PublicSafetyDirectingTrafficSubType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PublicSafetyDirectingTrafficSubType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + PublicSafetyDirectingTrafficSubType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/PublicSafetyEventResponderWorkerType.c b/src/tmx/Asn_J2735/src/2020/PublicSafetyEventResponderWorkerType.c new file mode 100644 index 000000000..bb63c5061 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/PublicSafetyEventResponderWorkerType.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "PublicSafetyEventResponderWorkerType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_PublicSafetyEventResponderWorkerType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_PublicSafetyEventResponderWorkerType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_PublicSafetyEventResponderWorkerType_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "towOperater" }, + { 2, 16, "fireAndEMSWorker" }, + { 3, 10, "aDOTWorker" }, + { 4, 14, "lawEnforcement" }, + { 5, 15, "hazmatResponder" }, + { 6, 19, "animalControlWorker" }, + { 7, 14, "otherPersonnel" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PublicSafetyEventResponderWorkerType_enum2value_1[] = { + 3, /* aDOTWorker(3) */ + 6, /* animalControlWorker(6) */ + 2, /* fireAndEMSWorker(2) */ + 5, /* hazmatResponder(5) */ + 4, /* lawEnforcement(4) */ + 7, /* otherPersonnel(7) */ + 1, /* towOperater(1) */ + 0 /* unavailable(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_PublicSafetyEventResponderWorkerType_specs_1 = { + asn_MAP_PublicSafetyEventResponderWorkerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PublicSafetyEventResponderWorkerType_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PublicSafetyEventResponderWorkerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PublicSafetyEventResponderWorkerType = { + "PublicSafetyEventResponderWorkerType", + "PublicSafetyEventResponderWorkerType", + &asn_OP_NativeEnumerated, + asn_DEF_PublicSafetyEventResponderWorkerType_tags_1, + sizeof(asn_DEF_PublicSafetyEventResponderWorkerType_tags_1) + /sizeof(asn_DEF_PublicSafetyEventResponderWorkerType_tags_1[0]), /* 1 */ + asn_DEF_PublicSafetyEventResponderWorkerType_tags_1, /* Same as above */ + sizeof(asn_DEF_PublicSafetyEventResponderWorkerType_tags_1) + /sizeof(asn_DEF_PublicSafetyEventResponderWorkerType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_PublicSafetyEventResponderWorkerType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_PublicSafetyEventResponderWorkerType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PublicSafetyEventResponderWorkerType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RTCM-Revision.c b/src/tmx/Asn_J2735/src/2020/RTCM-Revision.c new file mode 100644 index 000000000..f3b94fdf9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RTCM-Revision.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "RTCMcorrections" + * found in "J2735-RTCMcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RTCM-Revision.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RTCM_Revision_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RTCM_Revision_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "rtcmRev2" }, + { 2, 8, "rtcmRev3" }, + { 3, 8, "reserved" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RTCM_Revision_enum2value_1[] = { + 3, /* reserved(3) */ + 1, /* rtcmRev2(1) */ + 2, /* rtcmRev3(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RTCM_Revision_specs_1 = { + asn_MAP_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RTCM_Revision_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_RTCM_Revision_tags_1, + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCM_Revision_tags_1) + /sizeof(asn_DEF_RTCM_Revision_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RTCM_Revision_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RTCM_Revision_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RTCMPackage.c b/src/tmx/Asn_J2735/src/2020/RTCMPackage.c new file mode 100644 index 000000000..62cff2c08 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RTCMPackage.c @@ -0,0 +1,87 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RTCMPackage.h" + +#include "RTCMheader.h" +asn_TYPE_member_t asn_MBR_RTCMPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct RTCMPackage, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMheader, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rtcmHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMPackage, msgs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMmessageList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgs" + }, +}; +static const int asn_MAP_RTCMPackage_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RTCMPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rtcmHeader */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* msgs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMPackage_specs_1 = { + sizeof(struct RTCMPackage), + offsetof(struct RTCMPackage, _asn_ctx), + asn_MAP_RTCMPackage_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RTCMPackage_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMPackage = { + "RTCMPackage", + "RTCMPackage", + &asn_OP_SEQUENCE, + asn_DEF_RTCMPackage_tags_1, + sizeof(asn_DEF_RTCMPackage_tags_1) + /sizeof(asn_DEF_RTCMPackage_tags_1[0]), /* 1 */ + asn_DEF_RTCMPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMPackage_tags_1) + /sizeof(asn_DEF_RTCMPackage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RTCMPackage_1, + 2, /* Elements count */ + &asn_SPC_RTCMPackage_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RTCMcorrections.c b/src/tmx/Asn_J2735/src/2020/RTCMcorrections.c new file mode 100644 index 000000000..b63e8c6c9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RTCMcorrections.c @@ -0,0 +1,282 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "RTCMcorrections" + * found in "J2735-RTCMcorrections.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RTCMcorrections.h" + +#include "FullPositionVector.h" +#include "RTCMheader.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RTCMcorrections, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_8 = { + sizeof(struct RTCMcorrections__regional), + offsetof(struct RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_8, + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_regional_tags_8) + /sizeof(asn_DEF_regional_tags_8[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_8, + 1, /* Single element */ + &asn_SPC_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCM_Revision, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rev" + }, + { ATF_POINTER, 3, offsetof(struct RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "anchorPoint" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMheader, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rtcmHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMmessageList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgs" + }, + { ATF_POINTER, 1, offsetof(struct RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_regional_8, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMcorrections_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rev */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* anchorPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rtcmHeader */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* msgs */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMcorrections_specs_1 = { + sizeof(struct RTCMcorrections), + offsetof(struct RTCMcorrections, _asn_ctx), + asn_MAP_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_RTCMcorrections_tags_1, + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMcorrections_tags_1) + /sizeof(asn_DEF_RTCMcorrections_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RTCMheader.c b/src/tmx/Asn_J2735/src/2020/RTCMheader.c new file mode 100644 index 000000000..db12733bb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RTCMheader.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RTCMheader.h" + +asn_TYPE_member_t asn_MBR_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNSSstatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "status" + }, + { ATF_NOFLAGS, 0, offsetof(struct RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AntennaOffsetSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offsetSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RTCMheader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* offsetSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RTCMheader_specs_1 = { + sizeof(struct RTCMheader), + offsetof(struct RTCMheader, _asn_ctx), + asn_MAP_RTCMheader_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_RTCMheader_tags_1, + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMheader_tags_1) + /sizeof(asn_DEF_RTCMheader_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RTCMmessage.c b/src/tmx/Asn_J2735/src/2020/RTCMmessage.c new file mode 100644 index 000000000..25ba103f5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RTCMmessage.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RTCMmessage.h" + +int +RTCMmessage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 1023UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1023)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RTCMmessage_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (SIZE(1..1023)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_RTCMmessage_tags_1, + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessage_tags_1) + /sizeof(asn_DEF_RTCMmessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RTCMmessage_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RTCMmessage_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RTCMmessage_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RTCMmessageList.c b/src/tmx/Asn_J2735/src/2020/RTCMmessageList.c new file mode 100644 index 000000000..4105a8159 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RTCMmessageList.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RTCMmessageList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RTCMmessageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RTCMmessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RTCMmessageList_specs_1 = { + sizeof(struct RTCMmessageList), + offsetof(struct RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RTCMmessageList_tags_1, + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_RTCMmessageList_tags_1) + /sizeof(asn_DEF_RTCMmessageList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RTCMmessageList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RTCMmessageList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Radius-B12.c b/src/tmx/Asn_J2735/src/2020/Radius-B12.c new file mode 100644 index 000000000..ca3948dba --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Radius-B12.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Radius-B12.h" + +int +Radius_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 4095L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Radius_B12_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Radius_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Radius_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Radius_B12 = { + "Radius-B12", + "Radius-B12", + &asn_OP_NativeInteger, + asn_DEF_Radius_B12_tags_1, + sizeof(asn_DEF_Radius_B12_tags_1) + /sizeof(asn_DEF_Radius_B12_tags_1[0]), /* 1 */ + asn_DEF_Radius_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Radius_B12_tags_1) + /sizeof(asn_DEF_Radius_B12_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Radius_B12_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Radius_B12_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Radius_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RadiusOfCurvature.c b/src/tmx/Asn_J2735/src/2020/RadiusOfCurvature.c new file mode 100644 index 000000000..e0ffeba25 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RadiusOfCurvature.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RadiusOfCurvature.h" + +int +RadiusOfCurvature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RadiusOfCurvature_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RadiusOfCurvature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RadiusOfCurvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RadiusOfCurvature = { + "RadiusOfCurvature", + "RadiusOfCurvature", + &asn_OP_NativeInteger, + asn_DEF_RadiusOfCurvature_tags_1, + sizeof(asn_DEF_RadiusOfCurvature_tags_1) + /sizeof(asn_DEF_RadiusOfCurvature_tags_1[0]), /* 1 */ + asn_DEF_RadiusOfCurvature_tags_1, /* Same as above */ + sizeof(asn_DEF_RadiusOfCurvature_tags_1) + /sizeof(asn_DEF_RadiusOfCurvature_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RadiusOfCurvature_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RadiusOfCurvature_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RadiusOfCurvature_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RainSensor.c b/src/tmx/Asn_J2735/src/2020/RainSensor.c new file mode 100644 index 000000000..475f94bcf --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RainSensor.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RainSensor.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RainSensor_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RainSensor_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RainSensor_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 9, "lightMist" }, + { 2, 9, "heavyMist" }, + { 3, 18, "lightRainOrDrizzle" }, + { 4, 4, "rain" }, + { 5, 12, "moderateRain" }, + { 6, 9, "heavyRain" }, + { 7, 13, "heavyDownpour" } +}; +static const unsigned int asn_MAP_RainSensor_enum2value_1[] = { + 7, /* heavyDownpour(7) */ + 2, /* heavyMist(2) */ + 6, /* heavyRain(6) */ + 1, /* lightMist(1) */ + 3, /* lightRainOrDrizzle(3) */ + 5, /* moderateRain(5) */ + 0, /* none(0) */ + 4 /* rain(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RainSensor_specs_1 = { + asn_MAP_RainSensor_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RainSensor_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RainSensor_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RainSensor = { + "RainSensor", + "RainSensor", + &asn_OP_NativeEnumerated, + asn_DEF_RainSensor_tags_1, + sizeof(asn_DEF_RainSensor_tags_1) + /sizeof(asn_DEF_RainSensor_tags_1[0]), /* 1 */ + asn_DEF_RainSensor_tags_1, /* Same as above */ + sizeof(asn_DEF_RainSensor_tags_1) + /sizeof(asn_DEF_RainSensor_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RainSensor_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RainSensor_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RainSensor_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RegionId.c b/src/tmx/Asn_J2735/src/2020/RegionId.c new file mode 100644 index 000000000..3a1cec8ed --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RegionId.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RegionId.h" + +int +RegionId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RegionId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RegionId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_RegionId_tags_1, + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + asn_DEF_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionId_tags_1) + /sizeof(asn_DEF_RegionId_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RegionId_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RegionId_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RegionId_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RegionList.c b/src/tmx/Asn_J2735/src/2020/RegionList.c new file mode 100644 index 000000000..5dc946ac0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RegionList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RegionList.h" + +#include "RegionOffsets.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RegionList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RegionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RegionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RegionOffsets, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RegionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RegionList_specs_1 = { + sizeof(struct RegionList), + offsetof(struct RegionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RegionList = { + "RegionList", + "RegionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RegionList_tags_1, + sizeof(asn_DEF_RegionList_tags_1) + /sizeof(asn_DEF_RegionList_tags_1[0]), /* 1 */ + asn_DEF_RegionList_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionList_tags_1) + /sizeof(asn_DEF_RegionList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RegionList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RegionList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RegionList_1, + 1, /* Single element */ + &asn_SPC_RegionList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RegionOffsets.c b/src/tmx/Asn_J2735/src/2020/RegionOffsets.c new file mode 100644 index 000000000..f81e51583 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RegionOffsets.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RegionOffsets.h" + +asn_TYPE_member_t asn_MBR_RegionOffsets_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegionOffsets, xOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "xOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegionOffsets, yOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yOffset" + }, + { ATF_POINTER, 1, offsetof(struct RegionOffsets, zOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetLL_B16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zOffset" + }, +}; +static const int asn_MAP_RegionOffsets_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_RegionOffsets_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RegionOffsets_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xOffset */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yOffset */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zOffset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RegionOffsets_specs_1 = { + sizeof(struct RegionOffsets), + offsetof(struct RegionOffsets, _asn_ctx), + asn_MAP_RegionOffsets_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RegionOffsets_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegionOffsets = { + "RegionOffsets", + "RegionOffsets", + &asn_OP_SEQUENCE, + asn_DEF_RegionOffsets_tags_1, + sizeof(asn_DEF_RegionOffsets_tags_1) + /sizeof(asn_DEF_RegionOffsets_tags_1[0]), /* 1 */ + asn_DEF_RegionOffsets_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionOffsets_tags_1) + /sizeof(asn_DEF_RegionOffsets_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RegionOffsets_1, + 3, /* Elements count */ + &asn_SPC_RegionOffsets_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RegionPointSet.c b/src/tmx/Asn_J2735/src/2020/RegionPointSet.c new file mode 100644 index 000000000..7e3822ba7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RegionPointSet.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RegionPointSet.h" + +#include "Position3D.h" +asn_TYPE_member_t asn_MBR_RegionPointSet_1[] = { + { ATF_POINTER, 2, offsetof(struct RegionPointSet, anchor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "anchor" + }, + { ATF_POINTER, 1, offsetof(struct RegionPointSet, scale), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Zoom, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "scale" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegionPointSet, nodeList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodeList" + }, +}; +static const int asn_MAP_RegionPointSet_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RegionPointSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RegionPointSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* anchor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scale */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nodeList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RegionPointSet_specs_1 = { + sizeof(struct RegionPointSet), + offsetof(struct RegionPointSet, _asn_ctx), + asn_MAP_RegionPointSet_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RegionPointSet_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegionPointSet = { + "RegionPointSet", + "RegionPointSet", + &asn_OP_SEQUENCE, + asn_DEF_RegionPointSet_tags_1, + sizeof(asn_DEF_RegionPointSet_tags_1) + /sizeof(asn_DEF_RegionPointSet_tags_1[0]), /* 1 */ + asn_DEF_RegionPointSet_tags_1, /* Same as above */ + sizeof(asn_DEF_RegionPointSet_tags_1) + /sizeof(asn_DEF_RegionPointSet_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RegionPointSet_1, + 3, /* Elements count */ + &asn_SPC_RegionPointSet_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RegionalExtension.c b/src/tmx/Asn_J2735/src/2020/RegionalExtension.c new file mode 100644 index 000000000..6c013e05b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RegionalExtension.c @@ -0,0 +1,11120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RegionalExtension.h" + +static const long asn_VAL_3_addGrpB = 2; +static const asn_ioc_cell_t asn_IOS_Reg_LaneDataAttribute_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_3_addGrpB }, + { "&Type", aioc__type, &asn_DEF_LaneDataAttribute_addGrpB } +}; +static const asn_ioc_set_t asn_IOS_Reg_LaneDataAttribute_1[] = { + { 1, 2, asn_IOS_Reg_LaneDataAttribute_1_rows } +}; +static const long asn_VAL_5_addGrpB = 2; +static const asn_ioc_cell_t asn_IOS_Reg_NodeOffsetPointXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_5_addGrpB }, + { "&Type", aioc__type, &asn_DEF_NodeOffsetPointXY_addGrpB } +}; +static const asn_ioc_set_t asn_IOS_Reg_NodeOffsetPointXY_1[] = { + { 1, 2, asn_IOS_Reg_NodeOffsetPointXY_1_rows } +}; +static const long asn_VAL_6_addGrpB = 2; +static const long asn_VAL_7_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_6_addGrpB }, + { "&Type", aioc__type, &asn_DEF_Position3D_addGrpB }, + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_7_addGrpC }, + { "&Type", aioc__type, &asn_DEF_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_Position3D_1[] = { + { 2, 2, asn_IOS_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_9_addGrpC }, + { "&Type", aioc__type, &asn_DEF_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_MapData_1[] = { + { 1, 2, asn_IOS_Reg_MapData_1_rows } +}; +static const long asn_VAL_8_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_8_addGrpC }, + { "&Type", aioc__type, &asn_DEF_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_1_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_1_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_2_addGrpC }, + { "&Type", aioc__type, &asn_DEF_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_addGrpB = 2; +static const asn_ioc_cell_t asn_IOS_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_RegionId, &asn_VAL_4_addGrpB }, + { "&Type", aioc__type, &asn_DEF_MovementEvent_addGrpB } +}; +static const asn_ioc_set_t asn_IOS_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_Reg_MovementEvent_1_rows } +}; +static int +memb_regionId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_LaneDataAttribute_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_LaneDataAttribute_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_LaneDataAttribute, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_NodeOffsetPointXY_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_NodeOffsetPointXY_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_NodeOffsetPointXY, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_Position3D_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_Position3D_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_Position3D, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MapData_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MapData_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MapData, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RestrictionUserType_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_RestrictionUserType_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_RestrictionUserType, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_82(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_82(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_88(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_88(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_91(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_91(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_94(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_94(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_100(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_100(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_103(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_103(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_106(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_106(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_ConnectionManeuverAssist_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_ConnectionManeuverAssist_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_ConnectionManeuverAssist, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_112(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_IntersectionState_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_IntersectionState_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_IntersectionState, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_112(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_115(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MovementEvent_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Reg_MovementEvent_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Reg_MovementEvent, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_regExtValue_constraint_115(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_118(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_118(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_124(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_124(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_127(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_127(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_130(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_130(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_136(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_136(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_139(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_139(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_142(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_142(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_148(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_148(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_151(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_151(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_154(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_154(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_160(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_160(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_163(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_163(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_166(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_166(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_172(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_172(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_175(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_175(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_178(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_178(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_regionId_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regExtValue_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_17 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_23 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_26 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_29 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_30 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_32 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_35 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_38 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_39 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_41 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_42 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_44 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_44 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_47 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_50 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_53 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_54 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_56 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_59 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_62 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_65 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_65 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_66 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_68 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_69 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_71 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_74 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_75 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_77 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_77 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_78 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_78 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_80 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_81 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_83 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_83 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_84 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_84 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_86 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_86 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_87 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_87 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_89 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_89 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_90 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_90 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_92 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_92 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_93 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_93 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_95 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_95 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_96 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_96 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_98 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_98 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_99 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_99 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_101 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_101 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_102 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_102 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_104 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_104 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_105 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_105 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_107 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_107 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_108 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_108 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_110 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_110 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_111 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_111 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_113 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_113 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_114 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_114 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_116 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_116 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_117 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_117 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_119 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_119 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_120 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_120 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_122 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_122 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_123 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_123 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_125 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_125 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_126 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_126 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_128 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_128 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_129 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_129 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_131 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_131 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_132 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_132 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_134 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_134 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_135 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_135 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_137 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_137 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_138 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_138 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_140 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_140 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_141 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_141 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_143 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_143 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_144 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_144 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_146 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_146 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_147 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_147 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_149 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_149 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_150 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_150 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_152 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_152 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_153 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_153 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_155 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_155 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_156 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_156 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_158 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_158 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_159 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_159 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_161 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_161 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_162 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_162 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_164 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_164 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_165 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_165 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_167 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_167 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_168 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_168 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_170 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_170 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_171 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_171 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_173 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_173 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_174 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_174 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_176 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_176 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_177 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_177 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_179 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_179 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_180 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_180 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regionId_constr_182 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regionId_constr_182 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regExtValue_constr_183 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regExtValue_constr_183 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_3 = { + sizeof(struct Reg_BasicSafetyMessage__regExtValue), + offsetof(struct Reg_BasicSafetyMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_BasicSafetyMessage__regExtValue, present), + sizeof(((struct Reg_BasicSafetyMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_3 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_BasicSafetyMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_BasicSafetyMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_1 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_BasicSafetyMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_1 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_BasicSafetyMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_BasicSafetyMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_BasicSafetyMessage_specs_1 = { + sizeof(struct Reg_BasicSafetyMessage), + offsetof(struct Reg_BasicSafetyMessage, _asn_ctx), + asn_MAP_Reg_BasicSafetyMessage_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_BasicSafetyMessage = { + "Reg-BasicSafetyMessage", + "Reg-BasicSafetyMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_BasicSafetyMessage_tags_1, + sizeof(asn_DEF_Reg_BasicSafetyMessage_tags_1) + /sizeof(asn_DEF_Reg_BasicSafetyMessage_tags_1[0]), /* 1 */ + asn_DEF_Reg_BasicSafetyMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_Reg_BasicSafetyMessage_tags_1) + /sizeof(asn_DEF_Reg_BasicSafetyMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_BasicSafetyMessage_1, + 2, /* Elements count */ + &asn_SPC_Reg_BasicSafetyMessage_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_6 = { + sizeof(struct Reg_EventDescription__regExtValue), + offsetof(struct Reg_EventDescription__regExtValue, _asn_ctx), + offsetof(struct Reg_EventDescription__regExtValue, present), + sizeof(((struct Reg_EventDescription__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_6 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_EventDescription_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_EventDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_4 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_EventDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_6, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_4 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_EventDescription_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_EventDescription_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_EventDescription_specs_4 = { + sizeof(struct Reg_EventDescription), + offsetof(struct Reg_EventDescription, _asn_ctx), + asn_MAP_Reg_EventDescription_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_EventDescription = { + "Reg-EventDescription", + "Reg-EventDescription", + &asn_OP_SEQUENCE, + asn_DEF_Reg_EventDescription_tags_4, + sizeof(asn_DEF_Reg_EventDescription_tags_4) + /sizeof(asn_DEF_Reg_EventDescription_tags_4[0]), /* 1 */ + asn_DEF_Reg_EventDescription_tags_4, /* Same as above */ + sizeof(asn_DEF_Reg_EventDescription_tags_4) + /sizeof(asn_DEF_Reg_EventDescription_tags_4[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_EventDescription_4, + 2, /* Elements count */ + &asn_SPC_Reg_EventDescription_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_9 = { + sizeof(struct Reg_SupplementalVehicleExtensions__regExtValue), + offsetof(struct Reg_SupplementalVehicleExtensions__regExtValue, _asn_ctx), + offsetof(struct Reg_SupplementalVehicleExtensions__regExtValue, present), + sizeof(((struct Reg_SupplementalVehicleExtensions__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_9 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SupplementalVehicleExtensions_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SupplementalVehicleExtensions, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_8, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_8, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_7 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SupplementalVehicleExtensions, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_9, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_9, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_9, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_7 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SupplementalVehicleExtensions_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SupplementalVehicleExtensions_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SupplementalVehicleExtensions_specs_7 = { + sizeof(struct Reg_SupplementalVehicleExtensions), + offsetof(struct Reg_SupplementalVehicleExtensions, _asn_ctx), + asn_MAP_Reg_SupplementalVehicleExtensions_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SupplementalVehicleExtensions = { + "Reg-SupplementalVehicleExtensions", + "Reg-SupplementalVehicleExtensions", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SupplementalVehicleExtensions_tags_7, + sizeof(asn_DEF_Reg_SupplementalVehicleExtensions_tags_7) + /sizeof(asn_DEF_Reg_SupplementalVehicleExtensions_tags_7[0]), /* 1 */ + asn_DEF_Reg_SupplementalVehicleExtensions_tags_7, /* Same as above */ + sizeof(asn_DEF_Reg_SupplementalVehicleExtensions_tags_7) + /sizeof(asn_DEF_Reg_SupplementalVehicleExtensions_tags_7[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_SupplementalVehicleExtensions_7, + 2, /* Elements count */ + &asn_SPC_Reg_SupplementalVehicleExtensions_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_12 = { + sizeof(struct Reg_ComputedLane__regExtValue), + offsetof(struct Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct Reg_ComputedLane__regExtValue, present), + sizeof(((struct Reg_ComputedLane__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_12 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ComputedLane_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_11, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_10 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_12, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_10 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ComputedLane_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ComputedLane_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ComputedLane_specs_10 = { + sizeof(struct Reg_ComputedLane), + offsetof(struct Reg_ComputedLane, _asn_ctx), + asn_MAP_Reg_ComputedLane_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ComputedLane_tags_10, + sizeof(asn_DEF_Reg_ComputedLane_tags_10) + /sizeof(asn_DEF_Reg_ComputedLane_tags_10[0]), /* 1 */ + asn_DEF_Reg_ComputedLane_tags_10, /* Same as above */ + sizeof(asn_DEF_Reg_ComputedLane_tags_10) + /sizeof(asn_DEF_Reg_ComputedLane_tags_10[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_ComputedLane_10, + 2, /* Elements count */ + &asn_SPC_Reg_ComputedLane_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_15[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute__regExtValue, choice.LaneDataAttribute_addGrpB), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LaneDataAttribute_addGrpB, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "LaneDataAttribute-addGrpB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_15[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneDataAttribute-addGrpB */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_15 = { + sizeof(struct Reg_LaneDataAttribute__regExtValue), + offsetof(struct Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct Reg_LaneDataAttribute__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_15, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_15 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_regExtValue_15, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneDataAttribute_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_14, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_14, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_13 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_15, + select_Reg_LaneDataAttribute_regExtValue_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_15, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_15, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_13 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneDataAttribute_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneDataAttribute_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneDataAttribute_specs_13 = { + sizeof(struct Reg_LaneDataAttribute), + offsetof(struct Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_Reg_LaneDataAttribute_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneDataAttribute_tags_13, + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_13) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_13[0]), /* 1 */ + asn_DEF_Reg_LaneDataAttribute_tags_13, /* Same as above */ + sizeof(asn_DEF_Reg_LaneDataAttribute_tags_13) + /sizeof(asn_DEF_Reg_LaneDataAttribute_tags_13[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_LaneDataAttribute_13, + 2, /* Elements count */ + &asn_SPC_Reg_LaneDataAttribute_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_18 = { + sizeof(struct Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct Reg_NodeAttributeSetXY__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_18 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetXY_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_17, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_17, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_16 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_18, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_18, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_18, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_16 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeAttributeSetXY_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeAttributeSetXY_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetXY_specs_16 = { + sizeof(struct Reg_NodeAttributeSetXY), + offsetof(struct Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_Reg_NodeAttributeSetXY_tag2el_16, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeAttributeSetXY_tags_16, + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_16) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_16[0]), /* 1 */ + asn_DEF_Reg_NodeAttributeSetXY_tags_16, /* Same as above */ + sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_16) + /sizeof(asn_DEF_Reg_NodeAttributeSetXY_tags_16[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_NodeAttributeSetXY_16, + 2, /* Elements count */ + &asn_SPC_Reg_NodeAttributeSetXY_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY__regExtValue, choice.NodeOffsetPointXY_addGrpB), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_NodeOffsetPointXY_addGrpB, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "NodeOffsetPointXY-addGrpB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_21[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* posA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* posB */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_21 = { + sizeof(struct Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct Reg_NodeOffsetPointXY__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_21, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_21 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_regExtValue_21, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointXY_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_20, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_20, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_19 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_21, + select_Reg_NodeOffsetPointXY_regExtValue_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_21, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_21, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_19 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeOffsetPointXY_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeOffsetPointXY_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointXY_specs_19 = { + sizeof(struct Reg_NodeOffsetPointXY), + offsetof(struct Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_Reg_NodeOffsetPointXY_tag2el_19, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeOffsetPointXY_tags_19, + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_19) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_19[0]), /* 1 */ + asn_DEF_Reg_NodeOffsetPointXY_tags_19, /* Same as above */ + sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_19) + /sizeof(asn_DEF_Reg_NodeOffsetPointXY_tags_19[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_NodeOffsetPointXY_19, + 2, /* Elements count */ + &asn_SPC_Reg_NodeOffsetPointXY_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D__regExtValue, choice.Position3D_addGrpB), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Position3D_addGrpB, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Position3D-addGrpB" + }, + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Position3D_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Position3D-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* Position3D-addGrpB */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_24 = { + sizeof(struct Reg_Position3D__regExtValue), + offsetof(struct Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct Reg_Position3D__regExtValue, present), + sizeof(((struct Reg_Position3D__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_24, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_24 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_regExtValue_24, + 2, /* Elements count */ + &asn_SPC_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_Position3D_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_23, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_23, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_22 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_24, + select_Reg_Position3D_regExtValue_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_24, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_24, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_22 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_Position3D_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_Position3D_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_Position3D_specs_22 = { + sizeof(struct Reg_Position3D), + offsetof(struct Reg_Position3D, _asn_ctx), + asn_MAP_Reg_Position3D_tag2el_22, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_Reg_Position3D_tags_22, + sizeof(asn_DEF_Reg_Position3D_tags_22) + /sizeof(asn_DEF_Reg_Position3D_tags_22[0]), /* 1 */ + asn_DEF_Reg_Position3D_tags_22, /* Same as above */ + sizeof(asn_DEF_Reg_Position3D_tags_22) + /sizeof(asn_DEF_Reg_Position3D_tags_22[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_Position3D_22, + 2, /* Elements count */ + &asn_SPC_Reg_Position3D_specs_22 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_27 = { + sizeof(struct Reg_RequestorType__regExtValue), + offsetof(struct Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorType__regExtValue, present), + sizeof(((struct Reg_RequestorType__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_27 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorType_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_26, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_26, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_25 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_27, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_27, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_27, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_25 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorType_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorType_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorType_specs_25 = { + sizeof(struct Reg_RequestorType), + offsetof(struct Reg_RequestorType, _asn_ctx), + asn_MAP_Reg_RequestorType_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorType_tags_25, + sizeof(asn_DEF_Reg_RequestorType_tags_25) + /sizeof(asn_DEF_Reg_RequestorType_tags_25[0]), /* 1 */ + asn_DEF_Reg_RequestorType_tags_25, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorType_tags_25) + /sizeof(asn_DEF_Reg_RequestorType_tags_25[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_RequestorType_25, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorType_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_30 = { + sizeof(struct Reg_VehicleClassification__regExtValue), + offsetof(struct Reg_VehicleClassification__regExtValue, _asn_ctx), + offsetof(struct Reg_VehicleClassification__regExtValue, present), + sizeof(((struct Reg_VehicleClassification__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_30 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_VehicleClassification_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_VehicleClassification, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_29, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_29, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_28 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_VehicleClassification, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_30, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_30, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_30, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_28 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_VehicleClassification_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_VehicleClassification_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_VehicleClassification_specs_28 = { + sizeof(struct Reg_VehicleClassification), + offsetof(struct Reg_VehicleClassification, _asn_ctx), + asn_MAP_Reg_VehicleClassification_tag2el_28, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_VehicleClassification = { + "Reg-VehicleClassification", + "Reg-VehicleClassification", + &asn_OP_SEQUENCE, + asn_DEF_Reg_VehicleClassification_tags_28, + sizeof(asn_DEF_Reg_VehicleClassification_tags_28) + /sizeof(asn_DEF_Reg_VehicleClassification_tags_28[0]), /* 1 */ + asn_DEF_Reg_VehicleClassification_tags_28, /* Same as above */ + sizeof(asn_DEF_Reg_VehicleClassification_tags_28) + /sizeof(asn_DEF_Reg_VehicleClassification_tags_28[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_VehicleClassification_28, + 2, /* Elements count */ + &asn_SPC_Reg_VehicleClassification_specs_28 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_33 = { + sizeof(struct Reg_VerticalOffset__regExtValue), + offsetof(struct Reg_VerticalOffset__regExtValue, _asn_ctx), + offsetof(struct Reg_VerticalOffset__regExtValue, present), + sizeof(((struct Reg_VerticalOffset__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_33 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_VerticalOffset_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_VerticalOffset, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_32, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_32, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_31 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_VerticalOffset, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_regExtValue_33, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_33, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_33, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_31 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_VerticalOffset_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_VerticalOffset_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_VerticalOffset_specs_31 = { + sizeof(struct Reg_VerticalOffset), + offsetof(struct Reg_VerticalOffset, _asn_ctx), + asn_MAP_Reg_VerticalOffset_tag2el_31, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_VerticalOffset = { + "Reg-VerticalOffset", + "Reg-VerticalOffset", + &asn_OP_SEQUENCE, + asn_DEF_Reg_VerticalOffset_tags_31, + sizeof(asn_DEF_Reg_VerticalOffset_tags_31) + /sizeof(asn_DEF_Reg_VerticalOffset_tags_31[0]), /* 1 */ + asn_DEF_Reg_VerticalOffset_tags_31, /* Same as above */ + sizeof(asn_DEF_Reg_VerticalOffset_tags_31) + /sizeof(asn_DEF_Reg_VerticalOffset_tags_31[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_VerticalOffset_31, + 2, /* Elements count */ + &asn_SPC_Reg_VerticalOffset_specs_31 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_36 = { + sizeof(struct Reg_CommonSafetyRequest__regExtValue), + offsetof(struct Reg_CommonSafetyRequest__regExtValue, _asn_ctx), + offsetof(struct Reg_CommonSafetyRequest__regExtValue, present), + sizeof(((struct Reg_CommonSafetyRequest__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_36 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_CommonSafetyRequest_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_CommonSafetyRequest, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_35, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_35, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_34 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_CommonSafetyRequest, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_36, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_36, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_36, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_34 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_CommonSafetyRequest_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_CommonSafetyRequest_tag2el_34[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_CommonSafetyRequest_specs_34 = { + sizeof(struct Reg_CommonSafetyRequest), + offsetof(struct Reg_CommonSafetyRequest, _asn_ctx), + asn_MAP_Reg_CommonSafetyRequest_tag2el_34, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_CommonSafetyRequest = { + "Reg-CommonSafetyRequest", + "Reg-CommonSafetyRequest", + &asn_OP_SEQUENCE, + asn_DEF_Reg_CommonSafetyRequest_tags_34, + sizeof(asn_DEF_Reg_CommonSafetyRequest_tags_34) + /sizeof(asn_DEF_Reg_CommonSafetyRequest_tags_34[0]), /* 1 */ + asn_DEF_Reg_CommonSafetyRequest_tags_34, /* Same as above */ + sizeof(asn_DEF_Reg_CommonSafetyRequest_tags_34) + /sizeof(asn_DEF_Reg_CommonSafetyRequest_tags_34[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_CommonSafetyRequest_34, + 2, /* Elements count */ + &asn_SPC_Reg_CommonSafetyRequest_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_39 = { + sizeof(struct Reg_EmergencyVehicleAlert__regExtValue), + offsetof(struct Reg_EmergencyVehicleAlert__regExtValue, _asn_ctx), + offsetof(struct Reg_EmergencyVehicleAlert__regExtValue, present), + sizeof(((struct Reg_EmergencyVehicleAlert__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_39 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_EmergencyVehicleAlert_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_EmergencyVehicleAlert, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_38, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_38, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_37 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_EmergencyVehicleAlert, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_39, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_39, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_39, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_37 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_EmergencyVehicleAlert_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_EmergencyVehicleAlert_tag2el_37[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_EmergencyVehicleAlert_specs_37 = { + sizeof(struct Reg_EmergencyVehicleAlert), + offsetof(struct Reg_EmergencyVehicleAlert, _asn_ctx), + asn_MAP_Reg_EmergencyVehicleAlert_tag2el_37, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_EmergencyVehicleAlert = { + "Reg-EmergencyVehicleAlert", + "Reg-EmergencyVehicleAlert", + &asn_OP_SEQUENCE, + asn_DEF_Reg_EmergencyVehicleAlert_tags_37, + sizeof(asn_DEF_Reg_EmergencyVehicleAlert_tags_37) + /sizeof(asn_DEF_Reg_EmergencyVehicleAlert_tags_37[0]), /* 1 */ + asn_DEF_Reg_EmergencyVehicleAlert_tags_37, /* Same as above */ + sizeof(asn_DEF_Reg_EmergencyVehicleAlert_tags_37) + /sizeof(asn_DEF_Reg_EmergencyVehicleAlert_tags_37[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_EmergencyVehicleAlert_37, + 2, /* Elements count */ + &asn_SPC_Reg_EmergencyVehicleAlert_specs_37 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_42 = { + sizeof(struct Reg_IntersectionCollision__regExtValue), + offsetof(struct Reg_IntersectionCollision__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionCollision__regExtValue, present), + sizeof(((struct Reg_IntersectionCollision__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_42 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionCollision_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionCollision, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_41, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_41, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_40 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionCollision, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_42, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_42, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_42, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_40 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionCollision_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionCollision_tag2el_40[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionCollision_specs_40 = { + sizeof(struct Reg_IntersectionCollision), + offsetof(struct Reg_IntersectionCollision, _asn_ctx), + asn_MAP_Reg_IntersectionCollision_tag2el_40, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionCollision = { + "Reg-IntersectionCollision", + "Reg-IntersectionCollision", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionCollision_tags_40, + sizeof(asn_DEF_Reg_IntersectionCollision_tags_40) + /sizeof(asn_DEF_Reg_IntersectionCollision_tags_40[0]), /* 1 */ + asn_DEF_Reg_IntersectionCollision_tags_40, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionCollision_tags_40) + /sizeof(asn_DEF_Reg_IntersectionCollision_tags_40[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_IntersectionCollision_40, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionCollision_specs_40 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MapData_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "MapData-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_45[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_45 = { + sizeof(struct Reg_MapData__regExtValue), + offsetof(struct Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct Reg_MapData__regExtValue, present), + sizeof(((struct Reg_MapData__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_45, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_45 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_regExtValue_45, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MapData_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_44, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_44, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_43 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MapData, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_45, + select_Reg_MapData_regExtValue_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_45, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_45, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_43 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MapData_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MapData_tag2el_43[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MapData_specs_43 = { + sizeof(struct Reg_MapData), + offsetof(struct Reg_MapData, _asn_ctx), + asn_MAP_Reg_MapData_tag2el_43, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MapData_tags_43, + sizeof(asn_DEF_Reg_MapData_tags_43) + /sizeof(asn_DEF_Reg_MapData_tags_43[0]), /* 1 */ + asn_DEF_Reg_MapData_tags_43, /* Same as above */ + sizeof(asn_DEF_Reg_MapData_tags_43) + /sizeof(asn_DEF_Reg_MapData_tags_43[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_MapData_43, + 2, /* Elements count */ + &asn_SPC_Reg_MapData_specs_43 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_48 = { + sizeof(struct Reg_GenericLane__regExtValue), + offsetof(struct Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct Reg_GenericLane__regExtValue, present), + sizeof(((struct Reg_GenericLane__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_48 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_GenericLane_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_47, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_47, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_46 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_GenericLane, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_48, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_48, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_48, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_46 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_GenericLane_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_GenericLane_tag2el_46[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_GenericLane_specs_46 = { + sizeof(struct Reg_GenericLane), + offsetof(struct Reg_GenericLane, _asn_ctx), + asn_MAP_Reg_GenericLane_tag2el_46, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_Reg_GenericLane_tags_46, + sizeof(asn_DEF_Reg_GenericLane_tags_46) + /sizeof(asn_DEF_Reg_GenericLane_tags_46[0]), /* 1 */ + asn_DEF_Reg_GenericLane_tags_46, /* Same as above */ + sizeof(asn_DEF_Reg_GenericLane_tags_46) + /sizeof(asn_DEF_Reg_GenericLane_tags_46[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_GenericLane_46, + 2, /* Elements count */ + &asn_SPC_Reg_GenericLane_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_51 = { + sizeof(struct Reg_IntersectionGeometry__regExtValue), + offsetof(struct Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct Reg_IntersectionGeometry__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_51 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionGeometry_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_50, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_50, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_49 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionGeometry, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_51, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_51, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_51, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_49 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionGeometry_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionGeometry_tag2el_49[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionGeometry_specs_49 = { + sizeof(struct Reg_IntersectionGeometry), + offsetof(struct Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_Reg_IntersectionGeometry_tag2el_49, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionGeometry_tags_49, + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_49) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_49[0]), /* 1 */ + asn_DEF_Reg_IntersectionGeometry_tags_49, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionGeometry_tags_49) + /sizeof(asn_DEF_Reg_IntersectionGeometry_tags_49[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_IntersectionGeometry_49, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionGeometry_specs_49 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_54 = { + sizeof(struct Reg_LaneAttributes__regExtValue), + offsetof(struct Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct Reg_LaneAttributes__regExtValue, present), + sizeof(((struct Reg_LaneAttributes__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_54 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_LaneAttributes_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_53, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_53, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_52 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_LaneAttributes, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_54, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_54, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_54, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_52 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_LaneAttributes_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_LaneAttributes_tag2el_52[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_LaneAttributes_specs_52 = { + sizeof(struct Reg_LaneAttributes), + offsetof(struct Reg_LaneAttributes, _asn_ctx), + asn_MAP_Reg_LaneAttributes_tag2el_52, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_Reg_LaneAttributes_tags_52, + sizeof(asn_DEF_Reg_LaneAttributes_tags_52) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_52[0]), /* 1 */ + asn_DEF_Reg_LaneAttributes_tags_52, /* Same as above */ + sizeof(asn_DEF_Reg_LaneAttributes_tags_52) + /sizeof(asn_DEF_Reg_LaneAttributes_tags_52[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_LaneAttributes_52, + 2, /* Elements count */ + &asn_SPC_Reg_LaneAttributes_specs_52 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_57 = { + sizeof(struct Reg_SignalControlZone__regExtValue), + offsetof(struct Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalControlZone__regExtValue, present), + sizeof(((struct Reg_SignalControlZone__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_57 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalControlZone_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_56, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_56, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_55 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalControlZone, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_57, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_57, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_57, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_55 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalControlZone_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalControlZone_tag2el_55[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalControlZone_specs_55 = { + sizeof(struct Reg_SignalControlZone), + offsetof(struct Reg_SignalControlZone, _asn_ctx), + asn_MAP_Reg_SignalControlZone_tag2el_55, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalControlZone_tags_55, + sizeof(asn_DEF_Reg_SignalControlZone_tags_55) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_55[0]), /* 1 */ + asn_DEF_Reg_SignalControlZone_tags_55, /* Same as above */ + sizeof(asn_DEF_Reg_SignalControlZone_tags_55) + /sizeof(asn_DEF_Reg_SignalControlZone_tags_55[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_SignalControlZone_55, + 2, /* Elements count */ + &asn_SPC_Reg_SignalControlZone_specs_55 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_60[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionUserType_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RestrictionUserType-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_60[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_60 = { + sizeof(struct Reg_RestrictionUserType__regExtValue), + offsetof(struct Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_60, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_60 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_regExtValue_60, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RestrictionUserType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_59, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_59, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_58 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RestrictionUserType, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_60, + select_Reg_RestrictionUserType_regExtValue_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_60, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_60, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_58 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RestrictionUserType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RestrictionUserType_tag2el_58[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RestrictionUserType_specs_58 = { + sizeof(struct Reg_RestrictionUserType), + offsetof(struct Reg_RestrictionUserType, _asn_ctx), + asn_MAP_Reg_RestrictionUserType_tag2el_58, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RestrictionUserType_tags_58, + sizeof(asn_DEF_Reg_RestrictionUserType_tags_58) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_58[0]), /* 1 */ + asn_DEF_Reg_RestrictionUserType_tags_58, /* Same as above */ + sizeof(asn_DEF_Reg_RestrictionUserType_tags_58) + /sizeof(asn_DEF_Reg_RestrictionUserType_tags_58[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_RestrictionUserType_58, + 2, /* Elements count */ + &asn_SPC_Reg_RestrictionUserType_specs_58 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_63 = { + sizeof(struct Reg_RoadSegment__regExtValue), + offsetof(struct Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct Reg_RoadSegment__regExtValue, present), + sizeof(((struct Reg_RoadSegment__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_63 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RoadSegment_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_62, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_62, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_61 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSegment, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_63, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_63, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_63, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_61 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RoadSegment_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RoadSegment_tag2el_61[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSegment_specs_61 = { + sizeof(struct Reg_RoadSegment), + offsetof(struct Reg_RoadSegment, _asn_ctx), + asn_MAP_Reg_RoadSegment_tag2el_61, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RoadSegment_tags_61, + sizeof(asn_DEF_Reg_RoadSegment_tags_61) + /sizeof(asn_DEF_Reg_RoadSegment_tags_61[0]), /* 1 */ + asn_DEF_Reg_RoadSegment_tags_61, /* Same as above */ + sizeof(asn_DEF_Reg_RoadSegment_tags_61) + /sizeof(asn_DEF_Reg_RoadSegment_tags_61[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_RoadSegment_61, + 2, /* Elements count */ + &asn_SPC_Reg_RoadSegment_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_66 = { + sizeof(struct Reg_NMEAcorrections__regExtValue), + offsetof(struct Reg_NMEAcorrections__regExtValue, _asn_ctx), + offsetof(struct Reg_NMEAcorrections__regExtValue, present), + sizeof(((struct Reg_NMEAcorrections__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_66 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NMEAcorrections_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NMEAcorrections, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_65, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_65, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_64 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NMEAcorrections, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_66, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_66, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_66, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_64 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NMEAcorrections_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NMEAcorrections_tag2el_64[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NMEAcorrections_specs_64 = { + sizeof(struct Reg_NMEAcorrections), + offsetof(struct Reg_NMEAcorrections, _asn_ctx), + asn_MAP_Reg_NMEAcorrections_tag2el_64, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NMEAcorrections = { + "Reg-NMEAcorrections", + "Reg-NMEAcorrections", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NMEAcorrections_tags_64, + sizeof(asn_DEF_Reg_NMEAcorrections_tags_64) + /sizeof(asn_DEF_Reg_NMEAcorrections_tags_64[0]), /* 1 */ + asn_DEF_Reg_NMEAcorrections_tags_64, /* Same as above */ + sizeof(asn_DEF_Reg_NMEAcorrections_tags_64) + /sizeof(asn_DEF_Reg_NMEAcorrections_tags_64[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_NMEAcorrections_64, + 2, /* Elements count */ + &asn_SPC_Reg_NMEAcorrections_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_69 = { + sizeof(struct Reg_PersonalSafetyMessage__regExtValue), + offsetof(struct Reg_PersonalSafetyMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_PersonalSafetyMessage__regExtValue, present), + sizeof(((struct Reg_PersonalSafetyMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_69 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_PersonalSafetyMessage_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_PersonalSafetyMessage, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_68, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_68, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_67 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_PersonalSafetyMessage, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_69, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_69, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_69, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_67 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_PersonalSafetyMessage_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_PersonalSafetyMessage_tag2el_67[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_PersonalSafetyMessage_specs_67 = { + sizeof(struct Reg_PersonalSafetyMessage), + offsetof(struct Reg_PersonalSafetyMessage, _asn_ctx), + asn_MAP_Reg_PersonalSafetyMessage_tag2el_67, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_PersonalSafetyMessage = { + "Reg-PersonalSafetyMessage", + "Reg-PersonalSafetyMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_PersonalSafetyMessage_tags_67, + sizeof(asn_DEF_Reg_PersonalSafetyMessage_tags_67) + /sizeof(asn_DEF_Reg_PersonalSafetyMessage_tags_67[0]), /* 1 */ + asn_DEF_Reg_PersonalSafetyMessage_tags_67, /* Same as above */ + sizeof(asn_DEF_Reg_PersonalSafetyMessage_tags_67) + /sizeof(asn_DEF_Reg_PersonalSafetyMessage_tags_67[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_PersonalSafetyMessage_67, + 2, /* Elements count */ + &asn_SPC_Reg_PersonalSafetyMessage_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_72 = { + sizeof(struct Reg_ProbeDataManagement__regExtValue), + offsetof(struct Reg_ProbeDataManagement__regExtValue, _asn_ctx), + offsetof(struct Reg_ProbeDataManagement__regExtValue, present), + sizeof(((struct Reg_ProbeDataManagement__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_72 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ProbeDataManagement_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ProbeDataManagement, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_71, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_71, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_70 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ProbeDataManagement, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_72, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_72, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_72, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_70 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ProbeDataManagement_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ProbeDataManagement_tag2el_70[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ProbeDataManagement_specs_70 = { + sizeof(struct Reg_ProbeDataManagement), + offsetof(struct Reg_ProbeDataManagement, _asn_ctx), + asn_MAP_Reg_ProbeDataManagement_tag2el_70, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ProbeDataManagement = { + "Reg-ProbeDataManagement", + "Reg-ProbeDataManagement", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ProbeDataManagement_tags_70, + sizeof(asn_DEF_Reg_ProbeDataManagement_tags_70) + /sizeof(asn_DEF_Reg_ProbeDataManagement_tags_70[0]), /* 1 */ + asn_DEF_Reg_ProbeDataManagement_tags_70, /* Same as above */ + sizeof(asn_DEF_Reg_ProbeDataManagement_tags_70) + /sizeof(asn_DEF_Reg_ProbeDataManagement_tags_70[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_ProbeDataManagement_70, + 2, /* Elements count */ + &asn_SPC_Reg_ProbeDataManagement_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_75 = { + sizeof(struct Reg_ProbeVehicleData__regExtValue), + offsetof(struct Reg_ProbeVehicleData__regExtValue, _asn_ctx), + offsetof(struct Reg_ProbeVehicleData__regExtValue, present), + sizeof(((struct Reg_ProbeVehicleData__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_75 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ProbeVehicleData_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ProbeVehicleData, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_74, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_74, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_73 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ProbeVehicleData, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_75, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_75, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_75, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_73 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ProbeVehicleData_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ProbeVehicleData_tag2el_73[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ProbeVehicleData_specs_73 = { + sizeof(struct Reg_ProbeVehicleData), + offsetof(struct Reg_ProbeVehicleData, _asn_ctx), + asn_MAP_Reg_ProbeVehicleData_tag2el_73, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ProbeVehicleData = { + "Reg-ProbeVehicleData", + "Reg-ProbeVehicleData", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ProbeVehicleData_tags_73, + sizeof(asn_DEF_Reg_ProbeVehicleData_tags_73) + /sizeof(asn_DEF_Reg_ProbeVehicleData_tags_73[0]), /* 1 */ + asn_DEF_Reg_ProbeVehicleData_tags_73, /* Same as above */ + sizeof(asn_DEF_Reg_ProbeVehicleData_tags_73) + /sizeof(asn_DEF_Reg_ProbeVehicleData_tags_73[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_ProbeVehicleData_73, + 2, /* Elements count */ + &asn_SPC_Reg_ProbeVehicleData_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_78 = { + sizeof(struct Reg_RoadSideAlert__regExtValue), + offsetof(struct Reg_RoadSideAlert__regExtValue, _asn_ctx), + offsetof(struct Reg_RoadSideAlert__regExtValue, present), + sizeof(((struct Reg_RoadSideAlert__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_78 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RoadSideAlert_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSideAlert, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_77, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_77, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_76 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RoadSideAlert, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_78, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_78, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_78, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_76 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RoadSideAlert_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RoadSideAlert_tag2el_76[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RoadSideAlert_specs_76 = { + sizeof(struct Reg_RoadSideAlert), + offsetof(struct Reg_RoadSideAlert, _asn_ctx), + asn_MAP_Reg_RoadSideAlert_tag2el_76, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RoadSideAlert = { + "Reg-RoadSideAlert", + "Reg-RoadSideAlert", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RoadSideAlert_tags_76, + sizeof(asn_DEF_Reg_RoadSideAlert_tags_76) + /sizeof(asn_DEF_Reg_RoadSideAlert_tags_76[0]), /* 1 */ + asn_DEF_Reg_RoadSideAlert_tags_76, /* Same as above */ + sizeof(asn_DEF_Reg_RoadSideAlert_tags_76) + /sizeof(asn_DEF_Reg_RoadSideAlert_tags_76[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_RoadSideAlert_76, + 2, /* Elements count */ + &asn_SPC_Reg_RoadSideAlert_specs_76 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_81 = { + sizeof(struct Reg_RTCMcorrections__regExtValue), + offsetof(struct Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct Reg_RTCMcorrections__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_81 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RTCMcorrections_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_80, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_80, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_79 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RTCMcorrections, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_81, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_81, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_81, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_79 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RTCMcorrections_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RTCMcorrections_tag2el_79[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RTCMcorrections_specs_79 = { + sizeof(struct Reg_RTCMcorrections), + offsetof(struct Reg_RTCMcorrections, _asn_ctx), + asn_MAP_Reg_RTCMcorrections_tag2el_79, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RTCMcorrections_tags_79, + sizeof(asn_DEF_Reg_RTCMcorrections_tags_79) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_79[0]), /* 1 */ + asn_DEF_Reg_RTCMcorrections_tags_79, /* Same as above */ + sizeof(asn_DEF_Reg_RTCMcorrections_tags_79) + /sizeof(asn_DEF_Reg_RTCMcorrections_tags_79[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_RTCMcorrections_79, + 2, /* Elements count */ + &asn_SPC_Reg_RTCMcorrections_specs_79 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_84 = { + sizeof(struct Reg_SignalRequestMessage__regExtValue), + offsetof(struct Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct Reg_SignalRequestMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_84 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_84 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestMessage_82[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_83, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_83, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_82 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestMessage, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_84, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_84, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_84, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_82 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestMessage_tags_82[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestMessage_tag2el_82[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestMessage_specs_82 = { + sizeof(struct Reg_SignalRequestMessage), + offsetof(struct Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_Reg_SignalRequestMessage_tag2el_82, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestMessage_tags_82, + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_82) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_82[0]), /* 1 */ + asn_DEF_Reg_SignalRequestMessage_tags_82, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestMessage_tags_82) + /sizeof(asn_DEF_Reg_SignalRequestMessage_tags_82[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_SignalRequestMessage_82, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestMessage_specs_82 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_87 = { + sizeof(struct Reg_RequestorDescription__regExtValue), + offsetof(struct Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct Reg_RequestorDescription__regExtValue, present), + sizeof(((struct Reg_RequestorDescription__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_87 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_87 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_RequestorDescription_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_86, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_86, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_85 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_RequestorDescription, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_87, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_87, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_87, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_85 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_RequestorDescription_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_RequestorDescription_tag2el_85[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_RequestorDescription_specs_85 = { + sizeof(struct Reg_RequestorDescription), + offsetof(struct Reg_RequestorDescription, _asn_ctx), + asn_MAP_Reg_RequestorDescription_tag2el_85, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_Reg_RequestorDescription_tags_85, + sizeof(asn_DEF_Reg_RequestorDescription_tags_85) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_85[0]), /* 1 */ + asn_DEF_Reg_RequestorDescription_tags_85, /* Same as above */ + sizeof(asn_DEF_Reg_RequestorDescription_tags_85) + /sizeof(asn_DEF_Reg_RequestorDescription_tags_85[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_RequestorDescription_85, + 2, /* Elements count */ + &asn_SPC_Reg_RequestorDescription_specs_85 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_90 = { + sizeof(struct Reg_SignalRequestPackage__regExtValue), + offsetof(struct Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct Reg_SignalRequestPackage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_90 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_90 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequestPackage_88[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_89, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_89, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_88 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequestPackage, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_90, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_90, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_90, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_88 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequestPackage_tags_88[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequestPackage_tag2el_88[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequestPackage_specs_88 = { + sizeof(struct Reg_SignalRequestPackage), + offsetof(struct Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_Reg_SignalRequestPackage_tag2el_88, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequestPackage_tags_88, + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_88) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_88[0]), /* 1 */ + asn_DEF_Reg_SignalRequestPackage_tags_88, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequestPackage_tags_88) + /sizeof(asn_DEF_Reg_SignalRequestPackage_tags_88[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_SignalRequestPackage_88, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequestPackage_specs_88 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_93 = { + sizeof(struct Reg_SignalRequest__regExtValue), + offsetof(struct Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalRequest__regExtValue, present), + sizeof(((struct Reg_SignalRequest__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_93 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_93 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalRequest_91[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_92, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_92, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_91 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalRequest, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_93, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_93, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_93, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_91 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalRequest_tags_91[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalRequest_tag2el_91[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalRequest_specs_91 = { + sizeof(struct Reg_SignalRequest), + offsetof(struct Reg_SignalRequest, _asn_ctx), + asn_MAP_Reg_SignalRequest_tag2el_91, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalRequest_tags_91, + sizeof(asn_DEF_Reg_SignalRequest_tags_91) + /sizeof(asn_DEF_Reg_SignalRequest_tags_91[0]), /* 1 */ + asn_DEF_Reg_SignalRequest_tags_91, /* Same as above */ + sizeof(asn_DEF_Reg_SignalRequest_tags_91) + /sizeof(asn_DEF_Reg_SignalRequest_tags_91[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_SignalRequest_91, + 2, /* Elements count */ + &asn_SPC_Reg_SignalRequest_specs_91 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_96 = { + sizeof(struct Reg_SignalStatusMessage__regExtValue), + offsetof(struct Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct Reg_SignalStatusMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_96 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_96 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusMessage_94[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_95, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_95, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_94 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusMessage, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_96, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_96, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_96, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_94 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusMessage_tags_94[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusMessage_tag2el_94[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusMessage_specs_94 = { + sizeof(struct Reg_SignalStatusMessage), + offsetof(struct Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_Reg_SignalStatusMessage_tag2el_94, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusMessage_tags_94, + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_94) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_94[0]), /* 1 */ + asn_DEF_Reg_SignalStatusMessage_tags_94, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusMessage_tags_94) + /sizeof(asn_DEF_Reg_SignalStatusMessage_tags_94[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_SignalStatusMessage_94, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusMessage_specs_94 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_99 = { + sizeof(struct Reg_SignalStatusPackage__regExtValue), + offsetof(struct Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct Reg_SignalStatusPackage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_99 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_99 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatusPackage_97[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_98, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_98, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_97 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatusPackage, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_99, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_99, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_99, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_97 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatusPackage_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatusPackage_tag2el_97[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatusPackage_specs_97 = { + sizeof(struct Reg_SignalStatusPackage), + offsetof(struct Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_Reg_SignalStatusPackage_tag2el_97, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatusPackage_tags_97, + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_97) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_97[0]), /* 1 */ + asn_DEF_Reg_SignalStatusPackage_tags_97, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatusPackage_tags_97) + /sizeof(asn_DEF_Reg_SignalStatusPackage_tags_97[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_SignalStatusPackage_97, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatusPackage_specs_97 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_102 = { + sizeof(struct Reg_SignalStatus__regExtValue), + offsetof(struct Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct Reg_SignalStatus__regExtValue, present), + sizeof(((struct Reg_SignalStatus__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_102 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_102 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SignalStatus_100[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_101, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_101, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_100 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SignalStatus, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_102, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_102, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_102, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_100 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SignalStatus_tags_100[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SignalStatus_tag2el_100[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SignalStatus_specs_100 = { + sizeof(struct Reg_SignalStatus), + offsetof(struct Reg_SignalStatus, _asn_ctx), + asn_MAP_Reg_SignalStatus_tag2el_100, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SignalStatus_tags_100, + sizeof(asn_DEF_Reg_SignalStatus_tags_100) + /sizeof(asn_DEF_Reg_SignalStatus_tags_100[0]), /* 1 */ + asn_DEF_Reg_SignalStatus_tags_100, /* Same as above */ + sizeof(asn_DEF_Reg_SignalStatus_tags_100) + /sizeof(asn_DEF_Reg_SignalStatus_tags_100[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_SignalStatus_100, + 2, /* Elements count */ + &asn_SPC_Reg_SignalStatus_specs_100 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_105 = { + sizeof(struct Reg_SPAT__regExtValue), + offsetof(struct Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct Reg_SPAT__regExtValue, present), + sizeof(((struct Reg_SPAT__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_105 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_105 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_SPAT_103[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_104, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_104, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_103 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_SPAT, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_105, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_105, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_105, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_103 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_SPAT_tags_103[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_SPAT_tag2el_103[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_SPAT_specs_103 = { + sizeof(struct Reg_SPAT), + offsetof(struct Reg_SPAT, _asn_ctx), + asn_MAP_Reg_SPAT_tag2el_103, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_Reg_SPAT_tags_103, + sizeof(asn_DEF_Reg_SPAT_tags_103) + /sizeof(asn_DEF_Reg_SPAT_tags_103[0]), /* 1 */ + asn_DEF_Reg_SPAT_tags_103, /* Same as above */ + sizeof(asn_DEF_Reg_SPAT_tags_103) + /sizeof(asn_DEF_Reg_SPAT_tags_103[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_SPAT_103, + 2, /* Elements count */ + &asn_SPC_Reg_SPAT_specs_103 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_108 = { + sizeof(struct Reg_AdvisorySpeed__regExtValue), + offsetof(struct Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct Reg_AdvisorySpeed__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_108 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_108 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_AdvisorySpeed_106[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_107, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_107, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_106 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_AdvisorySpeed, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_108, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_108, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_108, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_106 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_AdvisorySpeed_tags_106[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_AdvisorySpeed_tag2el_106[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_AdvisorySpeed_specs_106 = { + sizeof(struct Reg_AdvisorySpeed), + offsetof(struct Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_Reg_AdvisorySpeed_tag2el_106, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_Reg_AdvisorySpeed_tags_106, + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_106) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_106[0]), /* 1 */ + asn_DEF_Reg_AdvisorySpeed_tags_106, /* Same as above */ + sizeof(asn_DEF_Reg_AdvisorySpeed_tags_106) + /sizeof(asn_DEF_Reg_AdvisorySpeed_tags_106[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_AdvisorySpeed_106, + 2, /* Elements count */ + &asn_SPC_Reg_AdvisorySpeed_specs_106 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_111[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ConnectionManeuverAssist_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ConnectionManeuverAssist-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_111[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_111 = { + sizeof(struct Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_111, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_111 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_regExtValue_111, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_111 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_ConnectionManeuverAssist_109[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_110, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_110, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_109 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_ConnectionManeuverAssist, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_111, + select_Reg_ConnectionManeuverAssist_regExtValue_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_111, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_111, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_109 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_ConnectionManeuverAssist_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_ConnectionManeuverAssist_tag2el_109[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_ConnectionManeuverAssist_specs_109 = { + sizeof(struct Reg_ConnectionManeuverAssist), + offsetof(struct Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_Reg_ConnectionManeuverAssist_tag2el_109, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_Reg_ConnectionManeuverAssist_tags_109, + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_109) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_109[0]), /* 1 */ + asn_DEF_Reg_ConnectionManeuverAssist_tags_109, /* Same as above */ + sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_109) + /sizeof(asn_DEF_Reg_ConnectionManeuverAssist_tags_109[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_ConnectionManeuverAssist_109, + 2, /* Elements count */ + &asn_SPC_Reg_ConnectionManeuverAssist_specs_109 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_114[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntersectionState_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "IntersectionState-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_114[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_114 = { + sizeof(struct Reg_IntersectionState__regExtValue), + offsetof(struct Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct Reg_IntersectionState__regExtValue, present), + sizeof(((struct Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_114, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_114 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_regExtValue_114, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_114 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_IntersectionState_112[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_113, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_113, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_112 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_IntersectionState, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_114, + select_Reg_IntersectionState_regExtValue_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_114, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_114, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_112 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_IntersectionState_tags_112[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_IntersectionState_tag2el_112[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_IntersectionState_specs_112 = { + sizeof(struct Reg_IntersectionState), + offsetof(struct Reg_IntersectionState, _asn_ctx), + asn_MAP_Reg_IntersectionState_tag2el_112, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_IntersectionState_tags_112, + sizeof(asn_DEF_Reg_IntersectionState_tags_112) + /sizeof(asn_DEF_Reg_IntersectionState_tags_112[0]), /* 1 */ + asn_DEF_Reg_IntersectionState_tags_112, /* Same as above */ + sizeof(asn_DEF_Reg_IntersectionState_tags_112) + /sizeof(asn_DEF_Reg_IntersectionState_tags_112[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_IntersectionState_112, + 2, /* Elements count */ + &asn_SPC_Reg_IntersectionState_specs_112 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regExtValue_117[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpB), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MovementEvent_addGrpB, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "MovementEvent-addGrpB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_regExtValue_tag2el_117[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpB */ +}; +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_117 = { + sizeof(struct Reg_MovementEvent__regExtValue), + offsetof(struct Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementEvent__regExtValue, present), + sizeof(((struct Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_regExtValue_tag2el_117, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_117 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_regExtValue_117, + 1, /* Elements count */ + &asn_SPC_regExtValue_specs_117 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementEvent_115[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_116, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_116, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_115 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementEvent, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_117, + select_Reg_MovementEvent_regExtValue_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_117, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_117, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_115 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementEvent_tags_115[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementEvent_tag2el_115[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementEvent_specs_115 = { + sizeof(struct Reg_MovementEvent), + offsetof(struct Reg_MovementEvent, _asn_ctx), + asn_MAP_Reg_MovementEvent_tag2el_115, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementEvent_tags_115, + sizeof(asn_DEF_Reg_MovementEvent_tags_115) + /sizeof(asn_DEF_Reg_MovementEvent_tags_115[0]), /* 1 */ + asn_DEF_Reg_MovementEvent_tags_115, /* Same as above */ + sizeof(asn_DEF_Reg_MovementEvent_tags_115) + /sizeof(asn_DEF_Reg_MovementEvent_tags_115[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_MovementEvent_115, + 2, /* Elements count */ + &asn_SPC_Reg_MovementEvent_specs_115 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_120 = { + sizeof(struct Reg_MovementState__regExtValue), + offsetof(struct Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct Reg_MovementState__regExtValue, present), + sizeof(((struct Reg_MovementState__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_120 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_120 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_MovementState_118[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_119, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_119, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_118 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_MovementState, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_120, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_120, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_120, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_118 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_MovementState_tags_118[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_MovementState_tag2el_118[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_MovementState_specs_118 = { + sizeof(struct Reg_MovementState), + offsetof(struct Reg_MovementState, _asn_ctx), + asn_MAP_Reg_MovementState_tag2el_118, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_Reg_MovementState_tags_118, + sizeof(asn_DEF_Reg_MovementState_tags_118) + /sizeof(asn_DEF_Reg_MovementState_tags_118[0]), /* 1 */ + asn_DEF_Reg_MovementState_tags_118, /* Same as above */ + sizeof(asn_DEF_Reg_MovementState_tags_118) + /sizeof(asn_DEF_Reg_MovementState_tags_118[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_MovementState_118, + 2, /* Elements count */ + &asn_SPC_Reg_MovementState_specs_118 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_123 = { + sizeof(struct Reg_TestMessage00__regExtValue), + offsetof(struct Reg_TestMessage00__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage00__regExtValue, present), + sizeof(((struct Reg_TestMessage00__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_123 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_123 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage00_121[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage00, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_122, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_122, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_121 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage00, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_123, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_123, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_123, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_121 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage00_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage00_tag2el_121[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage00_specs_121 = { + sizeof(struct Reg_TestMessage00), + offsetof(struct Reg_TestMessage00, _asn_ctx), + asn_MAP_Reg_TestMessage00_tag2el_121, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage00 = { + "Reg-TestMessage00", + "Reg-TestMessage00", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage00_tags_121, + sizeof(asn_DEF_Reg_TestMessage00_tags_121) + /sizeof(asn_DEF_Reg_TestMessage00_tags_121[0]), /* 1 */ + asn_DEF_Reg_TestMessage00_tags_121, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage00_tags_121) + /sizeof(asn_DEF_Reg_TestMessage00_tags_121[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage00_121, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage00_specs_121 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_126 = { + sizeof(struct Reg_TestMessage01__regExtValue), + offsetof(struct Reg_TestMessage01__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage01__regExtValue, present), + sizeof(((struct Reg_TestMessage01__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_126 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_126 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage01_124[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage01, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_125, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_125, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_124 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage01, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_126, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_126, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_126, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_124 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage01_tags_124[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage01_tag2el_124[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage01_specs_124 = { + sizeof(struct Reg_TestMessage01), + offsetof(struct Reg_TestMessage01, _asn_ctx), + asn_MAP_Reg_TestMessage01_tag2el_124, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage01 = { + "Reg-TestMessage01", + "Reg-TestMessage01", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage01_tags_124, + sizeof(asn_DEF_Reg_TestMessage01_tags_124) + /sizeof(asn_DEF_Reg_TestMessage01_tags_124[0]), /* 1 */ + asn_DEF_Reg_TestMessage01_tags_124, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage01_tags_124) + /sizeof(asn_DEF_Reg_TestMessage01_tags_124[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage01_124, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage01_specs_124 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_129 = { + sizeof(struct Reg_TestMessage02__regExtValue), + offsetof(struct Reg_TestMessage02__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage02__regExtValue, present), + sizeof(((struct Reg_TestMessage02__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_129 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_129 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage02_127[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage02, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_128, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_128, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_127 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage02, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_129, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_129, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_129, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_127 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage02_tags_127[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage02_tag2el_127[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage02_specs_127 = { + sizeof(struct Reg_TestMessage02), + offsetof(struct Reg_TestMessage02, _asn_ctx), + asn_MAP_Reg_TestMessage02_tag2el_127, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage02 = { + "Reg-TestMessage02", + "Reg-TestMessage02", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage02_tags_127, + sizeof(asn_DEF_Reg_TestMessage02_tags_127) + /sizeof(asn_DEF_Reg_TestMessage02_tags_127[0]), /* 1 */ + asn_DEF_Reg_TestMessage02_tags_127, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage02_tags_127) + /sizeof(asn_DEF_Reg_TestMessage02_tags_127[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage02_127, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage02_specs_127 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_132 = { + sizeof(struct Reg_TestMessage03__regExtValue), + offsetof(struct Reg_TestMessage03__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage03__regExtValue, present), + sizeof(((struct Reg_TestMessage03__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_132 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_132 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage03_130[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage03, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_131, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_131, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_130 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage03, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_132, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_132, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_132, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_130 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage03_tags_130[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage03_tag2el_130[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage03_specs_130 = { + sizeof(struct Reg_TestMessage03), + offsetof(struct Reg_TestMessage03, _asn_ctx), + asn_MAP_Reg_TestMessage03_tag2el_130, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage03 = { + "Reg-TestMessage03", + "Reg-TestMessage03", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage03_tags_130, + sizeof(asn_DEF_Reg_TestMessage03_tags_130) + /sizeof(asn_DEF_Reg_TestMessage03_tags_130[0]), /* 1 */ + asn_DEF_Reg_TestMessage03_tags_130, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage03_tags_130) + /sizeof(asn_DEF_Reg_TestMessage03_tags_130[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage03_130, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage03_specs_130 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_135 = { + sizeof(struct Reg_TestMessage04__regExtValue), + offsetof(struct Reg_TestMessage04__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage04__regExtValue, present), + sizeof(((struct Reg_TestMessage04__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_135 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_135 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage04_133[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage04, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_134, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_134, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_133 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage04, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_135, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_135, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_135, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_133 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage04_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage04_tag2el_133[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage04_specs_133 = { + sizeof(struct Reg_TestMessage04), + offsetof(struct Reg_TestMessage04, _asn_ctx), + asn_MAP_Reg_TestMessage04_tag2el_133, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage04 = { + "Reg-TestMessage04", + "Reg-TestMessage04", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage04_tags_133, + sizeof(asn_DEF_Reg_TestMessage04_tags_133) + /sizeof(asn_DEF_Reg_TestMessage04_tags_133[0]), /* 1 */ + asn_DEF_Reg_TestMessage04_tags_133, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage04_tags_133) + /sizeof(asn_DEF_Reg_TestMessage04_tags_133[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage04_133, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage04_specs_133 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_138 = { + sizeof(struct Reg_TestMessage05__regExtValue), + offsetof(struct Reg_TestMessage05__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage05__regExtValue, present), + sizeof(((struct Reg_TestMessage05__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_138 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_138 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage05_136[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage05, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_137, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_137, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_136 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage05, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_138, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_138, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_138, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_136 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage05_tags_136[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage05_tag2el_136[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage05_specs_136 = { + sizeof(struct Reg_TestMessage05), + offsetof(struct Reg_TestMessage05, _asn_ctx), + asn_MAP_Reg_TestMessage05_tag2el_136, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage05 = { + "Reg-TestMessage05", + "Reg-TestMessage05", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage05_tags_136, + sizeof(asn_DEF_Reg_TestMessage05_tags_136) + /sizeof(asn_DEF_Reg_TestMessage05_tags_136[0]), /* 1 */ + asn_DEF_Reg_TestMessage05_tags_136, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage05_tags_136) + /sizeof(asn_DEF_Reg_TestMessage05_tags_136[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage05_136, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage05_specs_136 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_141 = { + sizeof(struct Reg_TestMessage06__regExtValue), + offsetof(struct Reg_TestMessage06__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage06__regExtValue, present), + sizeof(((struct Reg_TestMessage06__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_141 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_141 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage06_139[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage06, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_140, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_140, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_139 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage06, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_141, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_141, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_141, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_139 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage06_tags_139[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage06_tag2el_139[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage06_specs_139 = { + sizeof(struct Reg_TestMessage06), + offsetof(struct Reg_TestMessage06, _asn_ctx), + asn_MAP_Reg_TestMessage06_tag2el_139, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage06 = { + "Reg-TestMessage06", + "Reg-TestMessage06", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage06_tags_139, + sizeof(asn_DEF_Reg_TestMessage06_tags_139) + /sizeof(asn_DEF_Reg_TestMessage06_tags_139[0]), /* 1 */ + asn_DEF_Reg_TestMessage06_tags_139, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage06_tags_139) + /sizeof(asn_DEF_Reg_TestMessage06_tags_139[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage06_139, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage06_specs_139 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_144 = { + sizeof(struct Reg_TestMessage07__regExtValue), + offsetof(struct Reg_TestMessage07__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage07__regExtValue, present), + sizeof(((struct Reg_TestMessage07__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_144 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_144 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage07_142[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage07, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_143, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_143, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_142 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage07, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_144, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_144, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_144, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_142 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage07_tags_142[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage07_tag2el_142[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage07_specs_142 = { + sizeof(struct Reg_TestMessage07), + offsetof(struct Reg_TestMessage07, _asn_ctx), + asn_MAP_Reg_TestMessage07_tag2el_142, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage07 = { + "Reg-TestMessage07", + "Reg-TestMessage07", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage07_tags_142, + sizeof(asn_DEF_Reg_TestMessage07_tags_142) + /sizeof(asn_DEF_Reg_TestMessage07_tags_142[0]), /* 1 */ + asn_DEF_Reg_TestMessage07_tags_142, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage07_tags_142) + /sizeof(asn_DEF_Reg_TestMessage07_tags_142[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage07_142, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage07_specs_142 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_147 = { + sizeof(struct Reg_TestMessage08__regExtValue), + offsetof(struct Reg_TestMessage08__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage08__regExtValue, present), + sizeof(((struct Reg_TestMessage08__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_147 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_147 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage08_145[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage08, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_146, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_146, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_145 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage08, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_147, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_147, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_147, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_145 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage08_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage08_tag2el_145[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage08_specs_145 = { + sizeof(struct Reg_TestMessage08), + offsetof(struct Reg_TestMessage08, _asn_ctx), + asn_MAP_Reg_TestMessage08_tag2el_145, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage08 = { + "Reg-TestMessage08", + "Reg-TestMessage08", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage08_tags_145, + sizeof(asn_DEF_Reg_TestMessage08_tags_145) + /sizeof(asn_DEF_Reg_TestMessage08_tags_145[0]), /* 1 */ + asn_DEF_Reg_TestMessage08_tags_145, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage08_tags_145) + /sizeof(asn_DEF_Reg_TestMessage08_tags_145[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage08_145, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage08_specs_145 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_150 = { + sizeof(struct Reg_TestMessage09__regExtValue), + offsetof(struct Reg_TestMessage09__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage09__regExtValue, present), + sizeof(((struct Reg_TestMessage09__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_150 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_150 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage09_148[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage09, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_149, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_149, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_148 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage09, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_150, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_150, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_150, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_148 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage09_tags_148[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage09_tag2el_148[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage09_specs_148 = { + sizeof(struct Reg_TestMessage09), + offsetof(struct Reg_TestMessage09, _asn_ctx), + asn_MAP_Reg_TestMessage09_tag2el_148, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage09 = { + "Reg-TestMessage09", + "Reg-TestMessage09", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage09_tags_148, + sizeof(asn_DEF_Reg_TestMessage09_tags_148) + /sizeof(asn_DEF_Reg_TestMessage09_tags_148[0]), /* 1 */ + asn_DEF_Reg_TestMessage09_tags_148, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage09_tags_148) + /sizeof(asn_DEF_Reg_TestMessage09_tags_148[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage09_148, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage09_specs_148 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_153 = { + sizeof(struct Reg_TestMessage10__regExtValue), + offsetof(struct Reg_TestMessage10__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage10__regExtValue, present), + sizeof(((struct Reg_TestMessage10__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_153 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_153 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage10_151[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage10, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_152, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_152, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_151 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage10, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_153, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_153, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_153, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_151 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage10_tags_151[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage10_tag2el_151[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage10_specs_151 = { + sizeof(struct Reg_TestMessage10), + offsetof(struct Reg_TestMessage10, _asn_ctx), + asn_MAP_Reg_TestMessage10_tag2el_151, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage10 = { + "Reg-TestMessage10", + "Reg-TestMessage10", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage10_tags_151, + sizeof(asn_DEF_Reg_TestMessage10_tags_151) + /sizeof(asn_DEF_Reg_TestMessage10_tags_151[0]), /* 1 */ + asn_DEF_Reg_TestMessage10_tags_151, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage10_tags_151) + /sizeof(asn_DEF_Reg_TestMessage10_tags_151[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage10_151, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage10_specs_151 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_156 = { + sizeof(struct Reg_TestMessage11__regExtValue), + offsetof(struct Reg_TestMessage11__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage11__regExtValue, present), + sizeof(((struct Reg_TestMessage11__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_156 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_156 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage11_154[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage11, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_155, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_155, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_154 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage11, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_156, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_156, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_156, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_154 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage11_tags_154[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage11_tag2el_154[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage11_specs_154 = { + sizeof(struct Reg_TestMessage11), + offsetof(struct Reg_TestMessage11, _asn_ctx), + asn_MAP_Reg_TestMessage11_tag2el_154, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage11 = { + "Reg-TestMessage11", + "Reg-TestMessage11", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage11_tags_154, + sizeof(asn_DEF_Reg_TestMessage11_tags_154) + /sizeof(asn_DEF_Reg_TestMessage11_tags_154[0]), /* 1 */ + asn_DEF_Reg_TestMessage11_tags_154, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage11_tags_154) + /sizeof(asn_DEF_Reg_TestMessage11_tags_154[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage11_154, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage11_specs_154 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_159 = { + sizeof(struct Reg_TestMessage12__regExtValue), + offsetof(struct Reg_TestMessage12__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage12__regExtValue, present), + sizeof(((struct Reg_TestMessage12__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_159 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_159 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage12_157[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage12, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_158, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_158, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_157 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage12, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_159, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_159, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_159, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_157 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage12_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage12_tag2el_157[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage12_specs_157 = { + sizeof(struct Reg_TestMessage12), + offsetof(struct Reg_TestMessage12, _asn_ctx), + asn_MAP_Reg_TestMessage12_tag2el_157, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage12 = { + "Reg-TestMessage12", + "Reg-TestMessage12", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage12_tags_157, + sizeof(asn_DEF_Reg_TestMessage12_tags_157) + /sizeof(asn_DEF_Reg_TestMessage12_tags_157[0]), /* 1 */ + asn_DEF_Reg_TestMessage12_tags_157, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage12_tags_157) + /sizeof(asn_DEF_Reg_TestMessage12_tags_157[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage12_157, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage12_specs_157 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_162 = { + sizeof(struct Reg_TestMessage13__regExtValue), + offsetof(struct Reg_TestMessage13__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage13__regExtValue, present), + sizeof(((struct Reg_TestMessage13__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_162 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_162 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage13_160[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage13, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_161, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_161, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_160 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage13, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_162, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_162, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_162, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_160 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage13_tags_160[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage13_tag2el_160[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage13_specs_160 = { + sizeof(struct Reg_TestMessage13), + offsetof(struct Reg_TestMessage13, _asn_ctx), + asn_MAP_Reg_TestMessage13_tag2el_160, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage13 = { + "Reg-TestMessage13", + "Reg-TestMessage13", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage13_tags_160, + sizeof(asn_DEF_Reg_TestMessage13_tags_160) + /sizeof(asn_DEF_Reg_TestMessage13_tags_160[0]), /* 1 */ + asn_DEF_Reg_TestMessage13_tags_160, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage13_tags_160) + /sizeof(asn_DEF_Reg_TestMessage13_tags_160[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage13_160, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage13_specs_160 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_165 = { + sizeof(struct Reg_TestMessage14__regExtValue), + offsetof(struct Reg_TestMessage14__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage14__regExtValue, present), + sizeof(((struct Reg_TestMessage14__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_165 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_165 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage14_163[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage14, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_164, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_164, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_163 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage14, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_165, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_165, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_165, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_163 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage14_tags_163[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage14_tag2el_163[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage14_specs_163 = { + sizeof(struct Reg_TestMessage14), + offsetof(struct Reg_TestMessage14, _asn_ctx), + asn_MAP_Reg_TestMessage14_tag2el_163, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage14 = { + "Reg-TestMessage14", + "Reg-TestMessage14", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage14_tags_163, + sizeof(asn_DEF_Reg_TestMessage14_tags_163) + /sizeof(asn_DEF_Reg_TestMessage14_tags_163[0]), /* 1 */ + asn_DEF_Reg_TestMessage14_tags_163, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage14_tags_163) + /sizeof(asn_DEF_Reg_TestMessage14_tags_163[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage14_163, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage14_specs_163 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_168 = { + sizeof(struct Reg_TestMessage15__regExtValue), + offsetof(struct Reg_TestMessage15__regExtValue, _asn_ctx), + offsetof(struct Reg_TestMessage15__regExtValue, present), + sizeof(((struct Reg_TestMessage15__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_168 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_168 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TestMessage15_166[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage15, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_167, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_167, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_166 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TestMessage15, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_168, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_168, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_168, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_166 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TestMessage15_tags_166[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TestMessage15_tag2el_166[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TestMessage15_specs_166 = { + sizeof(struct Reg_TestMessage15), + offsetof(struct Reg_TestMessage15, _asn_ctx), + asn_MAP_Reg_TestMessage15_tag2el_166, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TestMessage15 = { + "Reg-TestMessage15", + "Reg-TestMessage15", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TestMessage15_tags_166, + sizeof(asn_DEF_Reg_TestMessage15_tags_166) + /sizeof(asn_DEF_Reg_TestMessage15_tags_166[0]), /* 1 */ + asn_DEF_Reg_TestMessage15_tags_166, /* Same as above */ + sizeof(asn_DEF_Reg_TestMessage15_tags_166) + /sizeof(asn_DEF_Reg_TestMessage15_tags_166[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TestMessage15_166, + 2, /* Elements count */ + &asn_SPC_Reg_TestMessage15_specs_166 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_171 = { + sizeof(struct Reg_TravelerInformation__regExtValue), + offsetof(struct Reg_TravelerInformation__regExtValue, _asn_ctx), + offsetof(struct Reg_TravelerInformation__regExtValue, present), + sizeof(((struct Reg_TravelerInformation__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_171 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_171 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_TravelerInformation_169[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_TravelerInformation, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_170, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_170, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_169 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_TravelerInformation, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_171, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_171, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_171, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_169 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_TravelerInformation_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_TravelerInformation_tag2el_169[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_TravelerInformation_specs_169 = { + sizeof(struct Reg_TravelerInformation), + offsetof(struct Reg_TravelerInformation, _asn_ctx), + asn_MAP_Reg_TravelerInformation_tag2el_169, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_TravelerInformation = { + "Reg-TravelerInformation", + "Reg-TravelerInformation", + &asn_OP_SEQUENCE, + asn_DEF_Reg_TravelerInformation_tags_169, + sizeof(asn_DEF_Reg_TravelerInformation_tags_169) + /sizeof(asn_DEF_Reg_TravelerInformation_tags_169[0]), /* 1 */ + asn_DEF_Reg_TravelerInformation_tags_169, /* Same as above */ + sizeof(asn_DEF_Reg_TravelerInformation_tags_169) + /sizeof(asn_DEF_Reg_TravelerInformation_tags_169[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_TravelerInformation_169, + 2, /* Elements count */ + &asn_SPC_Reg_TravelerInformation_specs_169 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_174 = { + sizeof(struct Reg_GeographicalPath__regExtValue), + offsetof(struct Reg_GeographicalPath__regExtValue, _asn_ctx), + offsetof(struct Reg_GeographicalPath__regExtValue, present), + sizeof(((struct Reg_GeographicalPath__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_174 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_174 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_GeographicalPath_172[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GeographicalPath, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_173, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_173, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_172 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_GeographicalPath, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_174, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_174, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_174, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_172 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_GeographicalPath_tags_172[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_GeographicalPath_tag2el_172[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_GeographicalPath_specs_172 = { + sizeof(struct Reg_GeographicalPath), + offsetof(struct Reg_GeographicalPath, _asn_ctx), + asn_MAP_Reg_GeographicalPath_tag2el_172, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_GeographicalPath = { + "Reg-GeographicalPath", + "Reg-GeographicalPath", + &asn_OP_SEQUENCE, + asn_DEF_Reg_GeographicalPath_tags_172, + sizeof(asn_DEF_Reg_GeographicalPath_tags_172) + /sizeof(asn_DEF_Reg_GeographicalPath_tags_172[0]), /* 1 */ + asn_DEF_Reg_GeographicalPath_tags_172, /* Same as above */ + sizeof(asn_DEF_Reg_GeographicalPath_tags_172) + /sizeof(asn_DEF_Reg_GeographicalPath_tags_172[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_GeographicalPath_172, + 2, /* Elements count */ + &asn_SPC_Reg_GeographicalPath_specs_172 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_177 = { + sizeof(struct Reg_GeometricProjection__regExtValue), + offsetof(struct Reg_GeometricProjection__regExtValue, _asn_ctx), + offsetof(struct Reg_GeometricProjection__regExtValue, present), + sizeof(((struct Reg_GeometricProjection__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_177 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_177 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_GeometricProjection_175[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_GeometricProjection, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_176, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_176, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_175 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_GeometricProjection, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_177, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_177, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_177, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_175 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_GeometricProjection_tags_175[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_GeometricProjection_tag2el_175[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_GeometricProjection_specs_175 = { + sizeof(struct Reg_GeometricProjection), + offsetof(struct Reg_GeometricProjection, _asn_ctx), + asn_MAP_Reg_GeometricProjection_tag2el_175, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_GeometricProjection = { + "Reg-GeometricProjection", + "Reg-GeometricProjection", + &asn_OP_SEQUENCE, + asn_DEF_Reg_GeometricProjection_tags_175, + sizeof(asn_DEF_Reg_GeometricProjection_tags_175) + /sizeof(asn_DEF_Reg_GeometricProjection_tags_175[0]), /* 1 */ + asn_DEF_Reg_GeometricProjection_tags_175, /* Same as above */ + sizeof(asn_DEF_Reg_GeometricProjection_tags_175) + /sizeof(asn_DEF_Reg_GeometricProjection_tags_175[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_GeometricProjection_175, + 2, /* Elements count */ + &asn_SPC_Reg_GeometricProjection_specs_175 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_180 = { + sizeof(struct Reg_NodeAttributeSetLL__regExtValue), + offsetof(struct Reg_NodeAttributeSetLL__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeAttributeSetLL__regExtValue, present), + sizeof(((struct Reg_NodeAttributeSetLL__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_180 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_180 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeAttributeSetLL_178[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetLL, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_179, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_179, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_178 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeAttributeSetLL, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_180, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_180, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_180, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_178 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeAttributeSetLL_tags_178[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeAttributeSetLL_tag2el_178[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeAttributeSetLL_specs_178 = { + sizeof(struct Reg_NodeAttributeSetLL), + offsetof(struct Reg_NodeAttributeSetLL, _asn_ctx), + asn_MAP_Reg_NodeAttributeSetLL_tag2el_178, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeAttributeSetLL = { + "Reg-NodeAttributeSetLL", + "Reg-NodeAttributeSetLL", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeAttributeSetLL_tags_178, + sizeof(asn_DEF_Reg_NodeAttributeSetLL_tags_178) + /sizeof(asn_DEF_Reg_NodeAttributeSetLL_tags_178[0]), /* 1 */ + asn_DEF_Reg_NodeAttributeSetLL_tags_178, /* Same as above */ + sizeof(asn_DEF_Reg_NodeAttributeSetLL_tags_178) + /sizeof(asn_DEF_Reg_NodeAttributeSetLL_tags_178[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_NodeAttributeSetLL_178, + 2, /* Elements count */ + &asn_SPC_Reg_NodeAttributeSetLL_specs_178 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_regExtValue_specs_183 = { + sizeof(struct Reg_NodeOffsetPointLL__regExtValue), + offsetof(struct Reg_NodeOffsetPointLL__regExtValue, _asn_ctx), + offsetof(struct Reg_NodeOffsetPointLL__regExtValue, present), + sizeof(((struct Reg_NodeOffsetPointLL__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regExtValue_183 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_regExtValue_specs_183 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Reg_NodeOffsetPointLL_181[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointLL, regionId), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RegionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regionId_constr_182, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regionId_constr_182, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regionId_constraint_181 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Reg_NodeOffsetPointLL, regExtValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_regExtValue_183, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regExtValue_constr_183, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regExtValue_constr_183, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regExtValue_constraint_181 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reg_NodeOffsetPointLL_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reg_NodeOffsetPointLL_tag2el_181[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* regionId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reg_NodeOffsetPointLL_specs_181 = { + sizeof(struct Reg_NodeOffsetPointLL), + offsetof(struct Reg_NodeOffsetPointLL, _asn_ctx), + asn_MAP_Reg_NodeOffsetPointLL_tag2el_181, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Reg_NodeOffsetPointLL = { + "Reg-NodeOffsetPointLL", + "Reg-NodeOffsetPointLL", + &asn_OP_SEQUENCE, + asn_DEF_Reg_NodeOffsetPointLL_tags_181, + sizeof(asn_DEF_Reg_NodeOffsetPointLL_tags_181) + /sizeof(asn_DEF_Reg_NodeOffsetPointLL_tags_181[0]), /* 1 */ + asn_DEF_Reg_NodeOffsetPointLL_tags_181, /* Same as above */ + sizeof(asn_DEF_Reg_NodeOffsetPointLL_tags_181) + /sizeof(asn_DEF_Reg_NodeOffsetPointLL_tags_181[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Reg_NodeOffsetPointLL_181, + 2, /* Elements count */ + &asn_SPC_Reg_NodeOffsetPointLL_specs_181 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RegulatorySpeedLimit.c b/src/tmx/Asn_J2735/src/2020/RegulatorySpeedLimit.c new file mode 100644 index 000000000..4cdb81795 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RegulatorySpeedLimit.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RegulatorySpeedLimit_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RegulatorySpeedLimit_specs_1 = { + sizeof(struct RegulatorySpeedLimit), + offsetof(struct RegulatorySpeedLimit, _asn_ctx), + asn_MAP_RegulatorySpeedLimit_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RequestID.c b/src/tmx/Asn_J2735/src/2020/RequestID.c new file mode 100644 index 000000000..350e77b79 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RequestID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RequestID.h" + +int +RequestID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RequestID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RequestID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_RequestID_tags_1, + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + asn_DEF_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestID_tags_1) + /sizeof(asn_DEF_RequestID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RequestID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RequestID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RequestID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RequestImportanceLevel.c b/src/tmx/Asn_J2735/src/2020/RequestImportanceLevel.c new file mode 100644 index 000000000..ce9dcba82 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RequestImportanceLevel.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RequestImportanceLevel.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RequestImportanceLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RequestImportanceLevel_value2enum_1[] = { + { 0, 29, "requestImportanceLevelUnKnown" }, + { 1, 23, "requestImportanceLevel1" }, + { 2, 23, "requestImportanceLevel2" }, + { 3, 23, "requestImportanceLevel3" }, + { 4, 23, "requestImportanceLevel4" }, + { 5, 23, "requestImportanceLevel5" }, + { 6, 23, "requestImportanceLevel6" }, + { 7, 23, "requestImportanceLevel7" }, + { 8, 23, "requestImportanceLevel8" }, + { 9, 23, "requestImportanceLevel9" }, + { 10, 24, "requestImportanceLevel10" }, + { 11, 24, "requestImportanceLevel11" }, + { 12, 24, "requestImportanceLevel12" }, + { 13, 24, "requestImportanceLevel13" }, + { 14, 24, "requestImportanceLevel14" }, + { 15, 25, "requestImportanceReserved" } +}; +static const unsigned int asn_MAP_RequestImportanceLevel_enum2value_1[] = { + 1, /* requestImportanceLevel1(1) */ + 10, /* requestImportanceLevel10(10) */ + 11, /* requestImportanceLevel11(11) */ + 12, /* requestImportanceLevel12(12) */ + 13, /* requestImportanceLevel13(13) */ + 14, /* requestImportanceLevel14(14) */ + 2, /* requestImportanceLevel2(2) */ + 3, /* requestImportanceLevel3(3) */ + 4, /* requestImportanceLevel4(4) */ + 5, /* requestImportanceLevel5(5) */ + 6, /* requestImportanceLevel6(6) */ + 7, /* requestImportanceLevel7(7) */ + 8, /* requestImportanceLevel8(8) */ + 9, /* requestImportanceLevel9(9) */ + 0, /* requestImportanceLevelUnKnown(0) */ + 15 /* requestImportanceReserved(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestImportanceLevel_specs_1 = { + asn_MAP_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestImportanceLevel_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_RequestImportanceLevel_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RequestImportanceLevel_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RequestImportanceLevel_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RequestSubRole.c b/src/tmx/Asn_J2735/src/2020/RequestSubRole.c new file mode 100644 index 000000000..306238b77 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RequestSubRole.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RequestSubRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RequestSubRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RequestSubRole_value2enum_1[] = { + { 0, 21, "requestSubRoleUnKnown" }, + { 1, 15, "requestSubRole1" }, + { 2, 15, "requestSubRole2" }, + { 3, 15, "requestSubRole3" }, + { 4, 15, "requestSubRole4" }, + { 5, 15, "requestSubRole5" }, + { 6, 15, "requestSubRole6" }, + { 7, 15, "requestSubRole7" }, + { 8, 15, "requestSubRole8" }, + { 9, 15, "requestSubRole9" }, + { 10, 16, "requestSubRole10" }, + { 11, 16, "requestSubRole11" }, + { 12, 16, "requestSubRole12" }, + { 13, 16, "requestSubRole13" }, + { 14, 16, "requestSubRole14" }, + { 15, 22, "requestSubRoleReserved" } +}; +static const unsigned int asn_MAP_RequestSubRole_enum2value_1[] = { + 1, /* requestSubRole1(1) */ + 10, /* requestSubRole10(10) */ + 11, /* requestSubRole11(11) */ + 12, /* requestSubRole12(12) */ + 13, /* requestSubRole13(13) */ + 14, /* requestSubRole14(14) */ + 2, /* requestSubRole2(2) */ + 3, /* requestSubRole3(3) */ + 4, /* requestSubRole4(4) */ + 5, /* requestSubRole5(5) */ + 6, /* requestSubRole6(6) */ + 7, /* requestSubRole7(7) */ + 8, /* requestSubRole8(8) */ + 9, /* requestSubRole9(9) */ + 15, /* requestSubRoleReserved(15) */ + 0 /* requestSubRoleUnKnown(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestSubRole_specs_1 = { + asn_MAP_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestSubRole_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_RequestSubRole_tags_1, + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestSubRole_tags_1) + /sizeof(asn_DEF_RequestSubRole_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RequestSubRole_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RequestSubRole_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RequestedItem.c b/src/tmx/Asn_J2735/src/2020/RequestedItem.c new file mode 100644 index 000000000..6b0eb47f7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RequestedItem.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CommonSafetyRequest" + * found in "J2735-CommonSafetyRequest.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RequestedItem.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RequestedItem_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RequestedItem_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 16 } /* (0..16,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RequestedItem_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 5, "itemA" }, + { 2, 5, "itemB" }, + { 3, 5, "itemC" }, + { 4, 5, "itemD" }, + { 5, 5, "itemE" }, + { 6, 5, "itemF" }, + { 7, 5, "itemG" }, + { 8, 5, "itemI" }, + { 9, 5, "itemJ" }, + { 10, 5, "itemK" }, + { 11, 5, "itemL" }, + { 12, 5, "itemM" }, + { 13, 5, "itemN" }, + { 14, 5, "itemO" }, + { 15, 5, "itemP" }, + { 16, 5, "itemQ" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RequestedItem_enum2value_1[] = { + 1, /* itemA(1) */ + 2, /* itemB(2) */ + 3, /* itemC(3) */ + 4, /* itemD(4) */ + 5, /* itemE(5) */ + 6, /* itemF(6) */ + 7, /* itemG(7) */ + 8, /* itemI(8) */ + 9, /* itemJ(9) */ + 10, /* itemK(10) */ + 11, /* itemL(11) */ + 12, /* itemM(12) */ + 13, /* itemN(13) */ + 14, /* itemO(14) */ + 15, /* itemP(15) */ + 16, /* itemQ(16) */ + 0 /* reserved(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RequestedItem_specs_1 = { + asn_MAP_RequestedItem_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestedItem_enum2value_1, /* N => "tag"; sorted by N */ + 17, /* Number of elements in the maps */ + 18, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestedItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestedItem = { + "RequestedItem", + "RequestedItem", + &asn_OP_NativeEnumerated, + asn_DEF_RequestedItem_tags_1, + sizeof(asn_DEF_RequestedItem_tags_1) + /sizeof(asn_DEF_RequestedItem_tags_1[0]), /* 1 */ + asn_DEF_RequestedItem_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestedItem_tags_1) + /sizeof(asn_DEF_RequestedItem_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RequestedItem_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RequestedItem_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestedItem_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RequestedItemList.c b/src/tmx/Asn_J2735/src/2020/RequestedItemList.c new file mode 100644 index 000000000..1e02afc73 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RequestedItemList.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CommonSafetyRequest" + * found in "J2735-CommonSafetyRequest.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RequestedItemList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RequestedItemList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RequestedItemList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RequestedItemList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_RequestedItem, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RequestedItemList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RequestedItemList_specs_1 = { + sizeof(struct RequestedItemList), + offsetof(struct RequestedItemList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestedItemList = { + "RequestedItemList", + "RequestedItemList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RequestedItemList_tags_1, + sizeof(asn_DEF_RequestedItemList_tags_1) + /sizeof(asn_DEF_RequestedItemList_tags_1[0]), /* 1 */ + asn_DEF_RequestedItemList_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestedItemList_tags_1) + /sizeof(asn_DEF_RequestedItemList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RequestedItemList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RequestedItemList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RequestedItemList_1, + 1, /* Single element */ + &asn_SPC_RequestedItemList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RequestorDescription.c b/src/tmx/Asn_J2735/src/2020/RequestorDescription.c new file mode 100644 index 000000000..9606db3e4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RequestorDescription.c @@ -0,0 +1,318 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RequestorDescription.h" + +#include "RequestorType.h" +#include "RequestorPositionVector.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RequestorDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct RequestorDescription__regional), + offsetof(struct RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_10, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_10, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 8, offsetof(struct RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 7, offsetof(struct RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorPositionVector, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 6, offsetof(struct RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 5, offsetof(struct RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "routeName" + }, + { ATF_POINTER, 4, offsetof(struct RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transitStatus" + }, + { ATF_POINTER, 3, offsetof(struct RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransitVehicleOccupancy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transitOccupancy" + }, + { ATF_POINTER, 2, offsetof(struct RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DeltaTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transitSchedule" + }, + { ATF_POINTER, 1, offsetof(struct RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_10, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_10, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* routeName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* transitStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* transitOccupancy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transitSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorDescription_specs_1 = { + sizeof(struct RequestorDescription), + offsetof(struct RequestorDescription, _asn_ctx), + asn_MAP_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_RequestorDescription_tags_1, + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorDescription_tags_1) + /sizeof(asn_DEF_RequestorDescription_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RequestorPositionVector.c b/src/tmx/Asn_J2735/src/2020/RequestorPositionVector.c new file mode 100644 index 000000000..4e31c1b59 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RequestorPositionVector.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RequestorPositionVector.h" + +#include "TransmissionAndSpeed.h" +asn_TYPE_member_t asn_MBR_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 2, offsetof(struct RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_Angle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 1, offsetof(struct RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionAndSpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const int asn_MAP_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorPositionVector_specs_1 = { + sizeof(struct RequestorPositionVector), + offsetof(struct RequestorPositionVector, _asn_ctx), + asn_MAP_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_RequestorPositionVector_tags_1, + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_RequestorPositionVector_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RequestorType.c b/src/tmx/Asn_J2735/src/2020/RequestorType.c new file mode 100644 index 000000000..965a6dc39 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RequestorType.c @@ -0,0 +1,159 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RequestorType.h" + +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 5, offsetof(struct RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestSubRole, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "subrole" + }, + { ATF_POINTER, 4, offsetof(struct RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestImportanceLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 3, offsetof(struct RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Iso3833VehicleType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iso3883" + }, + { ATF_POINTER, 2, offsetof(struct RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hpmsType" + }, + { ATF_POINTER, 1, offsetof(struct RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_RequestorType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RequestorType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subrole */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iso3883 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* hpmsType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RequestorType_specs_1 = { + sizeof(struct RequestorType), + offsetof(struct RequestorType, _asn_ctx), + asn_MAP_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_RequestorType_tags_1, + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestorType_tags_1) + /sizeof(asn_DEF_RequestorType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ResponderGroupAffected.c b/src/tmx/Asn_J2735/src/2020/ResponderGroupAffected.c new file mode 100644 index 000000000..73658b471 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ResponderGroupAffected.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ResponderGroupAffected.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ResponderGroupAffected_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ResponderGroupAffected_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_ResponderGroupAffected_value2enum_1[] = { + { 9729, 23, "emergency-vehicle-units" }, + { 9730, 29, "federal-law-enforcement-units" }, + { 9731, 18, "state-police-units" }, + { 9732, 19, "county-police-units" }, + { 9733, 18, "local-police-units" }, + { 9734, 15, "ambulance-units" }, + { 9735, 12, "rescue-units" }, + { 9736, 10, "fire-units" }, + { 9737, 12, "hAZMAT-units" }, + { 9738, 14, "light-tow-unit" }, + { 9739, 14, "heavy-tow-unit" }, + { 9740, 23, "freeway-service-patrols" }, + { 9741, 29, "transportation-response-units" }, + { 9742, 33, "private-contractor-response-units" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ResponderGroupAffected_enum2value_1[] = { + 5, /* ambulance-units(9734) */ + 3, /* county-police-units(9732) */ + 0, /* emergency-vehicle-units(9729) */ + 1, /* federal-law-enforcement-units(9730) */ + 7, /* fire-units(9736) */ + 11, /* freeway-service-patrols(9740) */ + 8, /* hAZMAT-units(9737) */ + 10, /* heavy-tow-unit(9739) */ + 9, /* light-tow-unit(9738) */ + 4, /* local-police-units(9733) */ + 13, /* private-contractor-response-units(9742) */ + 6, /* rescue-units(9735) */ + 2, /* state-police-units(9731) */ + 12 /* transportation-response-units(9741) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ResponderGroupAffected_specs_1 = { + asn_MAP_ResponderGroupAffected_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ResponderGroupAffected_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ResponderGroupAffected_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ResponderGroupAffected = { + "ResponderGroupAffected", + "ResponderGroupAffected", + &asn_OP_NativeEnumerated, + asn_DEF_ResponderGroupAffected_tags_1, + sizeof(asn_DEF_ResponderGroupAffected_tags_1) + /sizeof(asn_DEF_ResponderGroupAffected_tags_1[0]), /* 1 */ + asn_DEF_ResponderGroupAffected_tags_1, /* Same as above */ + sizeof(asn_DEF_ResponderGroupAffected_tags_1) + /sizeof(asn_DEF_ResponderGroupAffected_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ResponderGroupAffected_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ResponderGroupAffected_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ResponderGroupAffected_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ResponseType.c b/src/tmx/Asn_J2735/src/2020/ResponseType.c new file mode 100644 index 000000000..4c8a4c8ff --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ResponseType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ResponseType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ResponseType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ResponseType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_ResponseType_value2enum_1[] = { + { 0, 21, "notInUseOrNotEquipped" }, + { 1, 9, "emergency" }, + { 2, 12, "nonEmergency" }, + { 3, 7, "pursuit" }, + { 4, 10, "stationary" }, + { 5, 10, "slowMoving" }, + { 6, 17, "stopAndGoMovement" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ResponseType_enum2value_1[] = { + 1, /* emergency(1) */ + 2, /* nonEmergency(2) */ + 0, /* notInUseOrNotEquipped(0) */ + 3, /* pursuit(3) */ + 5, /* slowMoving(5) */ + 4, /* stationary(4) */ + 6 /* stopAndGoMovement(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ResponseType_specs_1 = { + asn_MAP_ResponseType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ResponseType_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ResponseType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ResponseType = { + "ResponseType", + "ResponseType", + &asn_OP_NativeEnumerated, + asn_DEF_ResponseType_tags_1, + sizeof(asn_DEF_ResponseType_tags_1) + /sizeof(asn_DEF_ResponseType_tags_1[0]), /* 1 */ + asn_DEF_ResponseType_tags_1, /* Same as above */ + sizeof(asn_DEF_ResponseType_tags_1) + /sizeof(asn_DEF_ResponseType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ResponseType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ResponseType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ResponseType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RestrictionAppliesTo.c b/src/tmx/Asn_J2735/src/2020/RestrictionAppliesTo.c new file mode 100644 index 000000000..449d63a4e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RestrictionAppliesTo.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RestrictionAppliesTo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_RestrictionAppliesTo_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 15, "equippedTransit" }, + { 2, 13, "equippedTaxis" }, + { 3, 13, "equippedOther" }, + { 4, 17, "emissionCompliant" }, + { 5, 15, "equippedBicycle" }, + { 6, 15, "weightCompliant" }, + { 7, 15, "heightCompliant" }, + { 8, 11, "pedestrians" }, + { 9, 17, "slowMovingPersons" }, + { 10, 15, "wheelchairUsers" }, + { 11, 18, "visualDisabilities" }, + { 12, 17, "audioDisabilities" }, + { 13, 24, "otherUnknownDisabilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RestrictionAppliesTo_enum2value_1[] = { + 12, /* audioDisabilities(12) */ + 4, /* emissionCompliant(4) */ + 5, /* equippedBicycle(5) */ + 3, /* equippedOther(3) */ + 2, /* equippedTaxis(2) */ + 1, /* equippedTransit(1) */ + 7, /* heightCompliant(7) */ + 0, /* none(0) */ + 13, /* otherUnknownDisabilities(13) */ + 8, /* pedestrians(8) */ + 9, /* slowMovingPersons(9) */ + 11, /* visualDisabilities(11) */ + 6, /* weightCompliant(6) */ + 10 /* wheelchairUsers(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RestrictionAppliesTo_specs_1 = { + asn_MAP_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RestrictionAppliesTo_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_RestrictionAppliesTo_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RestrictionAppliesTo_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RestrictionAppliesTo_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RestrictionClassAssignment.c b/src/tmx/Asn_J2735/src/2020/RestrictionClassAssignment.c new file mode 100644 index 000000000..0f2af3a14 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RestrictionClassAssignment.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionClassID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionUserTypeList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "users" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionClassAssignment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* users */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionClassAssignment_specs_1 = { + sizeof(struct RestrictionClassAssignment), + offsetof(struct RestrictionClassAssignment, _asn_ctx), + asn_MAP_RestrictionClassAssignment_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_RestrictionClassAssignment_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RestrictionClassID.c b/src/tmx/Asn_J2735/src/2020/RestrictionClassID.c new file mode 100644 index 000000000..668210759 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RestrictionClassID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RestrictionClassID.h" + +int +RestrictionClassID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RestrictionClassID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_RestrictionClassID_tags_1, + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassID_tags_1) + /sizeof(asn_DEF_RestrictionClassID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RestrictionClassID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RestrictionClassID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RestrictionClassID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RestrictionClassList.c b/src/tmx/Asn_J2735/src/2020/RestrictionClassList.c new file mode 100644 index 000000000..e6da234fd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RestrictionClassList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RestrictionClassList.h" + +#include "RestrictionClassAssignment.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..254)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RestrictionClassList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 254 } /* (SIZE(1..254)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RestrictionClassAssignment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionClassList_specs_1 = { + sizeof(struct RestrictionClassList), + offsetof(struct RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionClassList_tags_1, + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionClassList_tags_1) + /sizeof(asn_DEF_RestrictionClassList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RestrictionClassList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RestrictionClassList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RestrictionUserType-addGrpC.c b/src/tmx/Asn_J2735/src/2020/RestrictionUserType-addGrpC.c new file mode 100644 index 000000000..55fd20ebe --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RestrictionUserType-addGrpC.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmissionType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "emission" + }, +}; +static const int asn_MAP_RestrictionUserType_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* emission */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct RestrictionUserType_addGrpC), + offsetof(struct RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_RestrictionUserType_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RestrictionUserType_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RestrictionUserType.c b/src/tmx/Asn_J2735/src/2020/RestrictionUserType.c new file mode 100644 index 000000000..853b8d5a7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RestrictionUserType.c @@ -0,0 +1,197 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RestrictionUserType.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RestrictionUserType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RestrictionUserType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_3 = { + sizeof(struct RestrictionUserType__regional), + offsetof(struct RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_3, + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_regional_tags_3) + /sizeof(asn_DEF_regional_tags_3[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_3, + 1, /* Single element */ + &asn_SPC_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RestrictionAppliesTo, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_regional_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RestrictionUserType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_RestrictionUserType_specs_1 = { + sizeof(struct RestrictionUserType), + offsetof(struct RestrictionUserType, _asn_ctx), + offsetof(struct RestrictionUserType, present), + sizeof(((struct RestrictionUserType *)0)->present), + asn_MAP_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserType = { + "RestrictionUserType", + "RestrictionUserType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RestrictionUserType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RestrictionUserType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RestrictionUserTypeList.c b/src/tmx/Asn_J2735/src/2020/RestrictionUserTypeList.c new file mode 100644 index 000000000..6c288b6d2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RestrictionUserTypeList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RestrictionUserTypeList.h" + +#include "RestrictionUserType.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RestrictionUserTypeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RestrictionUserType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RestrictionUserTypeList_specs_1 = { + sizeof(struct RestrictionUserTypeList), + offsetof(struct RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_RestrictionUserTypeList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RestrictionUserTypeList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RestrictionUserTypeList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RoadLaneSetList.c b/src/tmx/Asn_J2735/src/2020/RoadLaneSetList.c new file mode 100644 index 000000000..31f194243 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RoadLaneSetList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RoadLaneSetList.h" + +#include "GenericLane.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RoadLaneSetList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GenericLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadLaneSetList_specs_1 = { + sizeof(struct RoadLaneSetList), + offsetof(struct RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadLaneSetList_tags_1, + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_RoadLaneSetList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RoadLaneSetList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RoadLaneSetList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RoadRegulatorID.c b/src/tmx/Asn_J2735/src/2020/RoadRegulatorID.c new file mode 100644 index 000000000..cff16e7cb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RoadRegulatorID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RoadRegulatorID.h" + +int +RoadRegulatorID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RoadRegulatorID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_RoadRegulatorID_tags_1, + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_RoadRegulatorID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RoadRegulatorID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RoadRegulatorID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RoadRegulatorID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RoadSegment.c b/src/tmx/Asn_J2735/src/2020/RoadSegment.c new file mode 100644 index 000000000..98695f7ad --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RoadSegment.c @@ -0,0 +1,299 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RoadSegment.h" + +#include "SpeedLimitList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RoadSegment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct RoadSegment__regional), + offsetof(struct RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_9, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_9, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentReferenceID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimitList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadLaneSetList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadLaneSet" + }, + { ATF_POINTER, 1, offsetof(struct RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_9, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_9, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* roadLaneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegment_specs_1 = { + sizeof(struct RoadSegment), + offsetof(struct RoadSegment, _asn_ctx), + asn_MAP_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegment_tags_1, + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegment_tags_1) + /sizeof(asn_DEF_RoadSegment_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RoadSegmentID.c b/src/tmx/Asn_J2735/src/2020/RoadSegmentID.c new file mode 100644 index 000000000..c13931607 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RoadSegmentID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RoadSegmentID.h" + +int +RoadSegmentID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RoadSegmentID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_RoadSegmentID_tags_1, + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentID_tags_1) + /sizeof(asn_DEF_RoadSegmentID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RoadSegmentID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RoadSegmentID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RoadSegmentID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RoadSegmentList.c b/src/tmx/Asn_J2735/src/2020/RoadSegmentList.c new file mode 100644 index 000000000..3bff19c80 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RoadSegmentList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RoadSegmentList.h" + +#include "RoadSegment.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RoadSegmentList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RoadSegment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RoadSegmentList_specs_1 = { + sizeof(struct RoadSegmentList), + offsetof(struct RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_RoadSegmentList_tags_1, + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentList_tags_1) + /sizeof(asn_DEF_RoadSegmentList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RoadSegmentList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RoadSegmentList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RoadSegmentReferenceID.c b/src/tmx/Asn_J2735/src/2020/RoadSegmentReferenceID.c new file mode 100644 index 000000000..ea58c5a45 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RoadSegmentReferenceID.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadRegulatorID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSegmentID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSegmentReferenceID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSegmentReferenceID_specs_1 = { + sizeof(struct RoadSegmentReferenceID), + offsetof(struct RoadSegmentReferenceID, _asn_ctx), + asn_MAP_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RoadSideAlert.c b/src/tmx/Asn_J2735/src/2020/RoadSideAlert.c new file mode 100644 index 000000000..038926cf4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RoadSideAlert.c @@ -0,0 +1,438 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "RoadSideAlert" + * found in "J2735-RoadSideAlert.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RoadSideAlert.h" + +#include "FullPositionVector.h" +#include "RegionalExtension.h" +static int +memb_description_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 8UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_description_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_description_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_description_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_description_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_description_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_description_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_description_specs_5 = { + sizeof(struct RoadSideAlert__description), + offsetof(struct RoadSideAlert__description, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_description_5 = { + "description", + "description", + &asn_OP_SEQUENCE_OF, + asn_DEF_description_tags_5, + sizeof(asn_DEF_description_tags_5) + /sizeof(asn_DEF_description_tags_5[0]) - 1, /* 1 */ + asn_DEF_description_tags_5, /* Same as above */ + sizeof(asn_DEF_description_tags_5) + /sizeof(asn_DEF_description_tags_5[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_description_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_description_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_description_5, + 1, /* Single element */ + &asn_SPC_description_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_RoadSideAlert, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_12 = { + sizeof(struct RoadSideAlert__regional), + offsetof(struct RoadSideAlert__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_12, + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_regional_tags_12) + /sizeof(asn_DEF_regional_tags_12[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_12, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_12, + 1, /* Single element */ + &asn_SPC_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RoadSideAlert_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RoadSideAlert, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_POINTER, 1, offsetof(struct RoadSideAlert, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSideAlert, typeEvent), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "typeEvent" + }, + { ATF_POINTER, 7, offsetof(struct RoadSideAlert, description), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_description_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_description_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_description_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_description_constraint_1 + }, + 0, 0, /* No default value */ + "description" + }, + { ATF_POINTER, 6, offsetof(struct RoadSideAlert, priority), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Priority, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "priority" + }, + { ATF_POINTER, 5, offsetof(struct RoadSideAlert, heading), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingSlice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_POINTER, 4, offsetof(struct RoadSideAlert, extent), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Extent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "extent" + }, + { ATF_POINTER, 3, offsetof(struct RoadSideAlert, position), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 2, offsetof(struct RoadSideAlert, furtherInfoID), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FurtherInfoID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "furtherInfoID" + }, + { ATF_POINTER, 1, offsetof(struct RoadSideAlert, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_12, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_RoadSideAlert_oms_1[] = { 1, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_RoadSideAlert_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSideAlert_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* typeEvent */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* description */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* priority */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* extent */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* furtherInfoID */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSideAlert_specs_1 = { + sizeof(struct RoadSideAlert), + offsetof(struct RoadSideAlert, _asn_ctx), + asn_MAP_RoadSideAlert_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_RoadSideAlert_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSideAlert = { + "RoadSideAlert", + "RoadSideAlert", + &asn_OP_SEQUENCE, + asn_DEF_RoadSideAlert_tags_1, + sizeof(asn_DEF_RoadSideAlert_tags_1) + /sizeof(asn_DEF_RoadSideAlert_tags_1[0]), /* 1 */ + asn_DEF_RoadSideAlert_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSideAlert_tags_1) + /sizeof(asn_DEF_RoadSideAlert_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RoadSideAlert_1, + 10, /* Elements count */ + &asn_SPC_RoadSideAlert_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RoadSignID.c b/src/tmx/Asn_J2735/src/2020/RoadSignID.c new file mode 100644 index 000000000..0f733aee1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RoadSignID.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RoadSignID.h" + +asn_TYPE_member_t asn_MBR_RoadSignID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RoadSignID, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "position" + }, + { ATF_NOFLAGS, 0, offsetof(struct RoadSignID, viewAngle), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingSlice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "viewAngle" + }, + { ATF_POINTER, 2, offsetof(struct RoadSignID, mutcdCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MUTCDCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mutcdCode" + }, + { ATF_POINTER, 1, offsetof(struct RoadSignID, crc), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MsgCRC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "crc" + }, +}; +static const int asn_MAP_RoadSignID_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_RoadSignID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RoadSignID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* viewAngle */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mutcdCode */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* crc */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RoadSignID_specs_1 = { + sizeof(struct RoadSignID), + offsetof(struct RoadSignID, _asn_ctx), + asn_MAP_RoadSignID_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_RoadSignID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RoadSignID = { + "RoadSignID", + "RoadSignID", + &asn_OP_SEQUENCE, + asn_DEF_RoadSignID_tags_1, + sizeof(asn_DEF_RoadSignID_tags_1) + /sizeof(asn_DEF_RoadSignID_tags_1[0]), /* 1 */ + asn_DEF_RoadSignID_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadSignID_tags_1) + /sizeof(asn_DEF_RoadSignID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_RoadSignID_1, + 4, /* Elements count */ + &asn_SPC_RoadSignID_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/RoadwayCrownAngle.c b/src/tmx/Asn_J2735/src/2020/RoadwayCrownAngle.c new file mode 100644 index 000000000..369ce172b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/RoadwayCrownAngle.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "RoadwayCrownAngle.h" + +int +RoadwayCrownAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_RoadwayCrownAngle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_RoadwayCrownAngle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_RoadwayCrownAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + RoadwayCrownAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SPAT.c b/src/tmx/Asn_J2735/src/2020/SPAT.c new file mode 100644 index 000000000..72f139b43 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SPAT.c @@ -0,0 +1,226 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SPAT.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SPAT, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SPAT__regional), + offsetof(struct SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionStateList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 1, offsetof(struct SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SPAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SPAT_specs_1 = { + sizeof(struct SPAT), + offsetof(struct SPAT, _asn_ctx), + asn_MAP_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_SPAT_tags_1, + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + asn_DEF_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_SPAT_tags_1) + /sizeof(asn_DEF_SPAT_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SPAT_1, + 4, /* Elements count */ + &asn_SPC_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SPAT_TimeMark.c b/src/tmx/Asn_J2735/src/2020/SPAT_TimeMark.c new file mode 100644 index 000000000..efc5602f5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SPAT_TimeMark.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SPAT_TimeMark.h" + +int +SPAT_TimeMark_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 36111L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SPAT_TimeMark_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..36111) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SPAT_TimeMark_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 36111 } /* (0..36111) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SPAT_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SPAT_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_SPAT_TimeMark_tags_1, + sizeof(asn_DEF_SPAT_TimeMark_tags_1) + /sizeof(asn_DEF_SPAT_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_SPAT_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_SPAT_TimeMark_tags_1) + /sizeof(asn_DEF_SPAT_TimeMark_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SPAT_TimeMark_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SPAT_TimeMark_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SPAT_TimeMark_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SSPindex.c b/src/tmx/Asn_J2735/src/2020/SSPindex.c new file mode 100644 index 000000000..afbab0186 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SSPindex.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SSPindex.h" + +int +SSPindex_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 31L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SSPindex_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SSPindex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SSPindex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SSPindex = { + "SSPindex", + "SSPindex", + &asn_OP_NativeInteger, + asn_DEF_SSPindex_tags_1, + sizeof(asn_DEF_SSPindex_tags_1) + /sizeof(asn_DEF_SSPindex_tags_1[0]), /* 1 */ + asn_DEF_SSPindex_tags_1, /* Same as above */ + sizeof(asn_DEF_SSPindex_tags_1) + /sizeof(asn_DEF_SSPindex_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SSPindex_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SSPindex_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SSPindex_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Sample.c b/src/tmx/Asn_J2735/src/2020/Sample.c new file mode 100644 index 000000000..caf6a8e42 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Sample.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Sample.h" + +static int +memb_sampleStart_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_sampleEnd_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_sampleStart_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_sampleStart_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_sampleEnd_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_sampleEnd_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Sample_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Sample, sampleStart), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_sampleStart_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_sampleStart_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_sampleStart_constraint_1 + }, + 0, 0, /* No default value */ + "sampleStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct Sample, sampleEnd), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_sampleEnd_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_sampleEnd_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_sampleEnd_constraint_1 + }, + 0, 0, /* No default value */ + "sampleEnd" + }, +}; +static const ber_tlv_tag_t asn_DEF_Sample_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Sample_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sampleStart */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sampleEnd */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Sample_specs_1 = { + sizeof(struct Sample), + offsetof(struct Sample, _asn_ctx), + asn_MAP_Sample_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Sample = { + "Sample", + "Sample", + &asn_OP_SEQUENCE, + asn_DEF_Sample_tags_1, + sizeof(asn_DEF_Sample_tags_1) + /sizeof(asn_DEF_Sample_tags_1[0]), /* 1 */ + asn_DEF_Sample_tags_1, /* Same as above */ + sizeof(asn_DEF_Sample_tags_1) + /sizeof(asn_DEF_Sample_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Sample_1, + 2, /* Elements count */ + &asn_SPC_Sample_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Scale-B12.c b/src/tmx/Asn_J2735/src/2020/Scale-B12.c new file mode 100644 index 000000000..2c4891109 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Scale-B12.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Scale-B12.h" + +int +Scale_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048L && value <= 2047L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Scale_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Scale_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_Scale_B12_tags_1, + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_Scale_B12_tags_1) + /sizeof(asn_DEF_Scale_B12_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Scale_B12_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Scale_B12_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Scale_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Second.c b/src/tmx/Asn_J2735/src/2020/Second.c new file mode 100644 index 000000000..56f19387f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Second.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Second.h" + +int +Second_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 60L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Second_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..60) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Second_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 60 } /* (0..60) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Second_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Second = { + "Second", + "Second", + &asn_OP_NativeInteger, + asn_DEF_Second_tags_1, + sizeof(asn_DEF_Second_tags_1) + /sizeof(asn_DEF_Second_tags_1[0]), /* 1 */ + asn_DEF_Second_tags_1, /* Same as above */ + sizeof(asn_DEF_Second_tags_1) + /sizeof(asn_DEF_Second_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Second_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Second_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Second_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SecondOfTime.c b/src/tmx/Asn_J2735/src/2020/SecondOfTime.c new file mode 100644 index 000000000..6f6738946 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SecondOfTime.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SecondOfTime.h" + +int +SecondOfTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 61L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SecondOfTime_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..61) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SecondOfTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 61 } /* (0..61) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SecondOfTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SecondOfTime = { + "SecondOfTime", + "SecondOfTime", + &asn_OP_NativeInteger, + asn_DEF_SecondOfTime_tags_1, + sizeof(asn_DEF_SecondOfTime_tags_1) + /sizeof(asn_DEF_SecondOfTime_tags_1[0]), /* 1 */ + asn_DEF_SecondOfTime_tags_1, /* Same as above */ + sizeof(asn_DEF_SecondOfTime_tags_1) + /sizeof(asn_DEF_SecondOfTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SecondOfTime_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SecondOfTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SecondOfTime_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SecondsAngle.c b/src/tmx/Asn_J2735/src/2020/SecondsAngle.c new file mode 100644 index 000000000..0ecdd6e92 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SecondsAngle.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SecondsAngle.h" + +int +SecondsAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 5999L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SecondsAngle_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..5999) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SecondsAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 5999 } /* (0..5999) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SecondsAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SecondsAngle = { + "SecondsAngle", + "SecondsAngle", + &asn_OP_NativeInteger, + asn_DEF_SecondsAngle_tags_1, + sizeof(asn_DEF_SecondsAngle_tags_1) + /sizeof(asn_DEF_SecondsAngle_tags_1[0]), /* 1 */ + asn_DEF_SecondsAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SecondsAngle_tags_1) + /sizeof(asn_DEF_SecondsAngle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SecondsAngle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SecondsAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SecondsAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SegmentAttributeLL.c b/src/tmx/Asn_J2735/src/2020/SegmentAttributeLL.c new file mode 100644 index 000000000..4f45da946 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SegmentAttributeLL.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SegmentAttributeLL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SegmentAttributeLL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SegmentAttributeLL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 37 } /* (0..37,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_SegmentAttributeLL_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 10, "doNotBlock" }, + { 2, 9, "whiteLine" }, + { 3, 15, "mergingLaneLeft" }, + { 4, 16, "mergingLaneRight" }, + { 5, 10, "curbOnLeft" }, + { 6, 11, "curbOnRight" }, + { 7, 17, "loadingzoneOnLeft" }, + { 8, 18, "loadingzoneOnRight" }, + { 9, 18, "turnOutPointOnLeft" }, + { 10, 19, "turnOutPointOnRight" }, + { 11, 21, "adjacentParkingOnLeft" }, + { 12, 22, "adjacentParkingOnRight" }, + { 13, 22, "adjacentBikeLaneOnLeft" }, + { 14, 23, "adjacentBikeLaneOnRight" }, + { 15, 14, "sharedBikeLane" }, + { 16, 14, "bikeBoxInFront" }, + { 17, 17, "transitStopOnLeft" }, + { 18, 18, "transitStopOnRight" }, + { 19, 17, "transitStopInLane" }, + { 20, 24, "sharedWithTrackedVehicle" }, + { 21, 10, "safeIsland" }, + { 22, 15, "lowCurbsPresent" }, + { 23, 18, "rumbleStripPresent" }, + { 24, 23, "audibleSignalingPresent" }, + { 25, 21, "adaptiveTimingPresent" }, + { 26, 22, "rfSignalRequestPresent" }, + { 27, 20, "partialCurbIntrusion" }, + { 28, 11, "taperToLeft" }, + { 29, 12, "taperToRight" }, + { 30, 17, "taperToCenterLine" }, + { 31, 15, "parallelParking" }, + { 32, 13, "headInParking" }, + { 33, 11, "freeParking" }, + { 34, 25, "timeRestrictionsOnParking" }, + { 35, 10, "costToPark" }, + { 36, 19, "midBlockCurbPresent" }, + { 37, 21, "unEvenPavementPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SegmentAttributeLL_enum2value_1[] = { + 25, /* adaptiveTimingPresent(25) */ + 13, /* adjacentBikeLaneOnLeft(13) */ + 14, /* adjacentBikeLaneOnRight(14) */ + 11, /* adjacentParkingOnLeft(11) */ + 12, /* adjacentParkingOnRight(12) */ + 24, /* audibleSignalingPresent(24) */ + 16, /* bikeBoxInFront(16) */ + 35, /* costToPark(35) */ + 5, /* curbOnLeft(5) */ + 6, /* curbOnRight(6) */ + 1, /* doNotBlock(1) */ + 33, /* freeParking(33) */ + 32, /* headInParking(32) */ + 7, /* loadingzoneOnLeft(7) */ + 8, /* loadingzoneOnRight(8) */ + 22, /* lowCurbsPresent(22) */ + 3, /* mergingLaneLeft(3) */ + 4, /* mergingLaneRight(4) */ + 36, /* midBlockCurbPresent(36) */ + 31, /* parallelParking(31) */ + 27, /* partialCurbIntrusion(27) */ + 0, /* reserved(0) */ + 26, /* rfSignalRequestPresent(26) */ + 23, /* rumbleStripPresent(23) */ + 21, /* safeIsland(21) */ + 15, /* sharedBikeLane(15) */ + 20, /* sharedWithTrackedVehicle(20) */ + 30, /* taperToCenterLine(30) */ + 28, /* taperToLeft(28) */ + 29, /* taperToRight(29) */ + 34, /* timeRestrictionsOnParking(34) */ + 19, /* transitStopInLane(19) */ + 17, /* transitStopOnLeft(17) */ + 18, /* transitStopOnRight(18) */ + 9, /* turnOutPointOnLeft(9) */ + 10, /* turnOutPointOnRight(10) */ + 37, /* unEvenPavementPresent(37) */ + 2 /* whiteLine(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeLL_specs_1 = { + asn_MAP_SegmentAttributeLL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SegmentAttributeLL_enum2value_1, /* N => "tag"; sorted by N */ + 38, /* Number of elements in the maps */ + 39, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeLL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeLL = { + "SegmentAttributeLL", + "SegmentAttributeLL", + &asn_OP_NativeEnumerated, + asn_DEF_SegmentAttributeLL_tags_1, + sizeof(asn_DEF_SegmentAttributeLL_tags_1) + /sizeof(asn_DEF_SegmentAttributeLL_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeLL_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeLL_tags_1) + /sizeof(asn_DEF_SegmentAttributeLL_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SegmentAttributeLL_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SegmentAttributeLL_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SegmentAttributeLL_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SegmentAttributeLLList.c b/src/tmx/Asn_J2735/src/2020/SegmentAttributeLLList.c new file mode 100644 index 000000000..c4588a9cb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SegmentAttributeLLList.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SegmentAttributeLLList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SegmentAttributeLLList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SegmentAttributeLLList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_SegmentAttributeLLList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SegmentAttributeLL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeLLList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SegmentAttributeLLList_specs_1 = { + sizeof(struct SegmentAttributeLLList), + offsetof(struct SegmentAttributeLLList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeLLList = { + "SegmentAttributeLLList", + "SegmentAttributeLLList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SegmentAttributeLLList_tags_1, + sizeof(asn_DEF_SegmentAttributeLLList_tags_1) + /sizeof(asn_DEF_SegmentAttributeLLList_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeLLList_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeLLList_tags_1) + /sizeof(asn_DEF_SegmentAttributeLLList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SegmentAttributeLLList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SegmentAttributeLLList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_SegmentAttributeLLList_1, + 1, /* Single element */ + &asn_SPC_SegmentAttributeLLList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SegmentAttributeXY.c b/src/tmx/Asn_J2735/src/2020/SegmentAttributeXY.c new file mode 100644 index 000000000..3edb821c8 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SegmentAttributeXY.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SegmentAttributeXY.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 37 } /* (0..37,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_SegmentAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 10, "doNotBlock" }, + { 2, 9, "whiteLine" }, + { 3, 15, "mergingLaneLeft" }, + { 4, 16, "mergingLaneRight" }, + { 5, 10, "curbOnLeft" }, + { 6, 11, "curbOnRight" }, + { 7, 17, "loadingzoneOnLeft" }, + { 8, 18, "loadingzoneOnRight" }, + { 9, 18, "turnOutPointOnLeft" }, + { 10, 19, "turnOutPointOnRight" }, + { 11, 21, "adjacentParkingOnLeft" }, + { 12, 22, "adjacentParkingOnRight" }, + { 13, 22, "adjacentBikeLaneOnLeft" }, + { 14, 23, "adjacentBikeLaneOnRight" }, + { 15, 14, "sharedBikeLane" }, + { 16, 14, "bikeBoxInFront" }, + { 17, 17, "transitStopOnLeft" }, + { 18, 18, "transitStopOnRight" }, + { 19, 17, "transitStopInLane" }, + { 20, 24, "sharedWithTrackedVehicle" }, + { 21, 10, "safeIsland" }, + { 22, 15, "lowCurbsPresent" }, + { 23, 18, "rumbleStripPresent" }, + { 24, 23, "audibleSignalingPresent" }, + { 25, 21, "adaptiveTimingPresent" }, + { 26, 22, "rfSignalRequestPresent" }, + { 27, 20, "partialCurbIntrusion" }, + { 28, 11, "taperToLeft" }, + { 29, 12, "taperToRight" }, + { 30, 17, "taperToCenterLine" }, + { 31, 15, "parallelParking" }, + { 32, 13, "headInParking" }, + { 33, 11, "freeParking" }, + { 34, 25, "timeRestrictionsOnParking" }, + { 35, 10, "costToPark" }, + { 36, 19, "midBlockCurbPresent" }, + { 37, 21, "unEvenPavementPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SegmentAttributeXY_enum2value_1[] = { + 25, /* adaptiveTimingPresent(25) */ + 13, /* adjacentBikeLaneOnLeft(13) */ + 14, /* adjacentBikeLaneOnRight(14) */ + 11, /* adjacentParkingOnLeft(11) */ + 12, /* adjacentParkingOnRight(12) */ + 24, /* audibleSignalingPresent(24) */ + 16, /* bikeBoxInFront(16) */ + 35, /* costToPark(35) */ + 5, /* curbOnLeft(5) */ + 6, /* curbOnRight(6) */ + 1, /* doNotBlock(1) */ + 33, /* freeParking(33) */ + 32, /* headInParking(32) */ + 7, /* loadingzoneOnLeft(7) */ + 8, /* loadingzoneOnRight(8) */ + 22, /* lowCurbsPresent(22) */ + 3, /* mergingLaneLeft(3) */ + 4, /* mergingLaneRight(4) */ + 36, /* midBlockCurbPresent(36) */ + 31, /* parallelParking(31) */ + 27, /* partialCurbIntrusion(27) */ + 0, /* reserved(0) */ + 26, /* rfSignalRequestPresent(26) */ + 23, /* rumbleStripPresent(23) */ + 21, /* safeIsland(21) */ + 15, /* sharedBikeLane(15) */ + 20, /* sharedWithTrackedVehicle(20) */ + 30, /* taperToCenterLine(30) */ + 28, /* taperToLeft(28) */ + 29, /* taperToRight(29) */ + 34, /* timeRestrictionsOnParking(34) */ + 19, /* transitStopInLane(19) */ + 17, /* transitStopOnLeft(17) */ + 18, /* transitStopOnRight(18) */ + 9, /* turnOutPointOnLeft(9) */ + 10, /* turnOutPointOnRight(10) */ + 37, /* unEvenPavementPresent(37) */ + 2 /* whiteLine(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SegmentAttributeXY_specs_1 = { + asn_MAP_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SegmentAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 38, /* Number of elements in the maps */ + 39, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_SegmentAttributeXY_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SegmentAttributeXY_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SegmentAttributeXY_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SegmentAttributeXYList.c b/src/tmx/Asn_J2735/src/2020/SegmentAttributeXYList.c new file mode 100644 index 000000000..10f00d9a4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SegmentAttributeXYList.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SegmentAttributeXYList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SegmentAttributeXYList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SegmentAttributeXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SegmentAttributeXYList_specs_1 = { + sizeof(struct SegmentAttributeXYList), + offsetof(struct SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_SegmentAttributeXYList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SegmentAttributeXYList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SegmentAttributeXYList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SemiMajorAxisAccuracy.c b/src/tmx/Asn_J2735/src/2020/SemiMajorAxisAccuracy.c new file mode 100644 index 000000000..bd7be619a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SemiMajorAxisAccuracy.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SemiMajorAxisAccuracy.h" + +int +SemiMajorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SemiMajorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SemiMajorAxisAccuracy_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SemiMajorAxisAccuracy_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SemiMajorAxisAccuracy_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SemiMajorAxisOrientation.c b/src/tmx/Asn_J2735/src/2020/SemiMajorAxisOrientation.c new file mode 100644 index 000000000..340ca37bc --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SemiMajorAxisOrientation.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SemiMajorAxisOrientation.h" + +int +SemiMajorAxisOrientation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SemiMajorAxisOrientation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SemiMajorAxisOrientation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SemiMajorAxisOrientation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SemiMajorAxisOrientation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SemiMinorAxisAccuracy.c b/src/tmx/Asn_J2735/src/2020/SemiMinorAxisAccuracy.c new file mode 100644 index 000000000..3fcf8e96d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SemiMinorAxisAccuracy.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SemiMinorAxisAccuracy.h" + +int +SemiMinorAxisAccuracy_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SemiMinorAxisAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SemiMinorAxisAccuracy_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SemiMinorAxisAccuracy_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SemiMinorAxisAccuracy_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ShapePointSet.c b/src/tmx/Asn_J2735/src/2020/ShapePointSet.c new file mode 100644 index 000000000..4dd2c7e95 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ShapePointSet.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ShapePointSet.h" + +#include "Position3D.h" +asn_TYPE_member_t asn_MBR_ShapePointSet_1[] = { + { ATF_POINTER, 3, offsetof(struct ShapePointSet, anchor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "anchor" + }, + { ATF_POINTER, 2, offsetof(struct ShapePointSet, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneWidth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 1, offsetof(struct ShapePointSet, directionality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DirectionOfUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "directionality" + }, + { ATF_NOFLAGS, 0, offsetof(struct ShapePointSet, nodeList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeListXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodeList" + }, +}; +static const int asn_MAP_ShapePointSet_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ShapePointSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ShapePointSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* anchor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* directionality */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* nodeList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ShapePointSet_specs_1 = { + sizeof(struct ShapePointSet), + offsetof(struct ShapePointSet, _asn_ctx), + asn_MAP_ShapePointSet_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ShapePointSet_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ShapePointSet = { + "ShapePointSet", + "ShapePointSet", + &asn_OP_SEQUENCE, + asn_DEF_ShapePointSet_tags_1, + sizeof(asn_DEF_ShapePointSet_tags_1) + /sizeof(asn_DEF_ShapePointSet_tags_1[0]), /* 1 */ + asn_DEF_ShapePointSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ShapePointSet_tags_1) + /sizeof(asn_DEF_ShapePointSet_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ShapePointSet_1, + 4, /* Elements count */ + &asn_SPC_ShapePointSet_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignPrority.c b/src/tmx/Asn_J2735/src/2020/SignPrority.c new file mode 100644 index 000000000..5781c1d3d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignPrority.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignPrority.h" + +int +SignPrority_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 7L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SignPrority_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SignPrority_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SignPrority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignPrority = { + "SignPrority", + "SignPrority", + &asn_OP_NativeInteger, + asn_DEF_SignPrority_tags_1, + sizeof(asn_DEF_SignPrority_tags_1) + /sizeof(asn_DEF_SignPrority_tags_1[0]), /* 1 */ + asn_DEF_SignPrority_tags_1, /* Same as above */ + sizeof(asn_DEF_SignPrority_tags_1) + /sizeof(asn_DEF_SignPrority_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SignPrority_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SignPrority_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SignPrority_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalControlZone.c b/src/tmx/Asn_J2735/src/2020/SignalControlZone.c new file mode 100644 index 000000000..92fc0f02c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalControlZone.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MapData" + * found in "J2735-MapData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_SignalControlZone, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalControlZone_specs_1 = { + sizeof(struct SignalControlZone), + offsetof(struct SignalControlZone, _asn_ctx), + asn_MAP_SignalControlZone_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_SignalControlZone_tags_1, + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalControlZone_tags_1) + /sizeof(asn_DEF_SignalControlZone_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalGroupID.c b/src/tmx/Asn_J2735/src/2020/SignalGroupID.c new file mode 100644 index 000000000..15877d604 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalGroupID.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalGroupID.h" + +int +SignalGroupID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SignalGroupID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_SignalGroupID_tags_1, + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalGroupID_tags_1) + /sizeof(asn_DEF_SignalGroupID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SignalGroupID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SignalGroupID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SignalGroupID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalHeadLocation.c b/src/tmx/Asn_J2735/src/2020/SignalHeadLocation.c new file mode 100644 index 000000000..dc30697db --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalHeadLocation.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, node), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NodeOffsetPointXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalGroupID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalGroupID" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalHeadLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* signalGroupID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalHeadLocation_specs_1 = { + sizeof(struct SignalHeadLocation), + offsetof(struct SignalHeadLocation, _asn_ctx), + asn_MAP_SignalHeadLocation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_SignalHeadLocation_tags_1, + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_SignalHeadLocation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SignalHeadLocation_1, + 2, /* Elements count */ + &asn_SPC_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalHeadLocationList.c b/src/tmx/Asn_J2735/src/2020/SignalHeadLocationList.c new file mode 100644 index 000000000..8fc1adba8 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalHeadLocationList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalHeadLocationList.h" + +#include "SignalHeadLocation.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalHeadLocation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalHeadLocationList_specs_1 = { + sizeof(struct SignalHeadLocationList), + offsetof(struct SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_SignalHeadLocationList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SignalHeadLocationList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SignalHeadLocationList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalReqScheme.c b/src/tmx/Asn_J2735/src/2020/SignalReqScheme.c new file mode 100644 index 000000000..17fb2234e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalReqScheme.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalReqScheme.h" + +int +SignalReqScheme_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 1UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SignalReqScheme_constr_1 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_SignalReqScheme_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SignalReqScheme_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SignalReqScheme = { + "SignalReqScheme", + "SignalReqScheme", + &asn_OP_OCTET_STRING, + asn_DEF_SignalReqScheme_tags_1, + sizeof(asn_DEF_SignalReqScheme_tags_1) + /sizeof(asn_DEF_SignalReqScheme_tags_1[0]), /* 1 */ + asn_DEF_SignalReqScheme_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalReqScheme_tags_1) + /sizeof(asn_DEF_SignalReqScheme_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SignalReqScheme_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SignalReqScheme_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SignalReqScheme_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalRequest.c b/src/tmx/Asn_J2735/src/2020/SignalRequest.c new file mode 100644 index 000000000..a7afcfdb6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalRequest.c @@ -0,0 +1,263 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalRequest.h" + +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequest__regional), + offsetof(struct SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityRequestType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "inBoundLane" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "outBoundLane" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* requestType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* inBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* outBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequest_specs_1 = { + sizeof(struct SignalRequest), + offsetof(struct SignalRequest, _asn_ctx), + asn_MAP_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequest_tags_1, + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequest_tags_1) + /sizeof(asn_DEF_SignalRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalRequestList.c b/src/tmx/Asn_J2735/src/2020/SignalRequestList.c new file mode 100644 index 000000000..42580157a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalRequestList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalRequestList.h" + +#include "SignalRequestPackage.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SignalRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalRequestPackage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalRequestList_specs_1 = { + sizeof(struct SignalRequestList), + offsetof(struct SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalRequestList_tags_1, + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestList_tags_1) + /sizeof(asn_DEF_SignalRequestList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SignalRequestList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SignalRequestList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalRequestMessage.c b/src/tmx/Asn_J2735/src/2020/SignalRequestMessage.c new file mode 100644 index 000000000..34d6cf634 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalRequestMessage.c @@ -0,0 +1,263 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalRequestMessage.h" + +#include "SignalRequestList.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct SignalRequestMessage__regional), + offsetof(struct SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequestList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requests" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requestor" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* requests */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* requestor */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequestMessage_specs_1 = { + sizeof(struct SignalRequestMessage), + offsetof(struct SignalRequestMessage, _asn_ctx), + asn_MAP_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestMessage_tags_1, + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_SignalRequestMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalRequestPackage.c b/src/tmx/Asn_J2735/src/2020/SignalRequestPackage.c new file mode 100644 index 000000000..fbe012f51 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalRequestPackage.c @@ -0,0 +1,244 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalRequestPackage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalRequestPackage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalRequestPackage__regional), + offsetof(struct SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 4, offsetof(struct SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 3, offsetof(struct SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequestPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequestPackage_specs_1 = { + sizeof(struct SignalRequestPackage), + offsetof(struct SignalRequestPackage, _asn_ctx), + asn_MAP_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequestPackage_tags_1, + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_SignalRequestPackage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalRequesterInfo.c b/src/tmx/Asn_J2735/src/2020/SignalRequesterInfo.c new file mode 100644 index 000000000..f52d6e78d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalRequesterInfo.c @@ -0,0 +1,141 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalRequesterInfo.h" + +#include "RequestorType.h" +asn_TYPE_member_t asn_MBR_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "request" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_POINTER, 2, offsetof(struct SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 1, offsetof(struct SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RequestorType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "typeData" + }, +}; +static const int asn_MAP_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalRequesterInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* typeData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalRequesterInfo_specs_1 = { + sizeof(struct SignalRequesterInfo), + offsetof(struct SignalRequesterInfo, _asn_ctx), + asn_MAP_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_SignalRequesterInfo_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalStatus.c b/src/tmx/Asn_J2735/src/2020/SignalStatus.c new file mode 100644 index 000000000..43816e59c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalStatus.c @@ -0,0 +1,226 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalStatus.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_5 = { + sizeof(struct SignalStatus__regional), + offsetof(struct SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_5, + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_regional_tags_5) + /sizeof(asn_DEF_regional_tags_5[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_5, + 1, /* Single element */ + &asn_SPC_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntersectionReferenceID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusPackageList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sigStatus" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_regional_5, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sigStatus */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatus_specs_1 = { + sizeof(struct SignalStatus), + offsetof(struct SignalStatus, _asn_ctx), + asn_MAP_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatus_tags_1, + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatus_tags_1) + /sizeof(asn_DEF_SignalStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalStatusList.c b/src/tmx/Asn_J2735/src/2020/SignalStatusList.c new file mode 100644 index 000000000..45989284d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalStatusList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalStatusList.h" + +#include "SignalStatus.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SignalStatusList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusList_specs_1 = { + sizeof(struct SignalStatusList), + offsetof(struct SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusList_tags_1, + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusList_tags_1) + /sizeof(asn_DEF_SignalStatusList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SignalStatusList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SignalStatusList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalStatusMessage.c b/src/tmx/Asn_J2735/src/2020/SignalStatusMessage.c new file mode 100644 index 000000000..0f8d8db19 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalStatusMessage.c @@ -0,0 +1,244 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalStatusMessage.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_6 = { + sizeof(struct SignalStatusMessage__regional), + offsetof(struct SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_6, + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_regional_tags_6) + /sizeof(asn_DEF_regional_tags_6[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_6, + 1, /* Single element */ + &asn_SPC_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sequenceNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalStatusList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_regional_6, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusMessage_specs_1 = { + sizeof(struct SignalStatusMessage), + offsetof(struct SignalStatusMessage, _asn_ctx), + asn_MAP_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusMessage_tags_1, + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_SignalStatusMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalStatusPackage.c b/src/tmx/Asn_J2735/src/2020/SignalStatusPackage.c new file mode 100644 index 000000000..19253128a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalStatusPackage.c @@ -0,0 +1,300 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalStatusPackage.h" + +#include "SignalRequesterInfo.h" +#include "IntersectionAccessPoint.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SignalStatusPackage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_9 = { + sizeof(struct SignalStatusPackage__regional), + offsetof(struct SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_9, + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_regional_tags_9) + /sizeof(asn_DEF_regional_tags_9[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_9, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_9, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_9, + 1, /* Single element */ + &asn_SPC_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignalRequesterInfo, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requester" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "inboundOn" + }, + { ATF_POINTER, 4, offsetof(struct SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_IntersectionAccessPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "outboundOn" + }, + { ATF_POINTER, 3, offsetof(struct SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrioritizationResponseStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_regional_9, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_9, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_9, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SignalStatusPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requester */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* inboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* outboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SignalStatusPackage_specs_1 = { + sizeof(struct SignalStatusPackage), + offsetof(struct SignalStatusPackage, _asn_ctx), + asn_MAP_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_SignalStatusPackage_tags_1, + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_SignalStatusPackage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SignalStatusPackageList.c b/src/tmx/Asn_J2735/src/2020/SignalStatusPackageList.c new file mode 100644 index 000000000..62fe11137 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SignalStatusPackageList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalStatusMessage" + * found in "J2735-SignalStatusMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SignalStatusPackageList.h" + +#include "SignalStatusPackage.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SignalStatusPackage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SignalStatusPackageList_specs_1 = { + sizeof(struct SignalStatusPackageList), + offsetof(struct SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_SignalStatusPackageList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SignalStatusPackageList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SignalStatusPackageList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SirenInUse.c b/src/tmx/Asn_J2735/src/2020/SirenInUse.c new file mode 100644 index 000000000..c070cec58 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SirenInUse.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SirenInUse.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SirenInUse_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SirenInUse_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_SirenInUse_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 8, "notInUse" }, + { 2, 5, "inUse" }, + { 3, 8, "reserved" } +}; +static const unsigned int asn_MAP_SirenInUse_enum2value_1[] = { + 2, /* inUse(2) */ + 1, /* notInUse(1) */ + 3, /* reserved(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SirenInUse_specs_1 = { + asn_MAP_SirenInUse_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SirenInUse_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SirenInUse = { + "SirenInUse", + "SirenInUse", + &asn_OP_NativeEnumerated, + asn_DEF_SirenInUse_tags_1, + sizeof(asn_DEF_SirenInUse_tags_1) + /sizeof(asn_DEF_SirenInUse_tags_1[0]), /* 1 */ + asn_DEF_SirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_SirenInUse_tags_1) + /sizeof(asn_DEF_SirenInUse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SirenInUse_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SirenInUse_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SirenInUse_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Snapshot.c b/src/tmx/Asn_J2735/src/2020/Snapshot.c new file mode 100644 index 000000000..11886d210 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Snapshot.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Snapshot.h" + +#include "VehicleSafetyExtensions.h" +#include "VehicleStatus.h" +asn_TYPE_member_t asn_MBR_Snapshot_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Snapshot, thePosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "thePosition" + }, + { ATF_POINTER, 2, offsetof(struct Snapshot, safetyExt), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleSafetyExtensions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "safetyExt" + }, + { ATF_POINTER, 1, offsetof(struct Snapshot, dataSet), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dataSet" + }, +}; +static const int asn_MAP_Snapshot_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Snapshot_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Snapshot_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* thePosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* safetyExt */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* dataSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Snapshot_specs_1 = { + sizeof(struct Snapshot), + offsetof(struct Snapshot, _asn_ctx), + asn_MAP_Snapshot_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Snapshot_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Snapshot = { + "Snapshot", + "Snapshot", + &asn_OP_SEQUENCE, + asn_DEF_Snapshot_tags_1, + sizeof(asn_DEF_Snapshot_tags_1) + /sizeof(asn_DEF_Snapshot_tags_1[0]), /* 1 */ + asn_DEF_Snapshot_tags_1, /* Same as above */ + sizeof(asn_DEF_Snapshot_tags_1) + /sizeof(asn_DEF_Snapshot_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Snapshot_1, + 3, /* Elements count */ + &asn_SPC_Snapshot_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SnapshotDistance.c b/src/tmx/Asn_J2735/src/2020/SnapshotDistance.c new file mode 100644 index 000000000..76c311b50 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SnapshotDistance.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SnapshotDistance.h" + +asn_TYPE_member_t asn_MBR_SnapshotDistance_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SnapshotDistance, distance1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GrossDistance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "distance1" + }, + { ATF_NOFLAGS, 0, offsetof(struct SnapshotDistance, speed1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GrossSpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed1" + }, + { ATF_NOFLAGS, 0, offsetof(struct SnapshotDistance, distance2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GrossDistance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "distance2" + }, + { ATF_NOFLAGS, 0, offsetof(struct SnapshotDistance, speed2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GrossSpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed2" + }, +}; +static const ber_tlv_tag_t asn_DEF_SnapshotDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SnapshotDistance_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* distance1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* distance2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* speed2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SnapshotDistance_specs_1 = { + sizeof(struct SnapshotDistance), + offsetof(struct SnapshotDistance, _asn_ctx), + asn_MAP_SnapshotDistance_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SnapshotDistance = { + "SnapshotDistance", + "SnapshotDistance", + &asn_OP_SEQUENCE, + asn_DEF_SnapshotDistance_tags_1, + sizeof(asn_DEF_SnapshotDistance_tags_1) + /sizeof(asn_DEF_SnapshotDistance_tags_1[0]), /* 1 */ + asn_DEF_SnapshotDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_SnapshotDistance_tags_1) + /sizeof(asn_DEF_SnapshotDistance_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SnapshotDistance_1, + 4, /* Elements count */ + &asn_SPC_SnapshotDistance_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SnapshotTime.c b/src/tmx/Asn_J2735/src/2020/SnapshotTime.c new file mode 100644 index 000000000..d06efce44 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SnapshotTime.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SnapshotTime.h" + +asn_TYPE_member_t asn_MBR_SnapshotTime_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SnapshotTime, speed1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GrossSpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed1" + }, + { ATF_NOFLAGS, 0, offsetof(struct SnapshotTime, time1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecondOfTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "time1" + }, + { ATF_NOFLAGS, 0, offsetof(struct SnapshotTime, speed2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GrossSpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed2" + }, + { ATF_NOFLAGS, 0, offsetof(struct SnapshotTime, time2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecondOfTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "time2" + }, +}; +static const ber_tlv_tag_t asn_DEF_SnapshotTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SnapshotTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speed1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* time1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* speed2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* time2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SnapshotTime_specs_1 = { + sizeof(struct SnapshotTime), + offsetof(struct SnapshotTime, _asn_ctx), + asn_MAP_SnapshotTime_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SnapshotTime = { + "SnapshotTime", + "SnapshotTime", + &asn_OP_SEQUENCE, + asn_DEF_SnapshotTime_tags_1, + sizeof(asn_DEF_SnapshotTime_tags_1) + /sizeof(asn_DEF_SnapshotTime_tags_1[0]), /* 1 */ + asn_DEF_SnapshotTime_tags_1, /* Same as above */ + sizeof(asn_DEF_SnapshotTime_tags_1) + /sizeof(asn_DEF_SnapshotTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SnapshotTime_1, + 4, /* Elements count */ + &asn_SPC_SnapshotTime_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SpecialVehicleExtensions.c b/src/tmx/Asn_J2735/src/2020/SpecialVehicleExtensions.c new file mode 100644 index 000000000..277e69797 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SpecialVehicleExtensions.c @@ -0,0 +1,107 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SpecialVehicleExtensions.h" + +#include "EmergencyDetails.h" +#include "EventDescription.h" +#include "TrailerData.h" +asn_TYPE_member_t asn_MBR_SpecialVehicleExtensions_1[] = { + { ATF_POINTER, 3, offsetof(struct SpecialVehicleExtensions, vehicleAlerts), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EmergencyDetails, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleAlerts" + }, + { ATF_POINTER, 2, offsetof(struct SpecialVehicleExtensions, description), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EventDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "description" + }, + { ATF_POINTER, 1, offsetof(struct SpecialVehicleExtensions, trailers), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailers" + }, +}; +static const int asn_MAP_SpecialVehicleExtensions_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SpecialVehicleExtensions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpecialVehicleExtensions_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleAlerts */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* description */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* trailers */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpecialVehicleExtensions_specs_1 = { + sizeof(struct SpecialVehicleExtensions), + offsetof(struct SpecialVehicleExtensions, _asn_ctx), + asn_MAP_SpecialVehicleExtensions_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SpecialVehicleExtensions_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpecialVehicleExtensions = { + "SpecialVehicleExtensions", + "SpecialVehicleExtensions", + &asn_OP_SEQUENCE, + asn_DEF_SpecialVehicleExtensions_tags_1, + sizeof(asn_DEF_SpecialVehicleExtensions_tags_1) + /sizeof(asn_DEF_SpecialVehicleExtensions_tags_1[0]), /* 1 */ + asn_DEF_SpecialVehicleExtensions_tags_1, /* Same as above */ + sizeof(asn_DEF_SpecialVehicleExtensions_tags_1) + /sizeof(asn_DEF_SpecialVehicleExtensions_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SpecialVehicleExtensions_1, + 3, /* Elements count */ + &asn_SPC_SpecialVehicleExtensions_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Speed.c b/src/tmx/Asn_J2735/src/2020/Speed.c new file mode 100644 index 000000000..fa91fa267 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Speed.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Speed.h" + +int +Speed_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 8191L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Speed_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..8191) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Speed_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Speed = { + "Speed", + "Speed", + &asn_OP_NativeInteger, + asn_DEF_Speed_tags_1, + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + asn_DEF_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Speed_tags_1) + /sizeof(asn_DEF_Speed_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Speed_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Speed_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Speed_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SpeedAdvice.c b/src/tmx/Asn_J2735/src/2020/SpeedAdvice.c new file mode 100644 index 000000000..4aea7f0c2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SpeedAdvice.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SpeedAdvice.h" + +int +SpeedAdvice_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 500L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..500) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SpeedAdvice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 500 } /* (0..500) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_SpeedAdvice_tags_1, + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedAdvice_tags_1) + /sizeof(asn_DEF_SpeedAdvice_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SpeedAdvice_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SpeedAdvice_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SpeedAdvice_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SpeedConfidence.c b/src/tmx/Asn_J2735/src/2020/SpeedConfidence.c new file mode 100644 index 000000000..a18c8612d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SpeedConfidence.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SpeedConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_SpeedConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec100ms" }, + { 2, 8, "prec10ms" }, + { 3, 7, "prec5ms" }, + { 4, 7, "prec1ms" }, + { 5, 9, "prec0-1ms" }, + { 6, 10, "prec0-05ms" }, + { 7, 10, "prec0-01ms" } +}; +static const unsigned int asn_MAP_SpeedConfidence_enum2value_1[] = { + 7, /* prec0-01ms(7) */ + 6, /* prec0-05ms(6) */ + 5, /* prec0-1ms(5) */ + 1, /* prec100ms(1) */ + 2, /* prec10ms(2) */ + 4, /* prec1ms(4) */ + 3, /* prec5ms(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedConfidence_specs_1 = { + asn_MAP_SpeedConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedConfidence_tags_1, + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedConfidence_tags_1) + /sizeof(asn_DEF_SpeedConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SpeedConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SpeedConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SpeedLimit.c b/src/tmx/Asn_J2735/src/2020/SpeedLimit.c new file mode 100644 index 000000000..8e857fd23 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SpeedLimit.c @@ -0,0 +1,215 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SpeedLimit.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_item_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_item_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_item_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedLimit__Member__item, choice.itis), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "itis" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedLimit__Member__item, choice.text), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIStextPhrase, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "text" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_item_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* itis */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* text */ +}; +static asn_CHOICE_specifics_t asn_SPC_item_specs_3 = { + sizeof(struct SpeedLimit__Member__item), + offsetof(struct SpeedLimit__Member__item, _asn_ctx), + offsetof(struct SpeedLimit__Member__item, present), + sizeof(((struct SpeedLimit__Member__item *)0)->present), + asn_MAP_item_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_item_3 = { + "item", + "item", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_item_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_item_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_item_3, + 2, /* Elements count */ + &asn_SPC_item_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_Member_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedLimit__Member, item), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_item_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "item" + }, +}; +static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* item */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { + sizeof(struct SpeedLimit__Member), + offsetof(struct SpeedLimit__Member, _asn_ctx), + asn_MAP_Member_tag2el_2, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Member_2 = { + "SEQUENCE", + "SEQUENCE", + &asn_OP_SEQUENCE, + asn_DEF_Member_tags_2, + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + asn_DEF_Member_tags_2, /* Same as above */ + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Member_2, + 1, /* Elements count */ + &asn_SPC_Member_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SpeedLimit_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Member_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SpeedLimit_specs_1 = { + sizeof(struct SpeedLimit), + offsetof(struct SpeedLimit, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_SEQUENCE_OF, + asn_DEF_SpeedLimit_tags_1, + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimit_tags_1) + /sizeof(asn_DEF_SpeedLimit_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SpeedLimit_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SpeedLimit_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_SpeedLimit_1, + 1, /* Single element */ + &asn_SPC_SpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SpeedLimitList.c b/src/tmx/Asn_J2735/src/2020/SpeedLimitList.c new file mode 100644 index 000000000..1d925aa4a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SpeedLimitList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SpeedLimitList.h" + +#include "RegulatorySpeedLimit.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..9)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SpeedLimitList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (SIZE(1..9)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RegulatorySpeedLimit, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SpeedLimitList_specs_1 = { + sizeof(struct SpeedLimitList), + offsetof(struct SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SpeedLimitList_tags_1, + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitList_tags_1) + /sizeof(asn_DEF_SpeedLimitList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SpeedLimitList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SpeedLimitList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SpeedLimitType.c b/src/tmx/Asn_J2735/src/2020/SpeedLimitType.c new file mode 100644 index 000000000..75106d936 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SpeedLimitType.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SpeedLimitType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SpeedLimitType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_SpeedLimitType_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "maxSpeedInSchoolZone" }, + { 2, 42, "maxSpeedInSchoolZoneWhenChildrenArePresent" }, + { 3, 26, "maxSpeedInConstructionZone" }, + { 4, 15, "vehicleMinSpeed" }, + { 5, 15, "vehicleMaxSpeed" }, + { 6, 20, "vehicleNightMaxSpeed" }, + { 7, 13, "truckMinSpeed" }, + { 8, 13, "truckMaxSpeed" }, + { 9, 18, "truckNightMaxSpeed" }, + { 10, 28, "vehiclesWithTrailersMinSpeed" }, + { 11, 28, "vehiclesWithTrailersMaxSpeed" }, + { 12, 33, "vehiclesWithTrailersNightMaxSpeed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SpeedLimitType_enum2value_1[] = { + 3, /* maxSpeedInConstructionZone(3) */ + 1, /* maxSpeedInSchoolZone(1) */ + 2, /* maxSpeedInSchoolZoneWhenChildrenArePresent(2) */ + 8, /* truckMaxSpeed(8) */ + 7, /* truckMinSpeed(7) */ + 9, /* truckNightMaxSpeed(9) */ + 0, /* unknown(0) */ + 5, /* vehicleMaxSpeed(5) */ + 4, /* vehicleMinSpeed(4) */ + 6, /* vehicleNightMaxSpeed(6) */ + 11, /* vehiclesWithTrailersMaxSpeed(11) */ + 10, /* vehiclesWithTrailersMinSpeed(10) */ + 12 /* vehiclesWithTrailersNightMaxSpeed(12) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_SpeedLimitType_specs_1 = { + asn_MAP_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SpeedLimitType_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_SpeedLimitType_tags_1, + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedLimitType_tags_1) + /sizeof(asn_DEF_SpeedLimitType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SpeedLimitType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SpeedLimitType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SpeedProfile.c b/src/tmx/Asn_J2735/src/2020/SpeedProfile.c new file mode 100644 index 000000000..266258ea1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SpeedProfile.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SpeedProfile.h" + +asn_TYPE_member_t asn_MBR_SpeedProfile_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedProfile, speedReports), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedProfileMeasurementList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedReports" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedProfile_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpeedProfile_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* speedReports */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpeedProfile_specs_1 = { + sizeof(struct SpeedProfile), + offsetof(struct SpeedProfile, _asn_ctx), + asn_MAP_SpeedProfile_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedProfile = { + "SpeedProfile", + "SpeedProfile", + &asn_OP_SEQUENCE, + asn_DEF_SpeedProfile_tags_1, + sizeof(asn_DEF_SpeedProfile_tags_1) + /sizeof(asn_DEF_SpeedProfile_tags_1[0]), /* 1 */ + asn_DEF_SpeedProfile_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedProfile_tags_1) + /sizeof(asn_DEF_SpeedProfile_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SpeedProfile_1, + 1, /* Elements count */ + &asn_SPC_SpeedProfile_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SpeedProfileMeasurement.c b/src/tmx/Asn_J2735/src/2020/SpeedProfileMeasurement.c new file mode 100644 index 000000000..7e323e967 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SpeedProfileMeasurement.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SpeedProfileMeasurement.h" + +int +SpeedProfileMeasurement_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 31L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using GrossSpeed, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SpeedProfileMeasurement_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SpeedProfileMeasurement_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SpeedProfileMeasurement_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpeedProfileMeasurement = { + "SpeedProfileMeasurement", + "SpeedProfileMeasurement", + &asn_OP_NativeInteger, + asn_DEF_SpeedProfileMeasurement_tags_1, + sizeof(asn_DEF_SpeedProfileMeasurement_tags_1) + /sizeof(asn_DEF_SpeedProfileMeasurement_tags_1[0]), /* 1 */ + asn_DEF_SpeedProfileMeasurement_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedProfileMeasurement_tags_1) + /sizeof(asn_DEF_SpeedProfileMeasurement_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SpeedProfileMeasurement_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SpeedProfileMeasurement_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SpeedProfileMeasurement_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SpeedProfileMeasurementList.c b/src/tmx/Asn_J2735/src/2020/SpeedProfileMeasurementList.c new file mode 100644 index 000000000..a6b3c574b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SpeedProfileMeasurementList.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SpeedProfileMeasurementList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SpeedProfileMeasurementList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..20)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SpeedProfileMeasurementList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_SpeedProfileMeasurementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SpeedProfileMeasurement, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedProfileMeasurementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SpeedProfileMeasurementList_specs_1 = { + sizeof(struct SpeedProfileMeasurementList), + offsetof(struct SpeedProfileMeasurementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedProfileMeasurementList = { + "SpeedProfileMeasurementList", + "SpeedProfileMeasurementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SpeedProfileMeasurementList_tags_1, + sizeof(asn_DEF_SpeedProfileMeasurementList_tags_1) + /sizeof(asn_DEF_SpeedProfileMeasurementList_tags_1[0]), /* 1 */ + asn_DEF_SpeedProfileMeasurementList_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedProfileMeasurementList_tags_1) + /sizeof(asn_DEF_SpeedProfileMeasurementList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SpeedProfileMeasurementList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SpeedProfileMeasurementList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_SpeedProfileMeasurementList_1, + 1, /* Single element */ + &asn_SPC_SpeedProfileMeasurementList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SpeedandHeadingandThrottleConfidence.c b/src/tmx/Asn_J2735/src/2020/SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 000000000..dee7aaf5c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SpeedandHeadingandThrottleConfidence.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThrottleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "throttle" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* throttle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct SpeedandHeadingandThrottleConfidence), + offsetof(struct SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_SpeedandHeadingandThrottleConfidence_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/StabilityControlStatus.c b/src/tmx/Asn_J2735/src/2020/StabilityControlStatus.c new file mode 100644 index 000000000..f83991548 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/StabilityControlStatus.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "StabilityControlStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_StabilityControlStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_StabilityControlStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_StabilityControlStatus_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 3, "off" }, + { 2, 2, "on" }, + { 3, 7, "engaged" } +}; +static const unsigned int asn_MAP_StabilityControlStatus_enum2value_1[] = { + 3, /* engaged(3) */ + 1, /* off(1) */ + 2, /* on(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_StabilityControlStatus_specs_1 = { + asn_MAP_StabilityControlStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_StabilityControlStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_StabilityControlStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StabilityControlStatus = { + "StabilityControlStatus", + "StabilityControlStatus", + &asn_OP_NativeEnumerated, + asn_DEF_StabilityControlStatus_tags_1, + sizeof(asn_DEF_StabilityControlStatus_tags_1) + /sizeof(asn_DEF_StabilityControlStatus_tags_1[0]), /* 1 */ + asn_DEF_StabilityControlStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_StabilityControlStatus_tags_1) + /sizeof(asn_DEF_StabilityControlStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_StabilityControlStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_StabilityControlStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_StabilityControlStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/StationID.c b/src/tmx/Asn_J2735/src/2020/StationID.c new file mode 100644 index 000000000..32abf2dc1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/StationID.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "StationID.h" + +int +StationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_StationID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_StationID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +const asn_INTEGER_specifics_t asn_SPC_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_StationID_tags_1, + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + asn_DEF_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_StationID_tags_1) + /sizeof(asn_DEF_StationID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_StationID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_StationID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + StationID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_StationID_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SteeringAxleLubePressure.c b/src/tmx/Asn_J2735/src/2020/SteeringAxleLubePressure.c new file mode 100644 index 000000000..6d9dfcfea --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SteeringAxleLubePressure.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SteeringAxleLubePressure.h" + +int +SteeringAxleLubePressure_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 250L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SteeringAxleLubePressure_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..250) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SteeringAxleLubePressure_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 250 } /* (0..250) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SteeringAxleLubePressure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringAxleLubePressure = { + "SteeringAxleLubePressure", + "SteeringAxleLubePressure", + &asn_OP_NativeInteger, + asn_DEF_SteeringAxleLubePressure_tags_1, + sizeof(asn_DEF_SteeringAxleLubePressure_tags_1) + /sizeof(asn_DEF_SteeringAxleLubePressure_tags_1[0]), /* 1 */ + asn_DEF_SteeringAxleLubePressure_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringAxleLubePressure_tags_1) + /sizeof(asn_DEF_SteeringAxleLubePressure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SteeringAxleLubePressure_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SteeringAxleLubePressure_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SteeringAxleLubePressure_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SteeringAxleTemperature.c b/src/tmx/Asn_J2735/src/2020/SteeringAxleTemperature.c new file mode 100644 index 000000000..9bca56fa4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SteeringAxleTemperature.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SteeringAxleTemperature.h" + +int +SteeringAxleTemperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -40L && value <= 210L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SteeringAxleTemperature_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-40..210) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SteeringAxleTemperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -40, 210 } /* (-40..210) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SteeringAxleTemperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringAxleTemperature = { + "SteeringAxleTemperature", + "SteeringAxleTemperature", + &asn_OP_NativeInteger, + asn_DEF_SteeringAxleTemperature_tags_1, + sizeof(asn_DEF_SteeringAxleTemperature_tags_1) + /sizeof(asn_DEF_SteeringAxleTemperature_tags_1[0]), /* 1 */ + asn_DEF_SteeringAxleTemperature_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringAxleTemperature_tags_1) + /sizeof(asn_DEF_SteeringAxleTemperature_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SteeringAxleTemperature_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SteeringAxleTemperature_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SteeringAxleTemperature_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SteeringWheelAngle.c b/src/tmx/Asn_J2735/src/2020/SteeringWheelAngle.c new file mode 100644 index 000000000..15c275a62 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SteeringWheelAngle.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SteeringWheelAngle.h" + +int +SteeringWheelAngle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -126L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngle_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-126..127) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SteeringWheelAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -126, 127 } /* (-126..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_SteeringWheelAngle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SteeringWheelAngle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SteeringWheelAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SteeringWheelAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SteeringWheelAngleConfidence.c b/src/tmx/Asn_J2735/src/2020/SteeringWheelAngleConfidence.c new file mode 100644 index 000000000..72297d57f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SteeringWheelAngleConfidence.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SteeringWheelAngleConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_SteeringWheelAngleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 8, "prec2deg" }, + { 2, 8, "prec1deg" }, + { 3, 11, "prec0-02deg" } +}; +static const unsigned int asn_MAP_SteeringWheelAngleConfidence_enum2value_1[] = { + 3, /* prec0-02deg(3) */ + 2, /* prec1deg(2) */ + 1, /* prec2deg(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SteeringWheelAngleConfidence_specs_1 = { + asn_MAP_SteeringWheelAngleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SteeringWheelAngleConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SteeringWheelAngleConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SteeringWheelAngleConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SteeringWheelAngleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SteeringWheelAngleRateOfChange.c b/src/tmx/Asn_J2735/src/2020/SteeringWheelAngleRateOfChange.c new file mode 100644 index 000000000..09fdbc38c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SteeringWheelAngleRateOfChange.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SteeringWheelAngleRateOfChange.h" + +int +SteeringWheelAngleRateOfChange_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -127L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SteeringWheelAngleRateOfChange_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-127..127) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SteeringWheelAngleRateOfChange_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -127, 127 } /* (-127..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SteeringWheelAngleRateOfChange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SteeringWheelAngleRateOfChange = { + "SteeringWheelAngleRateOfChange", + "SteeringWheelAngleRateOfChange", + &asn_OP_NativeInteger, + asn_DEF_SteeringWheelAngleRateOfChange_tags_1, + sizeof(asn_DEF_SteeringWheelAngleRateOfChange_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleRateOfChange_tags_1[0]), /* 1 */ + asn_DEF_SteeringWheelAngleRateOfChange_tags_1, /* Same as above */ + sizeof(asn_DEF_SteeringWheelAngleRateOfChange_tags_1) + /sizeof(asn_DEF_SteeringWheelAngleRateOfChange_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SteeringWheelAngleRateOfChange_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SteeringWheelAngleRateOfChange_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SteeringWheelAngleRateOfChange_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SummerTime.c b/src/tmx/Asn_J2735/src/2020/SummerTime.c new file mode 100644 index 000000000..8790bda6a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SummerTime.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SummerTime.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SummerTime_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SummerTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_SummerTime_value2enum_1[] = { + { 0, 15, "notInSummerTime" }, + { 1, 12, "inSummerTime" } +}; +static const unsigned int asn_MAP_SummerTime_enum2value_1[] = { + 1, /* inSummerTime(1) */ + 0 /* notInSummerTime(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SummerTime_specs_1 = { + asn_MAP_SummerTime_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SummerTime_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SummerTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SummerTime = { + "SummerTime", + "SummerTime", + &asn_OP_NativeEnumerated, + asn_DEF_SummerTime_tags_1, + sizeof(asn_DEF_SummerTime_tags_1) + /sizeof(asn_DEF_SummerTime_tags_1[0]), /* 1 */ + asn_DEF_SummerTime_tags_1, /* Same as above */ + sizeof(asn_DEF_SummerTime_tags_1) + /sizeof(asn_DEF_SummerTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SummerTime_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SummerTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SummerTime_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SunSensor.c b/src/tmx/Asn_J2735/src/2020/SunSensor.c new file mode 100644 index 000000000..edb5ac980 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SunSensor.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SunSensor.h" + +int +SunSensor_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 1000L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_SunSensor_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1000) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_SunSensor_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1000 } /* (0..1000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_SunSensor_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SunSensor = { + "SunSensor", + "SunSensor", + &asn_OP_NativeInteger, + asn_DEF_SunSensor_tags_1, + sizeof(asn_DEF_SunSensor_tags_1) + /sizeof(asn_DEF_SunSensor_tags_1[0]), /* 1 */ + asn_DEF_SunSensor_tags_1, /* Same as above */ + sizeof(asn_DEF_SunSensor_tags_1) + /sizeof(asn_DEF_SunSensor_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_SunSensor_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_SunSensor_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SunSensor_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/SupplementalVehicleExtensions.c b/src/tmx/Asn_J2735/src/2020/SupplementalVehicleExtensions.c new file mode 100644 index 000000000..f3bddfac8 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/SupplementalVehicleExtensions.c @@ -0,0 +1,342 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "SupplementalVehicleExtensions.h" + +#include "VehicleClassification.h" +#include "VehicleData.h" +#include "WeatherReport.h" +#include "WeatherProbe.h" +#include "ObstacleDetection.h" +#include "DisabledVehicle.h" +#include "SpeedProfile.h" +#include "RTCMPackage.h" +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_SupplementalVehicleExtensions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_11 = { + sizeof(struct SupplementalVehicleExtensions__regional), + offsetof(struct SupplementalVehicleExtensions__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_11, + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_regional_tags_11) + /sizeof(asn_DEF_regional_tags_11[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_11, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_11, + 1, /* Single element */ + &asn_SPC_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SupplementalVehicleExtensions_1[] = { + { ATF_POINTER, 10, offsetof(struct SupplementalVehicleExtensions, classification), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleClass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "classification" + }, + { ATF_POINTER, 9, offsetof(struct SupplementalVehicleExtensions, classDetails), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleClassification, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "classDetails" + }, + { ATF_POINTER, 8, offsetof(struct SupplementalVehicleExtensions, vehicleData), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleData" + }, + { ATF_POINTER, 7, offsetof(struct SupplementalVehicleExtensions, weatherReport), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WeatherReport, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "weatherReport" + }, + { ATF_POINTER, 6, offsetof(struct SupplementalVehicleExtensions, weatherProbe), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WeatherProbe, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "weatherProbe" + }, + { ATF_POINTER, 5, offsetof(struct SupplementalVehicleExtensions, obstacle), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObstacleDetection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "obstacle" + }, + { ATF_POINTER, 4, offsetof(struct SupplementalVehicleExtensions, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DisabledVehicle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 3, offsetof(struct SupplementalVehicleExtensions, speedProfile), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedProfile, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedProfile" + }, + { ATF_POINTER, 2, offsetof(struct SupplementalVehicleExtensions, theRTCM), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RTCMPackage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "theRTCM" + }, + { ATF_POINTER, 1, offsetof(struct SupplementalVehicleExtensions, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_regional_11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_11, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_11, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_SupplementalVehicleExtensions_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_SupplementalVehicleExtensions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SupplementalVehicleExtensions_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* classification */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* classDetails */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* vehicleData */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* weatherReport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* weatherProbe */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* obstacle */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* speedProfile */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* theRTCM */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SupplementalVehicleExtensions_specs_1 = { + sizeof(struct SupplementalVehicleExtensions), + offsetof(struct SupplementalVehicleExtensions, _asn_ctx), + asn_MAP_SupplementalVehicleExtensions_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_SupplementalVehicleExtensions_oms_1, /* Optional members */ + 10, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SupplementalVehicleExtensions = { + "SupplementalVehicleExtensions", + "SupplementalVehicleExtensions", + &asn_OP_SEQUENCE, + asn_DEF_SupplementalVehicleExtensions_tags_1, + sizeof(asn_DEF_SupplementalVehicleExtensions_tags_1) + /sizeof(asn_DEF_SupplementalVehicleExtensions_tags_1[0]), /* 1 */ + asn_DEF_SupplementalVehicleExtensions_tags_1, /* Same as above */ + sizeof(asn_DEF_SupplementalVehicleExtensions_tags_1) + /sizeof(asn_DEF_SupplementalVehicleExtensions_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_SupplementalVehicleExtensions_1, + 10, /* Elements count */ + &asn_SPC_SupplementalVehicleExtensions_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TemporaryID.c b/src/tmx/Asn_J2735/src/2020/TemporaryID.c new file mode 100644 index 000000000..191a088f1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TemporaryID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TemporaryID.h" + +int +TemporaryID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 4UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TemporaryID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TemporaryID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_TemporaryID_tags_1, + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_TemporaryID_tags_1) + /sizeof(asn_DEF_TemporaryID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TemporaryID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TemporaryID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TemporaryID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TenthSecond.c b/src/tmx/Asn_J2735/src/2020/TenthSecond.c new file mode 100644 index 000000000..306c5017d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TenthSecond.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TenthSecond.h" + +int +TenthSecond_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 9L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TenthSecond_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TenthSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TenthSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TenthSecond = { + "TenthSecond", + "TenthSecond", + &asn_OP_NativeInteger, + asn_DEF_TenthSecond_tags_1, + sizeof(asn_DEF_TenthSecond_tags_1) + /sizeof(asn_DEF_TenthSecond_tags_1[0]), /* 1 */ + asn_DEF_TenthSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_TenthSecond_tags_1) + /sizeof(asn_DEF_TenthSecond_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TenthSecond_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TenthSecond_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TenthSecond_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TermDistance.c b/src/tmx/Asn_J2735/src/2020/TermDistance.c new file mode 100644 index 000000000..10846c34c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TermDistance.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TermDistance.h" + +int +TermDistance_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1L && value <= 30000L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TermDistance_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..30000) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TermDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 1, 30000 } /* (1..30000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TermDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TermDistance = { + "TermDistance", + "TermDistance", + &asn_OP_NativeInteger, + asn_DEF_TermDistance_tags_1, + sizeof(asn_DEF_TermDistance_tags_1) + /sizeof(asn_DEF_TermDistance_tags_1[0]), /* 1 */ + asn_DEF_TermDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_TermDistance_tags_1) + /sizeof(asn_DEF_TermDistance_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TermDistance_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TermDistance_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TermDistance_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TermTime.c b/src/tmx/Asn_J2735/src/2020/TermTime.c new file mode 100644 index 000000000..add2de523 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TermTime.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TermTime.h" + +int +TermTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1L && value <= 1800L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TermTime_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1800) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TermTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 1, 1800 } /* (1..1800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TermTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TermTime = { + "TermTime", + "TermTime", + &asn_OP_NativeInteger, + asn_DEF_TermTime_tags_1, + sizeof(asn_DEF_TermTime_tags_1) + /sizeof(asn_DEF_TermTime_tags_1[0]), /* 1 */ + asn_DEF_TermTime_tags_1, /* Same as above */ + sizeof(asn_DEF_TermTime_tags_1) + /sizeof(asn_DEF_TermTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TermTime_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TermTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TermTime_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage00.c b/src/tmx/Asn_J2735/src/2020/TestMessage00.c new file mode 100644 index 000000000..29d08515b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage00.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage00" + * found in "J2735-TestMessage00.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage00.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage00_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage00, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage00, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage00, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage00_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage00_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage00_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage00_specs_1 = { + sizeof(struct TestMessage00), + offsetof(struct TestMessage00, _asn_ctx), + asn_MAP_TestMessage00_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage00_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage00 = { + "TestMessage00", + "TestMessage00", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage00_tags_1, + sizeof(asn_DEF_TestMessage00_tags_1) + /sizeof(asn_DEF_TestMessage00_tags_1[0]), /* 1 */ + asn_DEF_TestMessage00_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage00_tags_1) + /sizeof(asn_DEF_TestMessage00_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage00_1, + 2, /* Elements count */ + &asn_SPC_TestMessage00_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage01.c b/src/tmx/Asn_J2735/src/2020/TestMessage01.c new file mode 100644 index 000000000..546fa3c58 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage01.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage01" + * found in "J2735-TestMessage01.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage01.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage01_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage01, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage01, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage01, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage01_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage01_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage01_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage01_specs_1 = { + sizeof(struct TestMessage01), + offsetof(struct TestMessage01, _asn_ctx), + asn_MAP_TestMessage01_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage01_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage01 = { + "TestMessage01", + "TestMessage01", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage01_tags_1, + sizeof(asn_DEF_TestMessage01_tags_1) + /sizeof(asn_DEF_TestMessage01_tags_1[0]), /* 1 */ + asn_DEF_TestMessage01_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage01_tags_1) + /sizeof(asn_DEF_TestMessage01_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage01_1, + 2, /* Elements count */ + &asn_SPC_TestMessage01_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage02.c b/src/tmx/Asn_J2735/src/2020/TestMessage02.c new file mode 100644 index 000000000..f52bfe758 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage02.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage02" + * found in "J2735-TestMessage02.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage02.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage02_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage02, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage02, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage02, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage02_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage02_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage02_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage02_specs_1 = { + sizeof(struct TestMessage02), + offsetof(struct TestMessage02, _asn_ctx), + asn_MAP_TestMessage02_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage02_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage02 = { + "TestMessage02", + "TestMessage02", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage02_tags_1, + sizeof(asn_DEF_TestMessage02_tags_1) + /sizeof(asn_DEF_TestMessage02_tags_1[0]), /* 1 */ + asn_DEF_TestMessage02_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage02_tags_1) + /sizeof(asn_DEF_TestMessage02_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage02_1, + 2, /* Elements count */ + &asn_SPC_TestMessage02_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage03.c b/src/tmx/Asn_J2735/src/2020/TestMessage03.c new file mode 100644 index 000000000..2cacf0043 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage03.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage03" + * found in "J2735-TestMessage03.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage03.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage03_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage03, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage03, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage03, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage03_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage03_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage03_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage03_specs_1 = { + sizeof(struct TestMessage03), + offsetof(struct TestMessage03, _asn_ctx), + asn_MAP_TestMessage03_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage03_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage03 = { + "TestMessage03", + "TestMessage03", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage03_tags_1, + sizeof(asn_DEF_TestMessage03_tags_1) + /sizeof(asn_DEF_TestMessage03_tags_1[0]), /* 1 */ + asn_DEF_TestMessage03_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage03_tags_1) + /sizeof(asn_DEF_TestMessage03_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage03_1, + 2, /* Elements count */ + &asn_SPC_TestMessage03_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage04.c b/src/tmx/Asn_J2735/src/2020/TestMessage04.c new file mode 100644 index 000000000..dbd1605ef --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage04.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage04" + * found in "J2735-TestMessage04.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage04.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage04_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage04, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage04, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage04, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage04_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage04_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage04_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage04_specs_1 = { + sizeof(struct TestMessage04), + offsetof(struct TestMessage04, _asn_ctx), + asn_MAP_TestMessage04_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage04_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage04 = { + "TestMessage04", + "TestMessage04", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage04_tags_1, + sizeof(asn_DEF_TestMessage04_tags_1) + /sizeof(asn_DEF_TestMessage04_tags_1[0]), /* 1 */ + asn_DEF_TestMessage04_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage04_tags_1) + /sizeof(asn_DEF_TestMessage04_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage04_1, + 2, /* Elements count */ + &asn_SPC_TestMessage04_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage05.c b/src/tmx/Asn_J2735/src/2020/TestMessage05.c new file mode 100644 index 000000000..6233396d6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage05.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage05" + * found in "J2735-TestMessage05.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage05.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage05_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage05, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage05, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage05, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage05_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage05_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage05_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage05_specs_1 = { + sizeof(struct TestMessage05), + offsetof(struct TestMessage05, _asn_ctx), + asn_MAP_TestMessage05_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage05_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage05 = { + "TestMessage05", + "TestMessage05", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage05_tags_1, + sizeof(asn_DEF_TestMessage05_tags_1) + /sizeof(asn_DEF_TestMessage05_tags_1[0]), /* 1 */ + asn_DEF_TestMessage05_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage05_tags_1) + /sizeof(asn_DEF_TestMessage05_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage05_1, + 2, /* Elements count */ + &asn_SPC_TestMessage05_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage06.c b/src/tmx/Asn_J2735/src/2020/TestMessage06.c new file mode 100644 index 000000000..8f29ea681 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage06.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage06" + * found in "J2735-TestMessage06.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage06.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage06_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage06, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage06, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage06, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage06_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage06_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage06_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage06_specs_1 = { + sizeof(struct TestMessage06), + offsetof(struct TestMessage06, _asn_ctx), + asn_MAP_TestMessage06_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage06_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage06 = { + "TestMessage06", + "TestMessage06", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage06_tags_1, + sizeof(asn_DEF_TestMessage06_tags_1) + /sizeof(asn_DEF_TestMessage06_tags_1[0]), /* 1 */ + asn_DEF_TestMessage06_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage06_tags_1) + /sizeof(asn_DEF_TestMessage06_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage06_1, + 2, /* Elements count */ + &asn_SPC_TestMessage06_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage07.c b/src/tmx/Asn_J2735/src/2020/TestMessage07.c new file mode 100644 index 000000000..31dd4ffc1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage07.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage07" + * found in "J2735-TestMessage07.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage07.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage07_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage07, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage07, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage07, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage07_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage07_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage07_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage07_specs_1 = { + sizeof(struct TestMessage07), + offsetof(struct TestMessage07, _asn_ctx), + asn_MAP_TestMessage07_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage07_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage07 = { + "TestMessage07", + "TestMessage07", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage07_tags_1, + sizeof(asn_DEF_TestMessage07_tags_1) + /sizeof(asn_DEF_TestMessage07_tags_1[0]), /* 1 */ + asn_DEF_TestMessage07_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage07_tags_1) + /sizeof(asn_DEF_TestMessage07_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage07_1, + 2, /* Elements count */ + &asn_SPC_TestMessage07_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage08.c b/src/tmx/Asn_J2735/src/2020/TestMessage08.c new file mode 100644 index 000000000..5fd007e7b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage08.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage08" + * found in "J2735-TestMessage08.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage08.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage08_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage08, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage08, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage08, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage08_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage08_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage08_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage08_specs_1 = { + sizeof(struct TestMessage08), + offsetof(struct TestMessage08, _asn_ctx), + asn_MAP_TestMessage08_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage08_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage08 = { + "TestMessage08", + "TestMessage08", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage08_tags_1, + sizeof(asn_DEF_TestMessage08_tags_1) + /sizeof(asn_DEF_TestMessage08_tags_1[0]), /* 1 */ + asn_DEF_TestMessage08_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage08_tags_1) + /sizeof(asn_DEF_TestMessage08_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage08_1, + 2, /* Elements count */ + &asn_SPC_TestMessage08_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage09.c b/src/tmx/Asn_J2735/src/2020/TestMessage09.c new file mode 100644 index 000000000..81db76bd7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage09.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage09" + * found in "J2735-TestMessage09.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage09.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage09_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage09, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage09, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage09, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage09_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage09_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage09_specs_1 = { + sizeof(struct TestMessage09), + offsetof(struct TestMessage09, _asn_ctx), + asn_MAP_TestMessage09_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage09_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage09 = { + "TestMessage09", + "TestMessage09", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage09_tags_1, + sizeof(asn_DEF_TestMessage09_tags_1) + /sizeof(asn_DEF_TestMessage09_tags_1[0]), /* 1 */ + asn_DEF_TestMessage09_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage09_tags_1) + /sizeof(asn_DEF_TestMessage09_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage09_1, + 2, /* Elements count */ + &asn_SPC_TestMessage09_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage10.c b/src/tmx/Asn_J2735/src/2020/TestMessage10.c new file mode 100644 index 000000000..15e8eb8f5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage10.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage10" + * found in "J2735-TestMessage10.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage10.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage10_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage10, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage10, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage10_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage10_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage10_specs_1 = { + sizeof(struct TestMessage10), + offsetof(struct TestMessage10, _asn_ctx), + asn_MAP_TestMessage10_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage10_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage10 = { + "TestMessage10", + "TestMessage10", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage10_tags_1, + sizeof(asn_DEF_TestMessage10_tags_1) + /sizeof(asn_DEF_TestMessage10_tags_1[0]), /* 1 */ + asn_DEF_TestMessage10_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage10_tags_1) + /sizeof(asn_DEF_TestMessage10_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage10_1, + 2, /* Elements count */ + &asn_SPC_TestMessage10_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage11.c b/src/tmx/Asn_J2735/src/2020/TestMessage11.c new file mode 100644 index 000000000..c88d4f811 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage11.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage11" + * found in "J2735-TestMessage11.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage11.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage11_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage11, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage11, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage11_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage11_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage11_specs_1 = { + sizeof(struct TestMessage11), + offsetof(struct TestMessage11, _asn_ctx), + asn_MAP_TestMessage11_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage11_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage11 = { + "TestMessage11", + "TestMessage11", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage11_tags_1, + sizeof(asn_DEF_TestMessage11_tags_1) + /sizeof(asn_DEF_TestMessage11_tags_1[0]), /* 1 */ + asn_DEF_TestMessage11_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage11_tags_1) + /sizeof(asn_DEF_TestMessage11_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage11_1, + 2, /* Elements count */ + &asn_SPC_TestMessage11_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage12.c b/src/tmx/Asn_J2735/src/2020/TestMessage12.c new file mode 100644 index 000000000..20b9d3c4f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage12.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage12" + * found in "J2735-TestMessage12.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage12.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage12_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage12, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage12, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage12_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage12_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage12_specs_1 = { + sizeof(struct TestMessage12), + offsetof(struct TestMessage12, _asn_ctx), + asn_MAP_TestMessage12_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage12_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage12 = { + "TestMessage12", + "TestMessage12", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage12_tags_1, + sizeof(asn_DEF_TestMessage12_tags_1) + /sizeof(asn_DEF_TestMessage12_tags_1[0]), /* 1 */ + asn_DEF_TestMessage12_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage12_tags_1) + /sizeof(asn_DEF_TestMessage12_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage12_1, + 2, /* Elements count */ + &asn_SPC_TestMessage12_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage13.c b/src/tmx/Asn_J2735/src/2020/TestMessage13.c new file mode 100644 index 000000000..32cb88d70 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage13.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage13" + * found in "J2735-TestMessage13.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage13.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage13_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage13, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage13, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage13_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage13_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage13_specs_1 = { + sizeof(struct TestMessage13), + offsetof(struct TestMessage13, _asn_ctx), + asn_MAP_TestMessage13_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage13_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage13 = { + "TestMessage13", + "TestMessage13", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage13_tags_1, + sizeof(asn_DEF_TestMessage13_tags_1) + /sizeof(asn_DEF_TestMessage13_tags_1[0]), /* 1 */ + asn_DEF_TestMessage13_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage13_tags_1) + /sizeof(asn_DEF_TestMessage13_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage13_1, + 2, /* Elements count */ + &asn_SPC_TestMessage13_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage14.c b/src/tmx/Asn_J2735/src/2020/TestMessage14.c new file mode 100644 index 000000000..5cf216bb3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage14.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage14" + * found in "J2735-TestMessage14.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage14.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage14_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage14, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage14, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage14_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage14_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage14_specs_1 = { + sizeof(struct TestMessage14), + offsetof(struct TestMessage14, _asn_ctx), + asn_MAP_TestMessage14_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage14_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage14 = { + "TestMessage14", + "TestMessage14", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage14_tags_1, + sizeof(asn_DEF_TestMessage14_tags_1) + /sizeof(asn_DEF_TestMessage14_tags_1[0]), /* 1 */ + asn_DEF_TestMessage14_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage14_tags_1) + /sizeof(asn_DEF_TestMessage14_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage14_1, + 2, /* Elements count */ + &asn_SPC_TestMessage14_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TestMessage15.c b/src/tmx/Asn_J2735/src/2020/TestMessage15.c new file mode 100644 index 000000000..c81c7a73a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TestMessage15.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TestMessage15" + * found in "J2735-TestMessage15.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TestMessage15.h" + +#include "Header.h" +#include "RegionalExtension.h" +asn_TYPE_member_t asn_MBR_TestMessage15_1[] = { + { ATF_POINTER, 2, offsetof(struct TestMessage15, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Header, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_POINTER, 1, offsetof(struct TestMessage15, regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_TestMessage15, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TestMessage15_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TestMessage15_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TestMessage15_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TestMessage15_specs_1 = { + sizeof(struct TestMessage15), + offsetof(struct TestMessage15, _asn_ctx), + asn_MAP_TestMessage15_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TestMessage15_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TestMessage15 = { + "TestMessage15", + "TestMessage15", + &asn_OP_SEQUENCE, + asn_DEF_TestMessage15_tags_1, + sizeof(asn_DEF_TestMessage15_tags_1) + /sizeof(asn_DEF_TestMessage15_tags_1[0]), /* 1 */ + asn_DEF_TestMessage15_tags_1, /* Same as above */ + sizeof(asn_DEF_TestMessage15_tags_1) + /sizeof(asn_DEF_TestMessage15_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TestMessage15_1, + 2, /* Elements count */ + &asn_SPC_TestMessage15_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ThrottleConfidence.c b/src/tmx/Asn_J2735/src/2020/ThrottleConfidence.c new file mode 100644 index 000000000..86187d3fb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ThrottleConfidence.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ThrottleConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ThrottleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ThrottleConfidence_specs_1 = { + asn_MAP_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ThrottleConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ThrottleConfidence_tags_1, + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ThrottleConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ThrottleConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ThrottleConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ThrottlePosition.c b/src/tmx/Asn_J2735/src/2020/ThrottlePosition.c new file mode 100644 index 000000000..74431f2a2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ThrottlePosition.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ThrottlePosition.h" + +int +ThrottlePosition_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 200L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ThrottlePosition_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..200) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ThrottlePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 200 } /* (0..200) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ThrottlePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ThrottlePosition = { + "ThrottlePosition", + "ThrottlePosition", + &asn_OP_NativeInteger, + asn_DEF_ThrottlePosition_tags_1, + sizeof(asn_DEF_ThrottlePosition_tags_1) + /sizeof(asn_DEF_ThrottlePosition_tags_1[0]), /* 1 */ + asn_DEF_ThrottlePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ThrottlePosition_tags_1) + /sizeof(asn_DEF_ThrottlePosition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ThrottlePosition_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ThrottlePosition_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ThrottlePosition_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TimeChangeDetails.c b/src/tmx/Asn_J2735/src/2020/TimeChangeDetails.c new file mode 100644 index 000000000..49f75ad04 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TimeChangeDetails.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SPAT_TimeMark, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SPAT_TimeMark, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minEndTime" + }, + { ATF_POINTER, 4, offsetof(struct TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SPAT_TimeMark, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxEndTime" + }, + { ATF_POINTER, 3, offsetof(struct TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SPAT_TimeMark, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "likelyTime" + }, + { ATF_POINTER, 2, offsetof(struct TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeIntervalConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 1, offsetof(struct TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SPAT_TimeMark, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nextTime" + }, +}; +static const int asn_MAP_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TimeChangeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* likelyTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TimeChangeDetails_specs_1 = { + sizeof(struct TimeChangeDetails), + offsetof(struct TimeChangeDetails, _asn_ctx), + asn_MAP_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_TimeChangeDetails_tags_1, + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_TimeChangeDetails_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TimeConfidence.c b/src/tmx/Asn_J2735/src/2020/TimeConfidence.c new file mode 100644 index 000000000..04354d577 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TimeConfidence.c @@ -0,0 +1,144 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TimeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TimeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_TimeConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 12, "time-100-000" }, + { 2, 12, "time-050-000" }, + { 3, 12, "time-020-000" }, + { 4, 12, "time-010-000" }, + { 5, 12, "time-002-000" }, + { 6, 12, "time-001-000" }, + { 7, 12, "time-000-500" }, + { 8, 12, "time-000-200" }, + { 9, 12, "time-000-100" }, + { 10, 12, "time-000-050" }, + { 11, 12, "time-000-020" }, + { 12, 12, "time-000-010" }, + { 13, 12, "time-000-005" }, + { 14, 12, "time-000-002" }, + { 15, 12, "time-000-001" }, + { 16, 14, "time-000-000-5" }, + { 17, 14, "time-000-000-2" }, + { 18, 14, "time-000-000-1" }, + { 19, 15, "time-000-000-05" }, + { 20, 15, "time-000-000-02" }, + { 21, 15, "time-000-000-01" }, + { 22, 16, "time-000-000-005" }, + { 23, 16, "time-000-000-002" }, + { 24, 16, "time-000-000-001" }, + { 25, 18, "time-000-000-000-5" }, + { 26, 18, "time-000-000-000-2" }, + { 27, 18, "time-000-000-000-1" }, + { 28, 19, "time-000-000-000-05" }, + { 29, 19, "time-000-000-000-02" }, + { 30, 19, "time-000-000-000-01" }, + { 31, 20, "time-000-000-000-005" }, + { 32, 20, "time-000-000-000-002" }, + { 33, 20, "time-000-000-000-001" }, + { 34, 22, "time-000-000-000-000-5" }, + { 35, 22, "time-000-000-000-000-2" }, + { 36, 22, "time-000-000-000-000-1" }, + { 37, 23, "time-000-000-000-000-05" }, + { 38, 23, "time-000-000-000-000-02" }, + { 39, 23, "time-000-000-000-000-01" } +}; +static const unsigned int asn_MAP_TimeConfidence_enum2value_1[] = { + 39, /* time-000-000-000-000-01(39) */ + 38, /* time-000-000-000-000-02(38) */ + 37, /* time-000-000-000-000-05(37) */ + 36, /* time-000-000-000-000-1(36) */ + 35, /* time-000-000-000-000-2(35) */ + 34, /* time-000-000-000-000-5(34) */ + 33, /* time-000-000-000-001(33) */ + 32, /* time-000-000-000-002(32) */ + 31, /* time-000-000-000-005(31) */ + 30, /* time-000-000-000-01(30) */ + 29, /* time-000-000-000-02(29) */ + 28, /* time-000-000-000-05(28) */ + 27, /* time-000-000-000-1(27) */ + 26, /* time-000-000-000-2(26) */ + 25, /* time-000-000-000-5(25) */ + 24, /* time-000-000-001(24) */ + 23, /* time-000-000-002(23) */ + 22, /* time-000-000-005(22) */ + 21, /* time-000-000-01(21) */ + 20, /* time-000-000-02(20) */ + 19, /* time-000-000-05(19) */ + 18, /* time-000-000-1(18) */ + 17, /* time-000-000-2(17) */ + 16, /* time-000-000-5(16) */ + 15, /* time-000-001(15) */ + 14, /* time-000-002(14) */ + 13, /* time-000-005(13) */ + 12, /* time-000-010(12) */ + 11, /* time-000-020(11) */ + 10, /* time-000-050(10) */ + 9, /* time-000-100(9) */ + 8, /* time-000-200(8) */ + 7, /* time-000-500(7) */ + 6, /* time-001-000(6) */ + 5, /* time-002-000(5) */ + 4, /* time-010-000(4) */ + 3, /* time-020-000(3) */ + 2, /* time-050-000(2) */ + 1, /* time-100-000(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TimeConfidence_specs_1 = { + asn_MAP_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TimeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 40, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_TimeConfidence_tags_1, + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeConfidence_tags_1) + /sizeof(asn_DEF_TimeConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TimeConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TimeConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TimeIntervalConfidence.c b/src/tmx/Asn_J2735/src/2020/TimeIntervalConfidence.c new file mode 100644 index 000000000..8a00c80eb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TimeIntervalConfidence.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TimeIntervalConfidence.h" + +int +TimeIntervalConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 15L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TimeIntervalConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_TimeIntervalConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TimeIntervalConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TimeIntervalConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TimeIntervalConfidence_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TimeOffset.c b/src/tmx/Asn_J2735/src/2020/TimeOffset.c new file mode 100644 index 000000000..f0577b506 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TimeOffset.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TimeOffset.h" + +int +TimeOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TimeOffset_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..65535) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TimeOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (1..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TimeOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeOffset = { + "TimeOffset", + "TimeOffset", + &asn_OP_NativeInteger, + asn_DEF_TimeOffset_tags_1, + sizeof(asn_DEF_TimeOffset_tags_1) + /sizeof(asn_DEF_TimeOffset_tags_1[0]), /* 1 */ + asn_DEF_TimeOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeOffset_tags_1) + /sizeof(asn_DEF_TimeOffset_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TimeOffset_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TimeOffset_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TimeOffset_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TimeRemaining.c b/src/tmx/Asn_J2735/src/2020/TimeRemaining.c new file mode 100644 index 000000000..e4fe0d726 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TimeRemaining.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TimeRemaining.h" + +int +TimeRemaining_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 9001L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TimeRemaining_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..9001) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TimeRemaining_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9001 } /* (0..9001) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TimeRemaining_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeRemaining = { + "TimeRemaining", + "TimeRemaining", + &asn_OP_NativeInteger, + asn_DEF_TimeRemaining_tags_1, + sizeof(asn_DEF_TimeRemaining_tags_1) + /sizeof(asn_DEF_TimeRemaining_tags_1[0]), /* 1 */ + asn_DEF_TimeRemaining_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeRemaining_tags_1) + /sizeof(asn_DEF_TimeRemaining_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TimeRemaining_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TimeRemaining_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TimeRemaining_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TireData.c b/src/tmx/Asn_J2735/src/2020/TireData.c new file mode 100644 index 000000000..da2854113 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TireData.c @@ -0,0 +1,176 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TireData.h" + +asn_TYPE_member_t asn_MBR_TireData_1[] = { + { ATF_POINTER, 7, offsetof(struct TireData, location), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TireLocation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "location" + }, + { ATF_POINTER, 6, offsetof(struct TireData, pressure), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TirePressure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pressure" + }, + { ATF_POINTER, 5, offsetof(struct TireData, temp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TireTemp, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "temp" + }, + { ATF_POINTER, 4, offsetof(struct TireData, wheelSensorStatus), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WheelSensorStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "wheelSensorStatus" + }, + { ATF_POINTER, 3, offsetof(struct TireData, wheelEndElectFault), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WheelEndElectFault, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "wheelEndElectFault" + }, + { ATF_POINTER, 2, offsetof(struct TireData, leakageRate), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TireLeakageRate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "leakageRate" + }, + { ATF_POINTER, 1, offsetof(struct TireData, detection), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TirePressureThresholdDetection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "detection" + }, +}; +static const int asn_MAP_TireData_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_TireData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TireData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* location */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pressure */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* temp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* wheelSensorStatus */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* wheelEndElectFault */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* leakageRate */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* detection */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TireData_specs_1 = { + sizeof(struct TireData), + offsetof(struct TireData, _asn_ctx), + asn_MAP_TireData_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_TireData_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TireData = { + "TireData", + "TireData", + &asn_OP_SEQUENCE, + asn_DEF_TireData_tags_1, + sizeof(asn_DEF_TireData_tags_1) + /sizeof(asn_DEF_TireData_tags_1[0]), /* 1 */ + asn_DEF_TireData_tags_1, /* Same as above */ + sizeof(asn_DEF_TireData_tags_1) + /sizeof(asn_DEF_TireData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TireData_1, + 7, /* Elements count */ + &asn_SPC_TireData_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TireDataList.c b/src/tmx/Asn_J2735/src/2020/TireDataList.c new file mode 100644 index 000000000..c29f825f5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TireDataList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TireDataList.h" + +#include "TireData.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TireDataList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TireDataList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_TireDataList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TireData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_TireDataList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_TireDataList_specs_1 = { + sizeof(struct TireDataList), + offsetof(struct TireDataList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_TireDataList = { + "TireDataList", + "TireDataList", + &asn_OP_SEQUENCE_OF, + asn_DEF_TireDataList_tags_1, + sizeof(asn_DEF_TireDataList_tags_1) + /sizeof(asn_DEF_TireDataList_tags_1[0]), /* 1 */ + asn_DEF_TireDataList_tags_1, /* Same as above */ + sizeof(asn_DEF_TireDataList_tags_1) + /sizeof(asn_DEF_TireDataList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TireDataList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TireDataList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_TireDataList_1, + 1, /* Single element */ + &asn_SPC_TireDataList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TireLeakageRate.c b/src/tmx/Asn_J2735/src/2020/TireLeakageRate.c new file mode 100644 index 000000000..0d2019939 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TireLeakageRate.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TireLeakageRate.h" + +int +TireLeakageRate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 64255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TireLeakageRate_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..64255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TireLeakageRate_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 64255 } /* (0..64255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TireLeakageRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TireLeakageRate = { + "TireLeakageRate", + "TireLeakageRate", + &asn_OP_NativeInteger, + asn_DEF_TireLeakageRate_tags_1, + sizeof(asn_DEF_TireLeakageRate_tags_1) + /sizeof(asn_DEF_TireLeakageRate_tags_1[0]), /* 1 */ + asn_DEF_TireLeakageRate_tags_1, /* Same as above */ + sizeof(asn_DEF_TireLeakageRate_tags_1) + /sizeof(asn_DEF_TireLeakageRate_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TireLeakageRate_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TireLeakageRate_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TireLeakageRate_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TireLocation.c b/src/tmx/Asn_J2735/src/2020/TireLocation.c new file mode 100644 index 000000000..07fb61509 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TireLocation.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TireLocation.h" + +int +TireLocation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TireLocation_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TireLocation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TireLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TireLocation = { + "TireLocation", + "TireLocation", + &asn_OP_NativeInteger, + asn_DEF_TireLocation_tags_1, + sizeof(asn_DEF_TireLocation_tags_1) + /sizeof(asn_DEF_TireLocation_tags_1[0]), /* 1 */ + asn_DEF_TireLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_TireLocation_tags_1) + /sizeof(asn_DEF_TireLocation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TireLocation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TireLocation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TireLocation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TirePressure.c b/src/tmx/Asn_J2735/src/2020/TirePressure.c new file mode 100644 index 000000000..c615cd2b4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TirePressure.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TirePressure.h" + +int +TirePressure_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 250L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TirePressure_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..250) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TirePressure_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 250 } /* (0..250) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TirePressure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TirePressure = { + "TirePressure", + "TirePressure", + &asn_OP_NativeInteger, + asn_DEF_TirePressure_tags_1, + sizeof(asn_DEF_TirePressure_tags_1) + /sizeof(asn_DEF_TirePressure_tags_1[0]), /* 1 */ + asn_DEF_TirePressure_tags_1, /* Same as above */ + sizeof(asn_DEF_TirePressure_tags_1) + /sizeof(asn_DEF_TirePressure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TirePressure_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TirePressure_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TirePressure_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TirePressureThresholdDetection.c b/src/tmx/Asn_J2735/src/2020/TirePressureThresholdDetection.c new file mode 100644 index 000000000..68cbe20e0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TirePressureThresholdDetection.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TirePressureThresholdDetection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TirePressureThresholdDetection_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TirePressureThresholdDetection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_TirePressureThresholdDetection_value2enum_1[] = { + { 0, 6, "noData" }, + { 1, 12, "overPressure" }, + { 2, 17, "noWarningPressure" }, + { 3, 13, "underPressure" }, + { 4, 20, "extremeUnderPressure" }, + { 5, 9, "undefined" }, + { 6, 14, "errorIndicator" }, + { 7, 12, "notAvailable" } +}; +static const unsigned int asn_MAP_TirePressureThresholdDetection_enum2value_1[] = { + 6, /* errorIndicator(6) */ + 4, /* extremeUnderPressure(4) */ + 0, /* noData(0) */ + 2, /* noWarningPressure(2) */ + 7, /* notAvailable(7) */ + 1, /* overPressure(1) */ + 5, /* undefined(5) */ + 3 /* underPressure(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TirePressureThresholdDetection_specs_1 = { + asn_MAP_TirePressureThresholdDetection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TirePressureThresholdDetection_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TirePressureThresholdDetection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TirePressureThresholdDetection = { + "TirePressureThresholdDetection", + "TirePressureThresholdDetection", + &asn_OP_NativeEnumerated, + asn_DEF_TirePressureThresholdDetection_tags_1, + sizeof(asn_DEF_TirePressureThresholdDetection_tags_1) + /sizeof(asn_DEF_TirePressureThresholdDetection_tags_1[0]), /* 1 */ + asn_DEF_TirePressureThresholdDetection_tags_1, /* Same as above */ + sizeof(asn_DEF_TirePressureThresholdDetection_tags_1) + /sizeof(asn_DEF_TirePressureThresholdDetection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TirePressureThresholdDetection_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TirePressureThresholdDetection_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TirePressureThresholdDetection_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TireTemp.c b/src/tmx/Asn_J2735/src/2020/TireTemp.c new file mode 100644 index 000000000..48a5b6be5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TireTemp.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TireTemp.h" + +int +TireTemp_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -8736L && value <= 55519L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TireTemp_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-8736..55519) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TireTemp_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -8736, 55519 } /* (-8736..55519) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TireTemp_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TireTemp = { + "TireTemp", + "TireTemp", + &asn_OP_NativeInteger, + asn_DEF_TireTemp_tags_1, + sizeof(asn_DEF_TireTemp_tags_1) + /sizeof(asn_DEF_TireTemp_tags_1[0]), /* 1 */ + asn_DEF_TireTemp_tags_1, /* Same as above */ + sizeof(asn_DEF_TireTemp_tags_1) + /sizeof(asn_DEF_TireTemp_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TireTemp_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TireTemp_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TireTemp_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TractionControlStatus.c b/src/tmx/Asn_J2735/src/2020/TractionControlStatus.c new file mode 100644 index 000000000..13cd1146f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TractionControlStatus.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TractionControlStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TractionControlStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TractionControlStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_TractionControlStatus_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 3, "off" }, + { 2, 2, "on" }, + { 3, 7, "engaged" } +}; +static const unsigned int asn_MAP_TractionControlStatus_enum2value_1[] = { + 3, /* engaged(3) */ + 1, /* off(1) */ + 2, /* on(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TractionControlStatus_specs_1 = { + asn_MAP_TractionControlStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TractionControlStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TractionControlStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TractionControlStatus = { + "TractionControlStatus", + "TractionControlStatus", + &asn_OP_NativeEnumerated, + asn_DEF_TractionControlStatus_tags_1, + sizeof(asn_DEF_TractionControlStatus_tags_1) + /sizeof(asn_DEF_TractionControlStatus_tags_1[0]), /* 1 */ + asn_DEF_TractionControlStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_TractionControlStatus_tags_1) + /sizeof(asn_DEF_TractionControlStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TractionControlStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TractionControlStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TractionControlStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TrailerData.c b/src/tmx/Asn_J2735/src/2020/TrailerData.c new file mode 100644 index 000000000..98e2d1286 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TrailerData.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TrailerData.h" + +asn_TYPE_member_t asn_MBR_TrailerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TrailerData, notUsed), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSPindex, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "notUsed" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerData, connection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PivotPointDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connection" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerData, units), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerUnitDescriptionList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "units" + }, +}; +static const ber_tlv_tag_t asn_DEF_TrailerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TrailerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* notUsed */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* connection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* units */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TrailerData_specs_1 = { + sizeof(struct TrailerData), + offsetof(struct TrailerData, _asn_ctx), + asn_MAP_TrailerData_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerData = { + "TrailerData", + "TrailerData", + &asn_OP_SEQUENCE, + asn_DEF_TrailerData_tags_1, + sizeof(asn_DEF_TrailerData_tags_1) + /sizeof(asn_DEF_TrailerData_tags_1[0]), /* 1 */ + asn_DEF_TrailerData_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerData_tags_1) + /sizeof(asn_DEF_TrailerData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TrailerData_1, + 3, /* Elements count */ + &asn_SPC_TrailerData_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TrailerHistoryPoint.c b/src/tmx/Asn_J2735/src/2020/TrailerHistoryPoint.c new file mode 100644 index 000000000..046639a62 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TrailerHistoryPoint.c @@ -0,0 +1,140 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TrailerHistoryPoint.h" + +asn_TYPE_member_t asn_MBR_TrailerHistoryPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TrailerHistoryPoint, pivotAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_Angle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pivotAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerHistoryPoint, timeOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeOffset, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerHistoryPoint, positionOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_24b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "positionOffset" + }, + { ATF_POINTER, 2, offsetof(struct TrailerHistoryPoint, elevationOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VertOffset_B07, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevationOffset" + }, + { ATF_POINTER, 1, offsetof(struct TrailerHistoryPoint, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CoarseHeading, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heading" + }, +}; +static const int asn_MAP_TrailerHistoryPoint_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_TrailerHistoryPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TrailerHistoryPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pivotAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeOffset */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* positionOffset */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elevationOffset */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* heading */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TrailerHistoryPoint_specs_1 = { + sizeof(struct TrailerHistoryPoint), + offsetof(struct TrailerHistoryPoint, _asn_ctx), + asn_MAP_TrailerHistoryPoint_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_TrailerHistoryPoint_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerHistoryPoint = { + "TrailerHistoryPoint", + "TrailerHistoryPoint", + &asn_OP_SEQUENCE, + asn_DEF_TrailerHistoryPoint_tags_1, + sizeof(asn_DEF_TrailerHistoryPoint_tags_1) + /sizeof(asn_DEF_TrailerHistoryPoint_tags_1[0]), /* 1 */ + asn_DEF_TrailerHistoryPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerHistoryPoint_tags_1) + /sizeof(asn_DEF_TrailerHistoryPoint_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TrailerHistoryPoint_1, + 5, /* Elements count */ + &asn_SPC_TrailerHistoryPoint_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TrailerHistoryPointList.c b/src/tmx/Asn_J2735/src/2020/TrailerHistoryPointList.c new file mode 100644 index 000000000..3a38b7825 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TrailerHistoryPointList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TrailerHistoryPointList.h" + +#include "TrailerHistoryPoint.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TrailerHistoryPointList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..23)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TrailerHistoryPointList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_TrailerHistoryPointList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TrailerHistoryPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_TrailerHistoryPointList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_TrailerHistoryPointList_specs_1 = { + sizeof(struct TrailerHistoryPointList), + offsetof(struct TrailerHistoryPointList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerHistoryPointList = { + "TrailerHistoryPointList", + "TrailerHistoryPointList", + &asn_OP_SEQUENCE_OF, + asn_DEF_TrailerHistoryPointList_tags_1, + sizeof(asn_DEF_TrailerHistoryPointList_tags_1) + /sizeof(asn_DEF_TrailerHistoryPointList_tags_1[0]), /* 1 */ + asn_DEF_TrailerHistoryPointList_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerHistoryPointList_tags_1) + /sizeof(asn_DEF_TrailerHistoryPointList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TrailerHistoryPointList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TrailerHistoryPointList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_TrailerHistoryPointList_1, + 1, /* Single element */ + &asn_SPC_TrailerHistoryPointList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TrailerMass.c b/src/tmx/Asn_J2735/src/2020/TrailerMass.c new file mode 100644 index 000000000..a589f4b3d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TrailerMass.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TrailerMass.h" + +int +TrailerMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TrailerMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TrailerMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TrailerMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrailerMass = { + "TrailerMass", + "TrailerMass", + &asn_OP_NativeInteger, + asn_DEF_TrailerMass_tags_1, + sizeof(asn_DEF_TrailerMass_tags_1) + /sizeof(asn_DEF_TrailerMass_tags_1[0]), /* 1 */ + asn_DEF_TrailerMass_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerMass_tags_1) + /sizeof(asn_DEF_TrailerMass_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TrailerMass_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TrailerMass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TrailerMass_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TrailerUnitDescription.c b/src/tmx/Asn_J2735/src/2020/TrailerUnitDescription.c new file mode 100644 index 000000000..0f86ccf58 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TrailerUnitDescription.c @@ -0,0 +1,287 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TrailerUnitDescription.h" + +#include "BumperHeights.h" +#include "PivotPointDescription.h" +#include "TrailerHistoryPointList.h" +asn_TYPE_member_t asn_MBR_TrailerUnitDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TrailerUnitDescription, isDolly), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IsDolly, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "isDolly" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerUnitDescription, width), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleWidth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerUnitDescription, length), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "length" + }, + { ATF_POINTER, 4, offsetof(struct TrailerUnitDescription, height), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "height" + }, + { ATF_POINTER, 3, offsetof(struct TrailerUnitDescription, mass), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerMass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mass" + }, + { ATF_POINTER, 2, offsetof(struct TrailerUnitDescription, bumperHeights), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BumperHeights, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "bumperHeights" + }, + { ATF_POINTER, 1, offsetof(struct TrailerUnitDescription, centerOfGravity), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "centerOfGravity" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerUnitDescription, frontPivot), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PivotPointDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "frontPivot" + }, + { ATF_POINTER, 2, offsetof(struct TrailerUnitDescription, rearPivot), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PivotPointDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rearPivot" + }, + { ATF_POINTER, 1, offsetof(struct TrailerUnitDescription, rearWheelOffset), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Offset_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rearWheelOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct TrailerUnitDescription, positionOffset), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Node_XY_24b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "positionOffset" + }, + { ATF_POINTER, 2, offsetof(struct TrailerUnitDescription, elevationOffset), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VertOffset_B07, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevationOffset" + }, + { ATF_POINTER, 1, offsetof(struct TrailerUnitDescription, crumbData), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerHistoryPointList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "crumbData" + }, +}; +static const int asn_MAP_TrailerUnitDescription_oms_1[] = { 3, 4, 5, 6, 8, 9, 11, 12 }; +static const ber_tlv_tag_t asn_DEF_TrailerUnitDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TrailerUnitDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* isDolly */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* length */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* mass */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* bumperHeights */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* centerOfGravity */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* frontPivot */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* rearPivot */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* rearWheelOffset */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* positionOffset */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* elevationOffset */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* crumbData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TrailerUnitDescription_specs_1 = { + sizeof(struct TrailerUnitDescription), + offsetof(struct TrailerUnitDescription, _asn_ctx), + asn_MAP_TrailerUnitDescription_tag2el_1, + 13, /* Count of tags in the map */ + asn_MAP_TrailerUnitDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 13, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerUnitDescription = { + "TrailerUnitDescription", + "TrailerUnitDescription", + &asn_OP_SEQUENCE, + asn_DEF_TrailerUnitDescription_tags_1, + sizeof(asn_DEF_TrailerUnitDescription_tags_1) + /sizeof(asn_DEF_TrailerUnitDescription_tags_1[0]), /* 1 */ + asn_DEF_TrailerUnitDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerUnitDescription_tags_1) + /sizeof(asn_DEF_TrailerUnitDescription_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TrailerUnitDescription_1, + 13, /* Elements count */ + &asn_SPC_TrailerUnitDescription_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TrailerUnitDescriptionList.c b/src/tmx/Asn_J2735/src/2020/TrailerUnitDescriptionList.c new file mode 100644 index 000000000..b9b35f37a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TrailerUnitDescriptionList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TrailerUnitDescriptionList.h" + +#include "TrailerUnitDescription.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TrailerUnitDescriptionList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TrailerUnitDescriptionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_TrailerUnitDescriptionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TrailerUnitDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_TrailerUnitDescriptionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_TrailerUnitDescriptionList_specs_1 = { + sizeof(struct TrailerUnitDescriptionList), + offsetof(struct TrailerUnitDescriptionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_TrailerUnitDescriptionList = { + "TrailerUnitDescriptionList", + "TrailerUnitDescriptionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_TrailerUnitDescriptionList_tags_1, + sizeof(asn_DEF_TrailerUnitDescriptionList_tags_1) + /sizeof(asn_DEF_TrailerUnitDescriptionList_tags_1[0]), /* 1 */ + asn_DEF_TrailerUnitDescriptionList_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerUnitDescriptionList_tags_1) + /sizeof(asn_DEF_TrailerUnitDescriptionList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TrailerUnitDescriptionList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TrailerUnitDescriptionList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_TrailerUnitDescriptionList_1, + 1, /* Single element */ + &asn_SPC_TrailerUnitDescriptionList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TrailerWeight.c b/src/tmx/Asn_J2735/src/2020/TrailerWeight.c new file mode 100644 index 000000000..33182b9a1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TrailerWeight.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TrailerWeight.h" + +int +TrailerWeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 64255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TrailerWeight_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..64255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TrailerWeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 64255 } /* (0..64255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TrailerWeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrailerWeight = { + "TrailerWeight", + "TrailerWeight", + &asn_OP_NativeInteger, + asn_DEF_TrailerWeight_tags_1, + sizeof(asn_DEF_TrailerWeight_tags_1) + /sizeof(asn_DEF_TrailerWeight_tags_1[0]), /* 1 */ + asn_DEF_TrailerWeight_tags_1, /* Same as above */ + sizeof(asn_DEF_TrailerWeight_tags_1) + /sizeof(asn_DEF_TrailerWeight_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TrailerWeight_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TrailerWeight_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TrailerWeight_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TransitStatus.c b/src/tmx/Asn_J2735/src/2020/TransitStatus.c new file mode 100644 index 000000000..7d9203ca2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TransitStatus.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TransitStatus.h" + +int +TransitStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 6UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TransitStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_TransitStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TransitStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitStatus = { + "TransitStatus", + "TransitStatus", + &asn_OP_BIT_STRING, + asn_DEF_TransitStatus_tags_1, + sizeof(asn_DEF_TransitStatus_tags_1) + /sizeof(asn_DEF_TransitStatus_tags_1[0]), /* 1 */ + asn_DEF_TransitStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitStatus_tags_1) + /sizeof(asn_DEF_TransitStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TransitStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TransitStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TransitStatus_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TransitVehicleOccupancy.c b/src/tmx/Asn_J2735/src/2020/TransitVehicleOccupancy.c new file mode 100644 index 000000000..96352d996 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TransitVehicleOccupancy.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TransitVehicleOccupancy.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TransitVehicleOccupancy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_TransitVehicleOccupancy_value2enum_1[] = { + { 0, 16, "occupancyUnknown" }, + { 1, 14, "occupancyEmpty" }, + { 2, 16, "occupancyVeryLow" }, + { 3, 12, "occupancyLow" }, + { 4, 12, "occupancyMed" }, + { 5, 13, "occupancyHigh" }, + { 6, 19, "occupancyNearlyFull" }, + { 7, 13, "occupancyFull" } +}; +static const unsigned int asn_MAP_TransitVehicleOccupancy_enum2value_1[] = { + 1, /* occupancyEmpty(1) */ + 7, /* occupancyFull(7) */ + 5, /* occupancyHigh(5) */ + 3, /* occupancyLow(3) */ + 4, /* occupancyMed(4) */ + 6, /* occupancyNearlyFull(6) */ + 0, /* occupancyUnknown(0) */ + 2 /* occupancyVeryLow(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransitVehicleOccupancy_specs_1 = { + asn_MAP_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransitVehicleOccupancy_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TransitVehicleOccupancy_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TransitVehicleOccupancy_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TransitVehicleStatus.c b/src/tmx/Asn_J2735/src/2020/TransitVehicleStatus.c new file mode 100644 index 000000000..929498957 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TransitVehicleStatus.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SignalRequestMessage" + * found in "J2735-SignalRequestMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TransitVehicleStatus.h" + +int +TransitVehicleStatus_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 8UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TransitVehicleStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_TransitVehicleStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TransitVehicleStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TransitVehicleStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + TransitVehicleStatus_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TransmissionAndSpeed.c b/src/tmx/Asn_J2735/src/2020/TransmissionAndSpeed.c new file mode 100644 index 000000000..f77b308ee --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TransmissionAndSpeed.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransmissionState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transmisson" + }, + { ATF_NOFLAGS, 0, offsetof(struct TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Velocity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, +}; +static const ber_tlv_tag_t asn_DEF_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TransmissionAndSpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmisson */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TransmissionAndSpeed_specs_1 = { + sizeof(struct TransmissionAndSpeed), + offsetof(struct TransmissionAndSpeed, _asn_ctx), + asn_MAP_TransmissionAndSpeed_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_TransmissionAndSpeed_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TransmissionState.c b/src/tmx/Asn_J2735/src/2020/TransmissionState.c new file mode 100644 index 000000000..7c165164e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TransmissionState.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TransmissionState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TransmissionState_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TransmissionState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_TransmissionState_value2enum_1[] = { + { 0, 7, "neutral" }, + { 1, 4, "park" }, + { 2, 12, "forwardGears" }, + { 3, 12, "reverseGears" }, + { 4, 9, "reserved1" }, + { 5, 9, "reserved2" }, + { 6, 9, "reserved3" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_TransmissionState_enum2value_1[] = { + 2, /* forwardGears(2) */ + 0, /* neutral(0) */ + 1, /* park(1) */ + 4, /* reserved1(4) */ + 5, /* reserved2(5) */ + 6, /* reserved3(6) */ + 3, /* reverseGears(3) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TransmissionState_specs_1 = { + asn_MAP_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransmissionState_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_TransmissionState_tags_1, + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionState_tags_1) + /sizeof(asn_DEF_TransmissionState_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TransmissionState_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TransmissionState_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TravelerDataFrame.c b/src/tmx/Asn_J2735/src/2020/TravelerDataFrame.c new file mode 100644 index 000000000..f51058a63 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TravelerDataFrame.c @@ -0,0 +1,612 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TravelerDataFrame.h" + +#include "GeographicalPath.h" +static int +memb_regions_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 16UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_msgId_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_msgId_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regions_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regions_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_content_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_content_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regions_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regions_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_msgId_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame__msgId, choice.furtherInfoID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FurtherInfoID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "furtherInfoID" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame__msgId, choice.roadSignID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RoadSignID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadSignID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_msgId_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* furtherInfoID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* roadSignID */ +}; +static asn_CHOICE_specifics_t asn_SPC_msgId_specs_4 = { + sizeof(struct TravelerDataFrame__msgId), + offsetof(struct TravelerDataFrame__msgId, _asn_ctx), + offsetof(struct TravelerDataFrame__msgId, present), + sizeof(((struct TravelerDataFrame__msgId *)0)->present), + asn_MAP_msgId_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_msgId_4 = { + "msgId", + "msgId", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_msgId_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_msgId_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_msgId_4, + 2, /* Elements count */ + &asn_SPC_msgId_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_regions_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GeographicalPath, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regions_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regions_specs_12 = { + sizeof(struct TravelerDataFrame__regions), + offsetof(struct TravelerDataFrame__regions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regions_12 = { + "regions", + "regions", + &asn_OP_SEQUENCE_OF, + asn_DEF_regions_tags_12, + sizeof(asn_DEF_regions_tags_12) + /sizeof(asn_DEF_regions_tags_12[0]) - 1, /* 1 */ + asn_DEF_regions_tags_12, /* Same as above */ + sizeof(asn_DEF_regions_tags_12) + /sizeof(asn_DEF_regions_tags_12[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regions_constr_12, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regions_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regions_12, + 1, /* Single element */ + &asn_SPC_regions_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_content_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame__content, choice.advisory), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIScodesAndText, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "advisory" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame__content, choice.workZone), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WorkZone, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "workZone" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame__content, choice.genericSign), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GenericSignage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "genericSign" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame__content, choice.speedLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedLimit, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedLimit" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame__content, choice.exitService), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExitService, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "exitService" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_content_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* advisory */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* workZone */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* genericSign */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* speedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* exitService */ +}; +static asn_CHOICE_specifics_t asn_SPC_content_specs_16 = { + sizeof(struct TravelerDataFrame__content), + offsetof(struct TravelerDataFrame__content, _asn_ctx), + offsetof(struct TravelerDataFrame__content, present), + sizeof(((struct TravelerDataFrame__content *)0)->present), + asn_MAP_content_tag2el_16, + 5, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_content_16 = { + "content", + "content", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_content_constr_16, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_content_constr_16, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_content_16, + 5, /* Elements count */ + &asn_SPC_content_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TravelerDataFrame_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, notUsed), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSPindex, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "notUsed" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, frameType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TravelerInfoType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "frameType" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, msgId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_msgId_4, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgId" + }, + { ATF_POINTER, 1, offsetof(struct TravelerDataFrame, startYear), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startYear" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, startTime), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, durationTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinutesDuration, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "durationTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, priority), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SignPrority, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "priority" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, notUsed1), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSPindex, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "notUsed1" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, regions), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regions_12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regions_constr_12, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regions_constr_12, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regions_constraint_1 + }, + 0, 0, /* No default value */ + "regions" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, notUsed2), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSPindex, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "notUsed2" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, notUsed3), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSPindex, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "notUsed3" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerDataFrame, content), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_content_16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "content" + }, + { ATF_POINTER, 1, offsetof(struct TravelerDataFrame, url), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_URL_Short, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "url" + }, +}; +static const int asn_MAP_TravelerDataFrame_oms_1[] = { 3, 12 }; +static const ber_tlv_tag_t asn_DEF_TravelerDataFrame_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TravelerDataFrame_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* notUsed */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frameType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* msgId */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* startYear */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* durationTime */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* priority */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* notUsed1 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* regions */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* notUsed2 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* notUsed3 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* content */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* url */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TravelerDataFrame_specs_1 = { + sizeof(struct TravelerDataFrame), + offsetof(struct TravelerDataFrame, _asn_ctx), + asn_MAP_TravelerDataFrame_tag2el_1, + 13, /* Count of tags in the map */ + asn_MAP_TravelerDataFrame_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 13, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TravelerDataFrame = { + "TravelerDataFrame", + "TravelerDataFrame", + &asn_OP_SEQUENCE, + asn_DEF_TravelerDataFrame_tags_1, + sizeof(asn_DEF_TravelerDataFrame_tags_1) + /sizeof(asn_DEF_TravelerDataFrame_tags_1[0]), /* 1 */ + asn_DEF_TravelerDataFrame_tags_1, /* Same as above */ + sizeof(asn_DEF_TravelerDataFrame_tags_1) + /sizeof(asn_DEF_TravelerDataFrame_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TravelerDataFrame_1, + 13, /* Elements count */ + &asn_SPC_TravelerDataFrame_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TravelerDataFrameList.c b/src/tmx/Asn_J2735/src/2020/TravelerDataFrameList.c new file mode 100644 index 000000000..9985c3a22 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TravelerDataFrameList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TravelerDataFrameList.h" + +#include "TravelerDataFrame.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TravelerDataFrameList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TravelerDataFrameList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_TravelerDataFrameList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TravelerDataFrame, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_TravelerDataFrameList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_TravelerDataFrameList_specs_1 = { + sizeof(struct TravelerDataFrameList), + offsetof(struct TravelerDataFrameList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_TravelerDataFrameList = { + "TravelerDataFrameList", + "TravelerDataFrameList", + &asn_OP_SEQUENCE_OF, + asn_DEF_TravelerDataFrameList_tags_1, + sizeof(asn_DEF_TravelerDataFrameList_tags_1) + /sizeof(asn_DEF_TravelerDataFrameList_tags_1[0]), /* 1 */ + asn_DEF_TravelerDataFrameList_tags_1, /* Same as above */ + sizeof(asn_DEF_TravelerDataFrameList_tags_1) + /sizeof(asn_DEF_TravelerDataFrameList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TravelerDataFrameList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TravelerDataFrameList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_TravelerDataFrameList_1, + 1, /* Single element */ + &asn_SPC_TravelerDataFrameList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TravelerInfoType.c b/src/tmx/Asn_J2735/src/2020/TravelerInfoType.c new file mode 100644 index 000000000..a1536682f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TravelerInfoType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TravelerInfoType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_TravelerInfoType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_TravelerInfoType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_TravelerInfoType_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "advisory" }, + { 2, 11, "roadSignage" }, + { 3, 17, "commercialSignage" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TravelerInfoType_enum2value_1[] = { + 1, /* advisory(1) */ + 3, /* commercialSignage(3) */ + 2, /* roadSignage(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_TravelerInfoType_specs_1 = { + asn_MAP_TravelerInfoType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TravelerInfoType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TravelerInfoType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TravelerInfoType = { + "TravelerInfoType", + "TravelerInfoType", + &asn_OP_NativeEnumerated, + asn_DEF_TravelerInfoType_tags_1, + sizeof(asn_DEF_TravelerInfoType_tags_1) + /sizeof(asn_DEF_TravelerInfoType_tags_1[0]), /* 1 */ + asn_DEF_TravelerInfoType_tags_1, /* Same as above */ + sizeof(asn_DEF_TravelerInfoType_tags_1) + /sizeof(asn_DEF_TravelerInfoType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_TravelerInfoType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_TravelerInfoType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TravelerInfoType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/TravelerInformation.c b/src/tmx/Asn_J2735/src/2020/TravelerInformation.c new file mode 100644 index 000000000..6857f27ec --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/TravelerInformation.c @@ -0,0 +1,262 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "TravelerInformation.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_TravelerInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = { + sizeof(struct TravelerInformation__regional), + offsetof(struct TravelerInformation__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_7, + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_regional_tags_7) + /sizeof(asn_DEF_regional_tags_7[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_7, + 1, /* Single element */ + &asn_SPC_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TravelerInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TravelerInformation, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_POINTER, 3, offsetof(struct TravelerInformation, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct TravelerInformation, packetID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UniqueMSGID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "packetID" + }, + { ATF_POINTER, 1, offsetof(struct TravelerInformation, urlB), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_URL_Base, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "urlB" + }, + { ATF_NOFLAGS, 0, offsetof(struct TravelerInformation, dataFrames), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TravelerDataFrameList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dataFrames" + }, + { ATF_POINTER, 1, offsetof(struct TravelerInformation, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_regional_7, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_TravelerInformation_oms_1[] = { 1, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_TravelerInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TravelerInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* packetID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* urlB */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dataFrames */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TravelerInformation_specs_1 = { + sizeof(struct TravelerInformation), + offsetof(struct TravelerInformation, _asn_ctx), + asn_MAP_TravelerInformation_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TravelerInformation_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TravelerInformation = { + "TravelerInformation", + "TravelerInformation", + &asn_OP_SEQUENCE, + asn_DEF_TravelerInformation_tags_1, + sizeof(asn_DEF_TravelerInformation_tags_1) + /sizeof(asn_DEF_TravelerInformation_tags_1[0]), /* 1 */ + asn_DEF_TravelerInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_TravelerInformation_tags_1) + /sizeof(asn_DEF_TravelerInformation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_TravelerInformation_1, + 6, /* Elements count */ + &asn_SPC_TravelerInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/URL-Base.c b/src/tmx/Asn_J2735/src/2020/URL-Base.c new file mode 100644 index 000000000..dd236090f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/URL-Base.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "URL-Base.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +int +URL_Base_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 45UL) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_URL_Base_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..45)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_URL_Base_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 6, 6, 1, 45 } /* (SIZE(1..45)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_URL_Base_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_URL_Base = { + "URL-Base", + "URL-Base", + &asn_OP_IA5String, + asn_DEF_URL_Base_tags_1, + sizeof(asn_DEF_URL_Base_tags_1) + /sizeof(asn_DEF_URL_Base_tags_1[0]), /* 1 */ + asn_DEF_URL_Base_tags_1, /* Same as above */ + sizeof(asn_DEF_URL_Base_tags_1) + /sizeof(asn_DEF_URL_Base_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_URL_Base_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_URL_Base_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + URL_Base_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/URL-Link.c b/src/tmx/Asn_J2735/src/2020/URL-Link.c new file mode 100644 index 000000000..a35ddeefd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/URL-Link.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "URL-Link.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +int +URL_Link_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 255UL) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_URL_Link_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..255)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_URL_Link_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_URL_Link_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_URL_Link = { + "URL-Link", + "URL-Link", + &asn_OP_IA5String, + asn_DEF_URL_Link_tags_1, + sizeof(asn_DEF_URL_Link_tags_1) + /sizeof(asn_DEF_URL_Link_tags_1[0]), /* 1 */ + asn_DEF_URL_Link_tags_1, /* Same as above */ + sizeof(asn_DEF_URL_Link_tags_1) + /sizeof(asn_DEF_URL_Link_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_URL_Link_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_URL_Link_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + URL_Link_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/URL-Short.c b/src/tmx/Asn_J2735/src/2020/URL-Short.c new file mode 100644 index 000000000..6476dcc40 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/URL-Short.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "URL-Short.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +int +URL_Short_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 15UL) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using IA5String, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_URL_Short_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..15)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_URL_Short_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_URL_Short_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_URL_Short = { + "URL-Short", + "URL-Short", + &asn_OP_IA5String, + asn_DEF_URL_Short_tags_1, + sizeof(asn_DEF_URL_Short_tags_1) + /sizeof(asn_DEF_URL_Short_tags_1[0]), /* 1 */ + asn_DEF_URL_Short_tags_1, /* Same as above */ + sizeof(asn_DEF_URL_Short_tags_1) + /sizeof(asn_DEF_URL_Short_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_URL_Short_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_URL_Short_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + URL_Short_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/UniqueMSGID.c b/src/tmx/Asn_J2735/src/2020/UniqueMSGID.c new file mode 100644 index 000000000..a9eab30bb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/UniqueMSGID.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "UniqueMSGID.h" + +int +UniqueMSGID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 9UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_UniqueMSGID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 9 /* (SIZE(9..9)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_UniqueMSGID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 9, 9 } /* (SIZE(9..9)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_UniqueMSGID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_UniqueMSGID = { + "UniqueMSGID", + "UniqueMSGID", + &asn_OP_OCTET_STRING, + asn_DEF_UniqueMSGID_tags_1, + sizeof(asn_DEF_UniqueMSGID_tags_1) + /sizeof(asn_DEF_UniqueMSGID_tags_1[0]), /* 1 */ + asn_DEF_UniqueMSGID_tags_1, /* Same as above */ + sizeof(asn_DEF_UniqueMSGID_tags_1) + /sizeof(asn_DEF_UniqueMSGID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_UniqueMSGID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_UniqueMSGID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + UniqueMSGID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/UserSizeAndBehaviour.c b/src/tmx/Asn_J2735/src/2020/UserSizeAndBehaviour.c new file mode 100644 index 000000000..4fff71189 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/UserSizeAndBehaviour.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "PersonalSafetyMessage" + * found in "J2735-PersonalSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "UserSizeAndBehaviour.h" + +int +UserSizeAndBehaviour_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 5UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_UserSizeAndBehaviour_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_UserSizeAndBehaviour_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 5, 5 } /* (SIZE(5..5,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_UserSizeAndBehaviour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_UserSizeAndBehaviour = { + "UserSizeAndBehaviour", + "UserSizeAndBehaviour", + &asn_OP_BIT_STRING, + asn_DEF_UserSizeAndBehaviour_tags_1, + sizeof(asn_DEF_UserSizeAndBehaviour_tags_1) + /sizeof(asn_DEF_UserSizeAndBehaviour_tags_1[0]), /* 1 */ + asn_DEF_UserSizeAndBehaviour_tags_1, /* Same as above */ + sizeof(asn_DEF_UserSizeAndBehaviour_tags_1) + /sizeof(asn_DEF_UserSizeAndBehaviour_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_UserSizeAndBehaviour_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_UserSizeAndBehaviour_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + UserSizeAndBehaviour_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VINstring.c b/src/tmx/Asn_J2735/src/2020/VINstring.c new file mode 100644 index 000000000..1a0ecd229 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VINstring.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VINstring.h" + +int +VINstring_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 17UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VINstring_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..17)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VINstring_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 17 } /* (SIZE(1..17)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VINstring_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VINstring = { + "VINstring", + "VINstring", + &asn_OP_OCTET_STRING, + asn_DEF_VINstring_tags_1, + sizeof(asn_DEF_VINstring_tags_1) + /sizeof(asn_DEF_VINstring_tags_1[0]), /* 1 */ + asn_DEF_VINstring_tags_1, /* Same as above */ + sizeof(asn_DEF_VINstring_tags_1) + /sizeof(asn_DEF_VINstring_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VINstring_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VINstring_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VINstring_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ValidRegion.c b/src/tmx/Asn_J2735/src/2020/ValidRegion.c new file mode 100644 index 000000000..314d2ab93 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ValidRegion.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ValidRegion.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_area_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_area_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_area_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ValidRegion__area, choice.shapePointSet), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ShapePointSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "shapePointSet" + }, + { ATF_NOFLAGS, 0, offsetof(struct ValidRegion__area, choice.circle), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Circle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "circle" + }, + { ATF_NOFLAGS, 0, offsetof(struct ValidRegion__area, choice.regionPointSet), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegionPointSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regionPointSet" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_area_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapePointSet */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* circle */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* regionPointSet */ +}; +static asn_CHOICE_specifics_t asn_SPC_area_specs_4 = { + sizeof(struct ValidRegion__area), + offsetof(struct ValidRegion__area, _asn_ctx), + offsetof(struct ValidRegion__area, present), + sizeof(((struct ValidRegion__area *)0)->present), + asn_MAP_area_tag2el_4, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_area_4 = { + "area", + "area", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_area_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_area_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_area_4, + 3, /* Elements count */ + &asn_SPC_area_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ValidRegion_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ValidRegion, direction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HeadingSlice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "direction" + }, + { ATF_POINTER, 1, offsetof(struct ValidRegion, extent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Extent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "extent" + }, + { ATF_NOFLAGS, 0, offsetof(struct ValidRegion, area), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_area_4, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "area" + }, +}; +static const int asn_MAP_ValidRegion_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ValidRegion_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ValidRegion_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* extent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* area */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ValidRegion_specs_1 = { + sizeof(struct ValidRegion), + offsetof(struct ValidRegion, _asn_ctx), + asn_MAP_ValidRegion_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ValidRegion_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ValidRegion = { + "ValidRegion", + "ValidRegion", + &asn_OP_SEQUENCE, + asn_DEF_ValidRegion_tags_1, + sizeof(asn_DEF_ValidRegion_tags_1) + /sizeof(asn_DEF_ValidRegion_tags_1[0]), /* 1 */ + asn_DEF_ValidRegion_tags_1, /* Same as above */ + sizeof(asn_DEF_ValidRegion_tags_1) + /sizeof(asn_DEF_ValidRegion_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ValidRegion_1, + 3, /* Elements count */ + &asn_SPC_ValidRegion_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleClassification.c b/src/tmx/Asn_J2735/src/2020/VehicleClassification.c new file mode 100644 index 000000000..e0875ef5e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleClassification.c @@ -0,0 +1,316 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleClassification.h" + +#include "RegionalExtension.h" +static int +memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_regional_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_regional_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reg_VehicleClassification, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_regional_specs_10 = { + sizeof(struct VehicleClassification__regional), + offsetof(struct VehicleClassification__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_regional_tags_10, + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_regional_tags_10) + /sizeof(asn_DEF_regional_tags_10[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_regional_constr_10, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_regional_constr_10, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_regional_10, + 1, /* Single element */ + &asn_SPC_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_VehicleClassification_1[] = { + { ATF_POINTER, 9, offsetof(struct VehicleClassification, keyType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleClass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "keyType" + }, + { ATF_POINTER, 8, offsetof(struct VehicleClassification, role), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BasicVehicleRole, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 7, offsetof(struct VehicleClassification, iso3883), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Iso3833VehicleType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iso3883" + }, + { ATF_POINTER, 6, offsetof(struct VehicleClassification, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hpmsType" + }, + { ATF_POINTER, 5, offsetof(struct VehicleClassification, vehicleType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleGroupAffected, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleType" + }, + { ATF_POINTER, 4, offsetof(struct VehicleClassification, responseEquip), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IncidentResponseEquipment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "responseEquip" + }, + { ATF_POINTER, 3, offsetof(struct VehicleClassification, responderType), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResponderGroupAffected, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "responderType" + }, + { ATF_POINTER, 2, offsetof(struct VehicleClassification, fuelType), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FuelType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "fuelType" + }, + { ATF_POINTER, 1, offsetof(struct VehicleClassification, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_regional_10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_regional_constr_10, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_regional_constr_10, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_VehicleClassification_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_VehicleClassification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleClassification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* keyType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* iso3883 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hpmsType */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* responseEquip */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* responderType */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* fuelType */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleClassification_specs_1 = { + sizeof(struct VehicleClassification), + offsetof(struct VehicleClassification, _asn_ctx), + asn_MAP_VehicleClassification_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_VehicleClassification_oms_1, /* Optional members */ + 9, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleClassification = { + "VehicleClassification", + "VehicleClassification", + &asn_OP_SEQUENCE, + asn_DEF_VehicleClassification_tags_1, + sizeof(asn_DEF_VehicleClassification_tags_1) + /sizeof(asn_DEF_VehicleClassification_tags_1[0]), /* 1 */ + asn_DEF_VehicleClassification_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleClassification_tags_1) + /sizeof(asn_DEF_VehicleClassification_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_VehicleClassification_1, + 9, /* Elements count */ + &asn_SPC_VehicleClassification_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleData.c b/src/tmx/Asn_J2735/src/2020/VehicleData.c new file mode 100644 index 000000000..78a8c77e2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleData.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleData.h" + +#include "BumperHeights.h" +asn_TYPE_member_t asn_MBR_VehicleData_1[] = { + { ATF_POINTER, 4, offsetof(struct VehicleData, height), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "height" + }, + { ATF_POINTER, 3, offsetof(struct VehicleData, bumpers), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BumperHeights, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "bumpers" + }, + { ATF_POINTER, 2, offsetof(struct VehicleData, mass), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mass" + }, + { ATF_POINTER, 1, offsetof(struct VehicleData, trailerWeight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerWeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerWeight" + }, +}; +static const int asn_MAP_VehicleData_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_VehicleData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* bumpers */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mass */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* trailerWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleData_specs_1 = { + sizeof(struct VehicleData), + offsetof(struct VehicleData, _asn_ctx), + asn_MAP_VehicleData_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_VehicleData_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleData = { + "VehicleData", + "VehicleData", + &asn_OP_SEQUENCE, + asn_DEF_VehicleData_tags_1, + sizeof(asn_DEF_VehicleData_tags_1) + /sizeof(asn_DEF_VehicleData_tags_1[0]), /* 1 */ + asn_DEF_VehicleData_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleData_tags_1) + /sizeof(asn_DEF_VehicleData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_VehicleData_1, + 4, /* Elements count */ + &asn_SPC_VehicleData_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleEventFlags.c b/src/tmx/Asn_J2735/src/2020/VehicleEventFlags.c new file mode 100644 index 000000000..d7298f996 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleEventFlags.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleEventFlags.h" + +int +VehicleEventFlags_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 13UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleEventFlags_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleEventFlags_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 13, 13 } /* (SIZE(13..13,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VehicleEventFlags_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleEventFlags = { + "VehicleEventFlags", + "VehicleEventFlags", + &asn_OP_BIT_STRING, + asn_DEF_VehicleEventFlags_tags_1, + sizeof(asn_DEF_VehicleEventFlags_tags_1) + /sizeof(asn_DEF_VehicleEventFlags_tags_1[0]), /* 1 */ + asn_DEF_VehicleEventFlags_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleEventFlags_tags_1) + /sizeof(asn_DEF_VehicleEventFlags_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleEventFlags_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleEventFlags_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VehicleEventFlags_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleGroupAffected.c b/src/tmx/Asn_J2735/src/2020/VehicleGroupAffected.c new file mode 100644 index 000000000..54edad706 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleGroupAffected.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITIS" + * found in "J2735-ITIS.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleGroupAffected.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleGroupAffected_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleGroupAffected_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 34 } /* (0..34,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_VehicleGroupAffected_value2enum_1[] = { + { 9217, 12, "all-vehicles" }, + { 9218, 8, "bicycles" }, + { 9219, 11, "motorcycles" }, + { 9220, 4, "cars" }, + { 9221, 14, "light-vehicles" }, + { 9222, 23, "cars-and-light-vehicles" }, + { 9223, 18, "cars-with-trailers" }, + { 9224, 31, "cars-with-recreational-trailers" }, + { 9225, 22, "vehicles-with-trailers" }, + { 9226, 14, "heavy-vehicles" }, + { 9227, 6, "trucks" }, + { 9228, 5, "buses" }, + { 9229, 17, "articulated-buses" }, + { 9230, 12, "school-buses" }, + { 9231, 27, "vehicles-with-semi-trailers" }, + { 9232, 29, "vehicles-with-double-trailers" }, + { 9233, 21, "high-profile-vehicles" }, + { 9234, 13, "wide-vehicles" }, + { 9235, 13, "long-vehicles" }, + { 9236, 15, "hazardous-loads" }, + { 9237, 17, "exceptional-loads" }, + { 9238, 14, "abnormal-loads" }, + { 9239, 7, "convoys" }, + { 9240, 20, "maintenance-vehicles" }, + { 9241, 17, "delivery-vehicles" }, + { 9242, 42, "vehicles-with-even-numbered-license-plates" }, + { 9243, 41, "vehicles-with-odd-numbered-license-plates" }, + { 9244, 29, "vehicles-with-parking-permits" }, + { 9245, 34, "vehicles-with-catalytic-converters" }, + { 9246, 37, "vehicles-without-catalytic-converters" }, + { 9247, 20, "gas-powered-vehicles" }, + { 9248, 23, "diesel-powered-vehicles" }, + { 9249, 12, "lPG-vehicles" }, + { 9250, 16, "military-convoys" }, + { 9251, 17, "military-vehicles" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_VehicleGroupAffected_enum2value_1[] = { + 21, /* abnormal-loads(9238) */ + 0, /* all-vehicles(9217) */ + 12, /* articulated-buses(9229) */ + 1, /* bicycles(9218) */ + 11, /* buses(9228) */ + 3, /* cars(9220) */ + 5, /* cars-and-light-vehicles(9222) */ + 7, /* cars-with-recreational-trailers(9224) */ + 6, /* cars-with-trailers(9223) */ + 22, /* convoys(9239) */ + 24, /* delivery-vehicles(9241) */ + 31, /* diesel-powered-vehicles(9248) */ + 20, /* exceptional-loads(9237) */ + 30, /* gas-powered-vehicles(9247) */ + 19, /* hazardous-loads(9236) */ + 9, /* heavy-vehicles(9226) */ + 16, /* high-profile-vehicles(9233) */ + 32, /* lPG-vehicles(9249) */ + 4, /* light-vehicles(9221) */ + 18, /* long-vehicles(9235) */ + 23, /* maintenance-vehicles(9240) */ + 33, /* military-convoys(9250) */ + 34, /* military-vehicles(9251) */ + 2, /* motorcycles(9219) */ + 13, /* school-buses(9230) */ + 10, /* trucks(9227) */ + 28, /* vehicles-with-catalytic-converters(9245) */ + 15, /* vehicles-with-double-trailers(9232) */ + 25, /* vehicles-with-even-numbered-license-plates(9242) */ + 26, /* vehicles-with-odd-numbered-license-plates(9243) */ + 27, /* vehicles-with-parking-permits(9244) */ + 14, /* vehicles-with-semi-trailers(9231) */ + 8, /* vehicles-with-trailers(9225) */ + 29, /* vehicles-without-catalytic-converters(9246) */ + 17 /* wide-vehicles(9234) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleGroupAffected_specs_1 = { + asn_MAP_VehicleGroupAffected_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleGroupAffected_enum2value_1, /* N => "tag"; sorted by N */ + 35, /* Number of elements in the maps */ + 36, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleGroupAffected_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleGroupAffected = { + "VehicleGroupAffected", + "VehicleGroupAffected", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleGroupAffected_tags_1, + sizeof(asn_DEF_VehicleGroupAffected_tags_1) + /sizeof(asn_DEF_VehicleGroupAffected_tags_1[0]), /* 1 */ + asn_DEF_VehicleGroupAffected_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleGroupAffected_tags_1) + /sizeof(asn_DEF_VehicleGroupAffected_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleGroupAffected_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleGroupAffected_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleGroupAffected_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleHeight.c b/src/tmx/Asn_J2735/src/2020/VehicleHeight.c new file mode 100644 index 000000000..a3beef2a8 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleHeight.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleHeight.h" + +int +VehicleHeight_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_VehicleHeight_tags_1, + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleHeight_tags_1) + /sizeof(asn_DEF_VehicleHeight_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleHeight_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleHeight_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VehicleHeight_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleID.c b/src/tmx/Asn_J2735/src/2020/VehicleID.c new file mode 100644 index 000000000..20423f2b0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleID.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleID.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TemporaryID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "entityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stationID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* entityID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* stationID */ +}; +asn_CHOICE_specifics_t asn_SPC_VehicleID_specs_1 = { + sizeof(struct VehicleID), + offsetof(struct VehicleID, _asn_ctx), + offsetof(struct VehicleID, present), + sizeof(((struct VehicleID *)0)->present), + asn_MAP_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleID = { + "VehicleID", + "VehicleID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleIdent.c b/src/tmx/Asn_J2735/src/2020/VehicleIdent.c new file mode 100644 index 000000000..a53b1db48 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleIdent.c @@ -0,0 +1,314 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleIdent.h" + +#include "VehicleID.h" +static int check_permitted_alphabet_4(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +static int +memb_ownerCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1UL && size <= 32UL) + && !check_permitted_alphabet_4(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_vehicleClass_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_vehicleClass_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_ownerCode_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ownerCode_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_vehicleClass_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleIdent__vehicleClass, choice.vGroup), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleGroupAffected, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleIdent__vehicleClass, choice.rGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResponderGroupAffected, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleIdent__vehicleClass, choice.rEquip), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IncidentResponseEquipment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rEquip" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_vehicleClass_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vGroup */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* rEquip */ +}; +static asn_CHOICE_specifics_t asn_SPC_vehicleClass_specs_7 = { + sizeof(struct VehicleIdent__vehicleClass), + offsetof(struct VehicleIdent__vehicleClass, _asn_ctx), + offsetof(struct VehicleIdent__vehicleClass, present), + sizeof(((struct VehicleIdent__vehicleClass *)0)->present), + asn_MAP_vehicleClass_tag2el_7, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_vehicleClass_7 = { + "vehicleClass", + "vehicleClass", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_vehicleClass_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_vehicleClass_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_vehicleClass_7, + 3, /* Elements count */ + &asn_SPC_vehicleClass_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_VehicleIdent_1[] = { + { ATF_POINTER, 6, offsetof(struct VehicleIdent, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 5, offsetof(struct VehicleIdent, vin), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VINstring, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vin" + }, + { ATF_POINTER, 4, offsetof(struct VehicleIdent, ownerCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_ownerCode_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ownerCode_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_ownerCode_constraint_1 + }, + 0, 0, /* No default value */ + "ownerCode" + }, + { ATF_POINTER, 3, offsetof(struct VehicleIdent, id), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_VehicleID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_POINTER, 2, offsetof(struct VehicleIdent, vehicleType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleType" + }, + { ATF_POINTER, 1, offsetof(struct VehicleIdent, vehicleClass), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_vehicleClass_7, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleClass" + }, +}; +static const int asn_MAP_VehicleIdent_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_VehicleIdent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleIdent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vin */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ownerCode */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* vehicleClass */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleIdent_specs_1 = { + sizeof(struct VehicleIdent), + offsetof(struct VehicleIdent, _asn_ctx), + asn_MAP_VehicleIdent_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_VehicleIdent_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleIdent = { + "VehicleIdent", + "VehicleIdent", + &asn_OP_SEQUENCE, + asn_DEF_VehicleIdent_tags_1, + sizeof(asn_DEF_VehicleIdent_tags_1) + /sizeof(asn_DEF_VehicleIdent_tags_1[0]), /* 1 */ + asn_DEF_VehicleIdent_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleIdent_tags_1) + /sizeof(asn_DEF_VehicleIdent_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_VehicleIdent_1, + 6, /* Elements count */ + &asn_SPC_VehicleIdent_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleLength.c b/src/tmx/Asn_J2735/src/2020/VehicleLength.c new file mode 100644 index 000000000..777266c7c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleLength.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleLength.h" + +int +VehicleLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 4095L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_NativeInteger, + asn_DEF_VehicleLength_tags_1, + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleLength_tags_1) + /sizeof(asn_DEF_VehicleLength_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleLength_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleLength_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VehicleLength_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleMass.c b/src/tmx/Asn_J2735/src/2020/VehicleMass.c new file mode 100644 index 000000000..de3c08b0a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleMass.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleMass.h" + +int +VehicleMass_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_VehicleMass_tags_1, + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleMass_tags_1) + /sizeof(asn_DEF_VehicleMass_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleMass_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleMass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VehicleMass_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleSafetyExtensions.c b/src/tmx/Asn_J2735/src/2020/VehicleSafetyExtensions.c new file mode 100644 index 000000000..b6fc9e6a9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleSafetyExtensions.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleSafetyExtensions.h" + +#include "PathHistory.h" +#include "PathPrediction.h" +asn_TYPE_member_t asn_MBR_VehicleSafetyExtensions_1[] = { + { ATF_POINTER, 4, offsetof(struct VehicleSafetyExtensions, events), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleEventFlags, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "events" + }, + { ATF_POINTER, 3, offsetof(struct VehicleSafetyExtensions, pathHistory), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathHistory, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pathHistory" + }, + { ATF_POINTER, 2, offsetof(struct VehicleSafetyExtensions, pathPrediction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PathPrediction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pathPrediction" + }, + { ATF_POINTER, 1, offsetof(struct VehicleSafetyExtensions, lights), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExteriorLights, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lights" + }, +}; +static const int asn_MAP_VehicleSafetyExtensions_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_VehicleSafetyExtensions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleSafetyExtensions_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* events */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pathHistory */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pathPrediction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* lights */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleSafetyExtensions_specs_1 = { + sizeof(struct VehicleSafetyExtensions), + offsetof(struct VehicleSafetyExtensions, _asn_ctx), + asn_MAP_VehicleSafetyExtensions_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_VehicleSafetyExtensions_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleSafetyExtensions = { + "VehicleSafetyExtensions", + "VehicleSafetyExtensions", + &asn_OP_SEQUENCE, + asn_DEF_VehicleSafetyExtensions_tags_1, + sizeof(asn_DEF_VehicleSafetyExtensions_tags_1) + /sizeof(asn_DEF_VehicleSafetyExtensions_tags_1[0]), /* 1 */ + asn_DEF_VehicleSafetyExtensions_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleSafetyExtensions_tags_1) + /sizeof(asn_DEF_VehicleSafetyExtensions_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_VehicleSafetyExtensions_1, + 4, /* Elements count */ + &asn_SPC_VehicleSafetyExtensions_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleSize.c b/src/tmx/Asn_J2735/src/2020/VehicleSize.c new file mode 100644 index 000000000..d1c5b809b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleSize.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleSize.h" + +asn_TYPE_member_t asn_MBR_VehicleSize_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleSize, width), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleWidth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleSize, length), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "length" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleSize_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleSize_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* length */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleSize_specs_1 = { + sizeof(struct VehicleSize), + offsetof(struct VehicleSize, _asn_ctx), + asn_MAP_VehicleSize_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleSize = { + "VehicleSize", + "VehicleSize", + &asn_OP_SEQUENCE, + asn_DEF_VehicleSize_tags_1, + sizeof(asn_DEF_VehicleSize_tags_1) + /sizeof(asn_DEF_VehicleSize_tags_1[0]), /* 1 */ + asn_DEF_VehicleSize_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleSize_tags_1) + /sizeof(asn_DEF_VehicleSize_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_VehicleSize_1, + 2, /* Elements count */ + &asn_SPC_VehicleSize_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleStatus.c b/src/tmx/Asn_J2735/src/2020/VehicleStatus.c new file mode 100644 index 000000000..8a0330855 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleStatus.c @@ -0,0 +1,1061 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleStatus.h" + +#include "WiperSet.h" +#include "BrakeSystemStatus.h" +#include "FullPositionVector.h" +#include "SpeedandHeadingandThrottleConfidence.h" +#include "VehicleIdent.h" +#include "J1939data.h" +#include "AccelerationSet4Way.h" +#include "ConfidenceSet.h" +static asn_TYPE_member_t asn_MBR_steering_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatus__steering, angle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "angle" + }, + { ATF_POINTER, 3, offsetof(struct VehicleStatus__steering, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 2, offsetof(struct VehicleStatus__steering, rate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SteeringWheelAngleRateOfChange, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rate" + }, + { ATF_POINTER, 1, offsetof(struct VehicleStatus__steering, wheels), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DrivingWheelAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "wheels" + }, +}; +static const int asn_MAP_steering_oms_12[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_steering_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_steering_tag2el_12[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* angle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* wheels */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_steering_specs_12 = { + sizeof(struct VehicleStatus__steering), + offsetof(struct VehicleStatus__steering, _asn_ctx), + asn_MAP_steering_tag2el_12, + 4, /* Count of tags in the map */ + asn_MAP_steering_oms_12, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_steering_12 = { + "steering", + "steering", + &asn_OP_SEQUENCE, + asn_DEF_steering_tags_12, + sizeof(asn_DEF_steering_tags_12) + /sizeof(asn_DEF_steering_tags_12[0]) - 1, /* 1 */ + asn_DEF_steering_tags_12, /* Same as above */ + sizeof(asn_DEF_steering_tags_12) + /sizeof(asn_DEF_steering_tags_12[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_steering_12, + 4, /* Elements count */ + &asn_SPC_steering_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_accelSets_17[] = { + { ATF_POINTER, 5, offsetof(struct VehicleStatus__accelSets, accel4way), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationSet4Way, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accel4way" + }, + { ATF_POINTER, 4, offsetof(struct VehicleStatus__accelSets, vertAccelThres), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VerticalAccelerationThreshold, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vertAccelThres" + }, + { ATF_POINTER, 3, offsetof(struct VehicleStatus__accelSets, yawRateCon), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_YawRateConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yawRateCon" + }, + { ATF_POINTER, 2, offsetof(struct VehicleStatus__accelSets, hozAccelCon), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccelerationConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hozAccelCon" + }, + { ATF_POINTER, 1, offsetof(struct VehicleStatus__accelSets, confidenceSet), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConfidenceSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidenceSet" + }, +}; +static const int asn_MAP_accelSets_oms_17[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_accelSets_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_accelSets_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accel4way */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vertAccelThres */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* yawRateCon */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hozAccelCon */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* confidenceSet */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_accelSets_specs_17 = { + sizeof(struct VehicleStatus__accelSets), + offsetof(struct VehicleStatus__accelSets, _asn_ctx), + asn_MAP_accelSets_tag2el_17, + 5, /* Count of tags in the map */ + asn_MAP_accelSets_oms_17, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_accelSets_17 = { + "accelSets", + "accelSets", + &asn_OP_SEQUENCE, + asn_DEF_accelSets_tags_17, + sizeof(asn_DEF_accelSets_tags_17) + /sizeof(asn_DEF_accelSets_tags_17[0]) - 1, /* 1 */ + asn_DEF_accelSets_tags_17, /* Same as above */ + sizeof(asn_DEF_accelSets_tags_17) + /sizeof(asn_DEF_accelSets_tags_17[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_accelSets_17, + 5, /* Elements count */ + &asn_SPC_accelSets_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_object_23[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatus__object, obDist), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ObstacleDistance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "obDist" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatus__object, obDirect), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_Angle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "obDirect" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatus__object, dateTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DDateTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dateTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_object_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_object_tag2el_23[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* obDist */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* obDirect */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* dateTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_object_specs_23 = { + sizeof(struct VehicleStatus__object), + offsetof(struct VehicleStatus__object, _asn_ctx), + asn_MAP_object_tag2el_23, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_object_23 = { + "object", + "object", + &asn_OP_SEQUENCE, + asn_DEF_object_tags_23, + sizeof(asn_DEF_object_tags_23) + /sizeof(asn_DEF_object_tags_23[0]) - 1, /* 1 */ + asn_DEF_object_tags_23, /* Same as above */ + sizeof(asn_DEF_object_tags_23) + /sizeof(asn_DEF_object_tags_23[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_object_23, + 3, /* Elements count */ + &asn_SPC_object_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_vehicleData_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatus__vehicleData, height), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleHeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatus__vehicleData, bumpers), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BumperHeights, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "bumpers" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatus__vehicleData, mass), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleMass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mass" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatus__vehicleData, trailerWeight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrailerWeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerWeight" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatus__vehicleData, type), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "type" + }, +}; +static const ber_tlv_tag_t asn_DEF_vehicleData_tags_31[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_vehicleData_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* bumpers */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mass */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* trailerWeight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* type */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_vehicleData_specs_31 = { + sizeof(struct VehicleStatus__vehicleData), + offsetof(struct VehicleStatus__vehicleData, _asn_ctx), + asn_MAP_vehicleData_tag2el_31, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_vehicleData_31 = { + "vehicleData", + "vehicleData", + &asn_OP_SEQUENCE, + asn_DEF_vehicleData_tags_31, + sizeof(asn_DEF_vehicleData_tags_31) + /sizeof(asn_DEF_vehicleData_tags_31[0]) - 1, /* 1 */ + asn_DEF_vehicleData_tags_31, /* Same as above */ + sizeof(asn_DEF_vehicleData_tags_31) + /sizeof(asn_DEF_vehicleData_tags_31[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_vehicleData_31, + 5, /* Elements count */ + &asn_SPC_vehicleData_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_weatherReport_39[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatus__weatherReport, isRaining), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EssPrecipYesNo, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "isRaining" + }, + { ATF_POINTER, 4, offsetof(struct VehicleStatus__weatherReport, rainRate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EssPrecipRate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rainRate" + }, + { ATF_POINTER, 3, offsetof(struct VehicleStatus__weatherReport, precipSituation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EssPrecipSituation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "precipSituation" + }, + { ATF_POINTER, 2, offsetof(struct VehicleStatus__weatherReport, solarRadiation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EssSolarRadiation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "solarRadiation" + }, + { ATF_POINTER, 1, offsetof(struct VehicleStatus__weatherReport, friction), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EssMobileFriction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "friction" + }, +}; +static const int asn_MAP_weatherReport_oms_39[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_weatherReport_tags_39[] = { + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_weatherReport_tag2el_39[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* isRaining */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rainRate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* precipSituation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* solarRadiation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* friction */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_weatherReport_specs_39 = { + sizeof(struct VehicleStatus__weatherReport), + offsetof(struct VehicleStatus__weatherReport, _asn_ctx), + asn_MAP_weatherReport_tag2el_39, + 5, /* Count of tags in the map */ + asn_MAP_weatherReport_oms_39, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_weatherReport_39 = { + "weatherReport", + "weatherReport", + &asn_OP_SEQUENCE, + asn_DEF_weatherReport_tags_39, + sizeof(asn_DEF_weatherReport_tags_39) + /sizeof(asn_DEF_weatherReport_tags_39[0]) - 1, /* 1 */ + asn_DEF_weatherReport_tags_39, /* Same as above */ + sizeof(asn_DEF_weatherReport_tags_39) + /sizeof(asn_DEF_weatherReport_tags_39[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_weatherReport_39, + 5, /* Elements count */ + &asn_SPC_weatherReport_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_VehicleStatus_1[] = { + { ATF_POINTER, 22, offsetof(struct VehicleStatus, lights), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExteriorLights, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lights" + }, + { ATF_POINTER, 21, offsetof(struct VehicleStatus, lightBar), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LightbarInUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lightBar" + }, + { ATF_POINTER, 20, offsetof(struct VehicleStatus, wipers), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WiperSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "wipers" + }, + { ATF_POINTER, 19, offsetof(struct VehicleStatus, brakeStatus), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BrakeSystemStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "brakeStatus" + }, + { ATF_POINTER, 18, offsetof(struct VehicleStatus, brakePressure), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BrakeAppliedPressure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "brakePressure" + }, + { ATF_POINTER, 17, offsetof(struct VehicleStatus, roadFriction), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CoefficientOfFriction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadFriction" + }, + { ATF_POINTER, 16, offsetof(struct VehicleStatus, sunData), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SunSensor, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sunData" + }, + { ATF_POINTER, 15, offsetof(struct VehicleStatus, rainData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RainSensor, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rainData" + }, + { ATF_POINTER, 14, offsetof(struct VehicleStatus, airTemp), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AmbientAirTemperature, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "airTemp" + }, + { ATF_POINTER, 13, offsetof(struct VehicleStatus, airPres), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AmbientAirPressure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "airPres" + }, + { ATF_POINTER, 12, offsetof(struct VehicleStatus, steering), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_steering_12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "steering" + }, + { ATF_POINTER, 11, offsetof(struct VehicleStatus, accelSets), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + 0, + &asn_DEF_accelSets_17, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accelSets" + }, + { ATF_POINTER, 10, offsetof(struct VehicleStatus, object), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + 0, + &asn_DEF_object_23, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "object" + }, + { ATF_POINTER, 9, offsetof(struct VehicleStatus, fullPos), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FullPositionVector, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "fullPos" + }, + { ATF_POINTER, 8, offsetof(struct VehicleStatus, throttlePos), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThrottlePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "throttlePos" + }, + { ATF_POINTER, 7, offsetof(struct VehicleStatus, speedHeadC), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedandHeadingandThrottleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedHeadC" + }, + { ATF_POINTER, 6, offsetof(struct VehicleStatus, speedC), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedC" + }, + { ATF_POINTER, 5, offsetof(struct VehicleStatus, vehicleData), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + 0, + &asn_DEF_vehicleData_31, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleData" + }, + { ATF_POINTER, 4, offsetof(struct VehicleStatus, vehicleIdent), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleIdent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleIdent" + }, + { ATF_POINTER, 3, offsetof(struct VehicleStatus, j1939data), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_J1939data, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "j1939data" + }, + { ATF_POINTER, 2, offsetof(struct VehicleStatus, weatherReport), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + 0, + &asn_DEF_weatherReport_39, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "weatherReport" + }, + { ATF_POINTER, 1, offsetof(struct VehicleStatus, gnssStatus), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNSSstatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "gnssStatus" + }, +}; +static const int asn_MAP_VehicleStatus_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 }; +static const ber_tlv_tag_t asn_DEF_VehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lights */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lightBar */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* wipers */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* brakeStatus */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* brakePressure */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roadFriction */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sunData */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* rainData */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* airTemp */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* airPres */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* steering */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* accelSets */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* object */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* fullPos */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* throttlePos */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* speedHeadC */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* speedC */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* vehicleData */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* vehicleIdent */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* j1939data */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* weatherReport */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 } /* gnssStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleStatus_specs_1 = { + sizeof(struct VehicleStatus), + offsetof(struct VehicleStatus, _asn_ctx), + asn_MAP_VehicleStatus_tag2el_1, + 22, /* Count of tags in the map */ + asn_MAP_VehicleStatus_oms_1, /* Optional members */ + 22, 0, /* Root/Additions */ + 22, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleStatus = { + "VehicleStatus", + "VehicleStatus", + &asn_OP_SEQUENCE, + asn_DEF_VehicleStatus_tags_1, + sizeof(asn_DEF_VehicleStatus_tags_1) + /sizeof(asn_DEF_VehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_VehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleStatus_tags_1) + /sizeof(asn_DEF_VehicleStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_VehicleStatus_1, + 22, /* Elements count */ + &asn_SPC_VehicleStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleStatusDeviceTypeTag.c b/src/tmx/Asn_J2735/src/2020/VehicleStatusDeviceTypeTag.c new file mode 100644 index 000000000..04d278c8c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleStatusDeviceTypeTag.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleStatusDeviceTypeTag.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleStatusDeviceTypeTag_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleStatusDeviceTypeTag_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 28 } /* (0..28,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_VehicleStatusDeviceTypeTag_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 6, "lights" }, + { 2, 6, "wipers" }, + { 3, 6, "brakes" }, + { 4, 4, "stab" }, + { 5, 4, "trac" }, + { 6, 3, "abs" }, + { 7, 4, "sunS" }, + { 8, 5, "rainS" }, + { 9, 7, "airTemp" }, + { 10, 8, "steering" }, + { 11, 14, "vertAccelThres" }, + { 12, 9, "vertAccel" }, + { 13, 12, "hozAccelLong" }, + { 14, 11, "hozAccelLat" }, + { 15, 11, "hozAccelCon" }, + { 16, 9, "accel4way" }, + { 17, 13, "confidenceSet" }, + { 18, 6, "obDist" }, + { 19, 8, "obDirect" }, + { 20, 3, "yaw" }, + { 21, 10, "yawRateCon" }, + { 22, 8, "dateTime" }, + { 23, 7, "fullPos" }, + { 24, 10, "position2D" }, + { 25, 10, "position3D" }, + { 26, 7, "vehicle" }, + { 27, 10, "speedHeadC" }, + { 28, 6, "speedC" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_VehicleStatusDeviceTypeTag_enum2value_1[] = { + 6, /* abs(6) */ + 16, /* accel4way(16) */ + 9, /* airTemp(9) */ + 3, /* brakes(3) */ + 17, /* confidenceSet(17) */ + 22, /* dateTime(22) */ + 23, /* fullPos(23) */ + 15, /* hozAccelCon(15) */ + 14, /* hozAccelLat(14) */ + 13, /* hozAccelLong(13) */ + 1, /* lights(1) */ + 19, /* obDirect(19) */ + 18, /* obDist(18) */ + 24, /* position2D(24) */ + 25, /* position3D(25) */ + 8, /* rainS(8) */ + 28, /* speedC(28) */ + 27, /* speedHeadC(27) */ + 4, /* stab(4) */ + 10, /* steering(10) */ + 7, /* sunS(7) */ + 5, /* trac(5) */ + 0, /* unknown(0) */ + 26, /* vehicle(26) */ + 12, /* vertAccel(12) */ + 11, /* vertAccelThres(11) */ + 2, /* wipers(2) */ + 20, /* yaw(20) */ + 21 /* yawRateCon(21) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleStatusDeviceTypeTag_specs_1 = { + asn_MAP_VehicleStatusDeviceTypeTag_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleStatusDeviceTypeTag_enum2value_1, /* N => "tag"; sorted by N */ + 29, /* Number of elements in the maps */ + 30, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleStatusDeviceTypeTag_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleStatusDeviceTypeTag = { + "VehicleStatusDeviceTypeTag", + "VehicleStatusDeviceTypeTag", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleStatusDeviceTypeTag_tags_1, + sizeof(asn_DEF_VehicleStatusDeviceTypeTag_tags_1) + /sizeof(asn_DEF_VehicleStatusDeviceTypeTag_tags_1[0]), /* 1 */ + asn_DEF_VehicleStatusDeviceTypeTag_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleStatusDeviceTypeTag_tags_1) + /sizeof(asn_DEF_VehicleStatusDeviceTypeTag_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleStatusDeviceTypeTag_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleStatusDeviceTypeTag_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleStatusDeviceTypeTag_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleStatusRequest.c b/src/tmx/Asn_J2735/src/2020/VehicleStatusRequest.c new file mode 100644 index 000000000..e58bd0630 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleStatusRequest.c @@ -0,0 +1,251 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleStatusRequest.h" + +static int +memb_subType_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1L && value <= 15L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_sendOnLessThenValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_sendOnMoreThenValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_subType_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..15) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_subType_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_sendOnLessThenValue_constr_4 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_sendOnLessThenValue_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_sendOnMoreThenValue_constr_5 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_sendOnMoreThenValue_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_VehicleStatusRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleStatusRequest, dataType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VehicleStatusDeviceTypeTag, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dataType" + }, + { ATF_POINTER, 4, offsetof(struct VehicleStatusRequest, subType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_subType_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_subType_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_subType_constraint_1 + }, + 0, 0, /* No default value */ + "subType" + }, + { ATF_POINTER, 3, offsetof(struct VehicleStatusRequest, sendOnLessThenValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_sendOnLessThenValue_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_sendOnLessThenValue_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_sendOnLessThenValue_constraint_1 + }, + 0, 0, /* No default value */ + "sendOnLessThenValue" + }, + { ATF_POINTER, 2, offsetof(struct VehicleStatusRequest, sendOnMoreThenValue), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_sendOnMoreThenValue_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_sendOnMoreThenValue_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + memb_sendOnMoreThenValue_constraint_1 + }, + 0, 0, /* No default value */ + "sendOnMoreThenValue" + }, + { ATF_POINTER, 1, offsetof(struct VehicleStatusRequest, sendAll), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sendAll" + }, +}; +static const int asn_MAP_VehicleStatusRequest_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_VehicleStatusRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleStatusRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dataType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sendOnLessThenValue */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sendOnMoreThenValue */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* sendAll */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleStatusRequest_specs_1 = { + sizeof(struct VehicleStatusRequest), + offsetof(struct VehicleStatusRequest, _asn_ctx), + asn_MAP_VehicleStatusRequest_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_VehicleStatusRequest_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleStatusRequest = { + "VehicleStatusRequest", + "VehicleStatusRequest", + &asn_OP_SEQUENCE, + asn_DEF_VehicleStatusRequest_tags_1, + sizeof(asn_DEF_VehicleStatusRequest_tags_1) + /sizeof(asn_DEF_VehicleStatusRequest_tags_1[0]), /* 1 */ + asn_DEF_VehicleStatusRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleStatusRequest_tags_1) + /sizeof(asn_DEF_VehicleStatusRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_VehicleStatusRequest_1, + 5, /* Elements count */ + &asn_SPC_VehicleStatusRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleStatusRequestList.c b/src/tmx/Asn_J2735/src/2020/VehicleStatusRequestList.c new file mode 100644 index 000000000..b2c10f835 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleStatusRequestList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeDataManagement" + * found in "J2735-ProbeDataManagement.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleStatusRequestList.h" + +#include "VehicleStatusRequest.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleStatusRequestList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleStatusRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_VehicleStatusRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_VehicleStatusRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleStatusRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_VehicleStatusRequestList_specs_1 = { + sizeof(struct VehicleStatusRequestList), + offsetof(struct VehicleStatusRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleStatusRequestList = { + "VehicleStatusRequestList", + "VehicleStatusRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_VehicleStatusRequestList_tags_1, + sizeof(asn_DEF_VehicleStatusRequestList_tags_1) + /sizeof(asn_DEF_VehicleStatusRequestList_tags_1[0]), /* 1 */ + asn_DEF_VehicleStatusRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleStatusRequestList_tags_1) + /sizeof(asn_DEF_VehicleStatusRequestList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleStatusRequestList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleStatusRequestList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_VehicleStatusRequestList_1, + 1, /* Single element */ + &asn_SPC_VehicleStatusRequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleToLanePosition.c b/src/tmx/Asn_J2735/src/2020/VehicleToLanePosition.c new file mode 100644 index 000000000..592275baf --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleToLanePosition.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleToLanePosition.h" + +asn_TYPE_member_t asn_MBR_VehicleToLanePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VehicleToLanePosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_StationID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct VehicleToLanePosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneID" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleToLanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VehicleToLanePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* laneID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_VehicleToLanePosition_specs_1 = { + sizeof(struct VehicleToLanePosition), + offsetof(struct VehicleToLanePosition, _asn_ctx), + asn_MAP_VehicleToLanePosition_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleToLanePosition = { + "VehicleToLanePosition", + "VehicleToLanePosition", + &asn_OP_SEQUENCE, + asn_DEF_VehicleToLanePosition_tags_1, + sizeof(asn_DEF_VehicleToLanePosition_tags_1) + /sizeof(asn_DEF_VehicleToLanePosition_tags_1[0]), /* 1 */ + asn_DEF_VehicleToLanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleToLanePosition_tags_1) + /sizeof(asn_DEF_VehicleToLanePosition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_VehicleToLanePosition_1, + 2, /* Elements count */ + &asn_SPC_VehicleToLanePosition_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleToLanePositionList.c b/src/tmx/Asn_J2735/src/2020/VehicleToLanePositionList.c new file mode 100644 index 000000000..36d77b44d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleToLanePositionList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "J2735-AddGrpC.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleToLanePositionList.h" + +#include "VehicleToLanePosition.h" +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleToLanePositionList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleToLanePositionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_VehicleToLanePositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_VehicleToLanePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_VehicleToLanePositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_VehicleToLanePositionList_specs_1 = { + sizeof(struct VehicleToLanePositionList), + offsetof(struct VehicleToLanePositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_VehicleToLanePositionList = { + "VehicleToLanePositionList", + "VehicleToLanePositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_VehicleToLanePositionList_tags_1, + sizeof(asn_DEF_VehicleToLanePositionList_tags_1) + /sizeof(asn_DEF_VehicleToLanePositionList_tags_1[0]), /* 1 */ + asn_DEF_VehicleToLanePositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleToLanePositionList_tags_1) + /sizeof(asn_DEF_VehicleToLanePositionList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleToLanePositionList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleToLanePositionList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_VehicleToLanePositionList_1, + 1, /* Single element */ + &asn_SPC_VehicleToLanePositionList_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleType.c b/src/tmx/Asn_J2735/src/2020/VehicleType.c new file mode 100644 index 000000000..a355e119a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleType.c @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_VehicleType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 7, "unknown" }, + { 2, 7, "special" }, + { 3, 4, "moto" }, + { 4, 3, "car" }, + { 5, 8, "carOther" }, + { 6, 3, "bus" }, + { 7, 8, "axleCnt2" }, + { 8, 8, "axleCnt3" }, + { 9, 8, "axleCnt4" }, + { 10, 15, "axleCnt4Trailer" }, + { 11, 15, "axleCnt5Trailer" }, + { 12, 15, "axleCnt6Trailer" }, + { 13, 20, "axleCnt5MultiTrailer" }, + { 14, 20, "axleCnt6MultiTrailer" }, + { 15, 20, "axleCnt7MultiTrailer" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_VehicleType_enum2value_1[] = { + 7, /* axleCnt2(7) */ + 8, /* axleCnt3(8) */ + 9, /* axleCnt4(9) */ + 10, /* axleCnt4Trailer(10) */ + 13, /* axleCnt5MultiTrailer(13) */ + 11, /* axleCnt5Trailer(11) */ + 14, /* axleCnt6MultiTrailer(14) */ + 12, /* axleCnt6Trailer(12) */ + 15, /* axleCnt7MultiTrailer(15) */ + 6, /* bus(6) */ + 4, /* car(4) */ + 5, /* carOther(5) */ + 3, /* moto(3) */ + 0, /* none(0) */ + 2, /* special(2) */ + 1 /* unknown(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_VehicleType_specs_1 = { + asn_MAP_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_VehicleType_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 17, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_VehicleType_tags_1, + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleType_tags_1) + /sizeof(asn_DEF_VehicleType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VehicleWidth.c b/src/tmx/Asn_J2735/src/2020/VehicleWidth.c new file mode 100644 index 000000000..0d5a2b427 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VehicleWidth.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VehicleWidth.h" + +int +VehicleWidth_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 1023L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_VehicleWidth_tags_1, + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_VehicleWidth_tags_1) + /sizeof(asn_DEF_VehicleWidth_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VehicleWidth_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VehicleWidth_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VehicleWidth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Velocity.c b/src/tmx/Asn_J2735/src/2020/Velocity.c new file mode 100644 index 000000000..b7d35f73d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Velocity.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Velocity.h" + +int +Velocity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 8191L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Velocity_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..8191) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Velocity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..8191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_Velocity_tags_1, + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + asn_DEF_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_Velocity_tags_1) + /sizeof(asn_DEF_Velocity_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Velocity_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Velocity_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Velocity_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VertOffset-B07.c b/src/tmx/Asn_J2735/src/2020/VertOffset-B07.c new file mode 100644 index 000000000..e851a8c09 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VertOffset-B07.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VertOffset-B07.h" + +int +VertOffset_B07_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -64L && value <= 63L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VertOffset_B07_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-64..63) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VertOffset_B07_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -64, 63 } /* (-64..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VertOffset_B07_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VertOffset_B07 = { + "VertOffset-B07", + "VertOffset-B07", + &asn_OP_NativeInteger, + asn_DEF_VertOffset_B07_tags_1, + sizeof(asn_DEF_VertOffset_B07_tags_1) + /sizeof(asn_DEF_VertOffset_B07_tags_1[0]), /* 1 */ + asn_DEF_VertOffset_B07_tags_1, /* Same as above */ + sizeof(asn_DEF_VertOffset_B07_tags_1) + /sizeof(asn_DEF_VertOffset_B07_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VertOffset_B07_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VertOffset_B07_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VertOffset_B07_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VertOffset-B08.c b/src/tmx/Asn_J2735/src/2020/VertOffset-B08.c new file mode 100644 index 000000000..19863bbbb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VertOffset-B08.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VertOffset-B08.h" + +int +VertOffset_B08_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -128L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VertOffset_B08_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-128..127) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VertOffset_B08_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VertOffset_B08_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VertOffset_B08 = { + "VertOffset-B08", + "VertOffset-B08", + &asn_OP_NativeInteger, + asn_DEF_VertOffset_B08_tags_1, + sizeof(asn_DEF_VertOffset_B08_tags_1) + /sizeof(asn_DEF_VertOffset_B08_tags_1[0]), /* 1 */ + asn_DEF_VertOffset_B08_tags_1, /* Same as above */ + sizeof(asn_DEF_VertOffset_B08_tags_1) + /sizeof(asn_DEF_VertOffset_B08_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VertOffset_B08_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VertOffset_B08_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VertOffset_B08_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VertOffset-B09.c b/src/tmx/Asn_J2735/src/2020/VertOffset-B09.c new file mode 100644 index 000000000..cae6157c1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VertOffset-B09.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VertOffset-B09.h" + +int +VertOffset_B09_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -256L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VertOffset_B09_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-256..255) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VertOffset_B09_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -256, 255 } /* (-256..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VertOffset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VertOffset_B09 = { + "VertOffset-B09", + "VertOffset-B09", + &asn_OP_NativeInteger, + asn_DEF_VertOffset_B09_tags_1, + sizeof(asn_DEF_VertOffset_B09_tags_1) + /sizeof(asn_DEF_VertOffset_B09_tags_1[0]), /* 1 */ + asn_DEF_VertOffset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_VertOffset_B09_tags_1) + /sizeof(asn_DEF_VertOffset_B09_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VertOffset_B09_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VertOffset_B09_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VertOffset_B09_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VertOffset-B10.c b/src/tmx/Asn_J2735/src/2020/VertOffset-B10.c new file mode 100644 index 000000000..65606511b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VertOffset-B10.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VertOffset-B10.h" + +int +VertOffset_B10_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -512L && value <= 511L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VertOffset_B10_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-512..511) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VertOffset_B10_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -512, 511 } /* (-512..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VertOffset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VertOffset_B10 = { + "VertOffset-B10", + "VertOffset-B10", + &asn_OP_NativeInteger, + asn_DEF_VertOffset_B10_tags_1, + sizeof(asn_DEF_VertOffset_B10_tags_1) + /sizeof(asn_DEF_VertOffset_B10_tags_1[0]), /* 1 */ + asn_DEF_VertOffset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_VertOffset_B10_tags_1) + /sizeof(asn_DEF_VertOffset_B10_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VertOffset_B10_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VertOffset_B10_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VertOffset_B10_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VertOffset-B11.c b/src/tmx/Asn_J2735/src/2020/VertOffset-B11.c new file mode 100644 index 000000000..87702545b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VertOffset-B11.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VertOffset-B11.h" + +int +VertOffset_B11_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -1024L && value <= 1023L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VertOffset_B11_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1024..1023) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VertOffset_B11_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VertOffset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VertOffset_B11 = { + "VertOffset-B11", + "VertOffset-B11", + &asn_OP_NativeInteger, + asn_DEF_VertOffset_B11_tags_1, + sizeof(asn_DEF_VertOffset_B11_tags_1) + /sizeof(asn_DEF_VertOffset_B11_tags_1[0]), /* 1 */ + asn_DEF_VertOffset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_VertOffset_B11_tags_1) + /sizeof(asn_DEF_VertOffset_B11_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VertOffset_B11_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VertOffset_B11_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VertOffset_B11_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VertOffset-B12.c b/src/tmx/Asn_J2735/src/2020/VertOffset-B12.c new file mode 100644 index 000000000..e6a132d23 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VertOffset-B12.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VertOffset-B12.h" + +int +VertOffset_B12_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -2048L && value <= 2047L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VertOffset_B12_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-2048..2047) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VertOffset_B12_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VertOffset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VertOffset_B12 = { + "VertOffset-B12", + "VertOffset-B12", + &asn_OP_NativeInteger, + asn_DEF_VertOffset_B12_tags_1, + sizeof(asn_DEF_VertOffset_B12_tags_1) + /sizeof(asn_DEF_VertOffset_B12_tags_1[0]), /* 1 */ + asn_DEF_VertOffset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_VertOffset_B12_tags_1) + /sizeof(asn_DEF_VertOffset_B12_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VertOffset_B12_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VertOffset_B12_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VertOffset_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VerticalAcceleration.c b/src/tmx/Asn_J2735/src/2020/VerticalAcceleration.c new file mode 100644 index 000000000..b414f4afe --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VerticalAcceleration.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VerticalAcceleration.h" + +int +VerticalAcceleration_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -127L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VerticalAcceleration_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-127..127) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VerticalAcceleration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -127, 127 } /* (-127..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_NativeInteger, + asn_DEF_VerticalAcceleration_tags_1, + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_VerticalAcceleration_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VerticalAcceleration_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VerticalAcceleration_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VerticalAcceleration_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VerticalAccelerationThreshold.c b/src/tmx/Asn_J2735/src/2020/VerticalAccelerationThreshold.c new file mode 100644 index 000000000..1f4dd6de8 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VerticalAccelerationThreshold.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VerticalAccelerationThreshold.h" + +int +VerticalAccelerationThreshold_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 5UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VerticalAccelerationThreshold_constr_1 CC_NOTUSED = { + { 0, 0 }, + 5 /* (SIZE(5..5)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_VerticalAccelerationThreshold_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 5, 5 } /* (SIZE(5..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_VerticalAccelerationThreshold_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_VerticalAccelerationThreshold = { + "VerticalAccelerationThreshold", + "VerticalAccelerationThreshold", + &asn_OP_BIT_STRING, + asn_DEF_VerticalAccelerationThreshold_tags_1, + sizeof(asn_DEF_VerticalAccelerationThreshold_tags_1) + /sizeof(asn_DEF_VerticalAccelerationThreshold_tags_1[0]), /* 1 */ + asn_DEF_VerticalAccelerationThreshold_tags_1, /* Same as above */ + sizeof(asn_DEF_VerticalAccelerationThreshold_tags_1) + /sizeof(asn_DEF_VerticalAccelerationThreshold_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VerticalAccelerationThreshold_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VerticalAccelerationThreshold_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + VerticalAccelerationThreshold_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/VerticalOffset.c b/src/tmx/Asn_J2735/src/2020/VerticalOffset.c new file mode 100644 index 000000000..38cc90ad6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/VerticalOffset.c @@ -0,0 +1,201 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "VerticalOffset.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_VerticalOffset_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_VerticalOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_VerticalOffset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VerticalOffset, choice.offset1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VertOffset_B07, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offset1" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalOffset, choice.offset2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VertOffset_B08, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offset2" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalOffset, choice.offset3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VertOffset_B09, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offset3" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalOffset, choice.offset4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VertOffset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offset4" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalOffset, choice.offset5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VertOffset_B11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offset5" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalOffset, choice.offset6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VertOffset_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offset6" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalOffset, choice.elevation), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Common_Elevation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_NOFLAGS, 0, offsetof(struct VerticalOffset, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reg_VerticalOffset, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_VerticalOffset_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* offset1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offset2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* offset3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* offset4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* offset5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* offset6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +static asn_CHOICE_specifics_t asn_SPC_VerticalOffset_specs_1 = { + sizeof(struct VerticalOffset), + offsetof(struct VerticalOffset, _asn_ctx), + offsetof(struct VerticalOffset, present), + sizeof(((struct VerticalOffset *)0)->present), + asn_MAP_VerticalOffset_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_VerticalOffset = { + "VerticalOffset", + "VerticalOffset", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_VerticalOffset_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_VerticalOffset_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_VerticalOffset_1, + 8, /* Elements count */ + &asn_SPC_VerticalOffset_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/WaitOnStopline.c b/src/tmx/Asn_J2735/src/2020/WaitOnStopline.c new file mode 100644 index 000000000..fba8670f9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/WaitOnStopline.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_WaitOnStopline_tags_1, + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_WaitOnStopline_tags_1) + /sizeof(asn_DEF_WaitOnStopline_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + BOOLEAN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/WeatherProbe.c b/src/tmx/Asn_J2735/src/2020/WeatherProbe.c new file mode 100644 index 000000000..910c3a3ee --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/WeatherProbe.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "WeatherProbe.h" + +#include "WiperSet.h" +asn_TYPE_member_t asn_MBR_WeatherProbe_1[] = { + { ATF_POINTER, 3, offsetof(struct WeatherProbe, airTemp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AmbientAirTemperature, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "airTemp" + }, + { ATF_POINTER, 2, offsetof(struct WeatherProbe, airPressure), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AmbientAirPressure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "airPressure" + }, + { ATF_POINTER, 1, offsetof(struct WeatherProbe, rainRates), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WiperSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rainRates" + }, +}; +static const int asn_MAP_WeatherProbe_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_WeatherProbe_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_WeatherProbe_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* airTemp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* airPressure */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* rainRates */ +}; +asn_SEQUENCE_specifics_t asn_SPC_WeatherProbe_specs_1 = { + sizeof(struct WeatherProbe), + offsetof(struct WeatherProbe, _asn_ctx), + asn_MAP_WeatherProbe_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_WeatherProbe_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_WeatherProbe = { + "WeatherProbe", + "WeatherProbe", + &asn_OP_SEQUENCE, + asn_DEF_WeatherProbe_tags_1, + sizeof(asn_DEF_WeatherProbe_tags_1) + /sizeof(asn_DEF_WeatherProbe_tags_1[0]), /* 1 */ + asn_DEF_WeatherProbe_tags_1, /* Same as above */ + sizeof(asn_DEF_WeatherProbe_tags_1) + /sizeof(asn_DEF_WeatherProbe_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_WeatherProbe_1, + 3, /* Elements count */ + &asn_SPC_WeatherProbe_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/WeatherReport.c b/src/tmx/Asn_J2735/src/2020/WeatherReport.c new file mode 100644 index 000000000..0a4410b22 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/WeatherReport.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "BasicSafetyMessage" + * found in "J2735-BasicSafetyMessage.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "WeatherReport.h" + +asn_TYPE_member_t asn_MBR_WeatherReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct WeatherReport, isRaining), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EssPrecipYesNo, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "isRaining" + }, + { ATF_POINTER, 5, offsetof(struct WeatherReport, rainRate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EssPrecipRate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rainRate" + }, + { ATF_POINTER, 4, offsetof(struct WeatherReport, precipSituation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EssPrecipSituation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "precipSituation" + }, + { ATF_POINTER, 3, offsetof(struct WeatherReport, solarRadiation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EssSolarRadiation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "solarRadiation" + }, + { ATF_POINTER, 2, offsetof(struct WeatherReport, friction), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EssMobileFriction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "friction" + }, + { ATF_POINTER, 1, offsetof(struct WeatherReport, roadFriction), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CoefficientOfFriction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadFriction" + }, +}; +static const int asn_MAP_WeatherReport_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_WeatherReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_WeatherReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* isRaining */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rainRate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* precipSituation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* solarRadiation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* friction */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* roadFriction */ +}; +asn_SEQUENCE_specifics_t asn_SPC_WeatherReport_specs_1 = { + sizeof(struct WeatherReport), + offsetof(struct WeatherReport, _asn_ctx), + asn_MAP_WeatherReport_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_WeatherReport_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_WeatherReport = { + "WeatherReport", + "WeatherReport", + &asn_OP_SEQUENCE, + asn_DEF_WeatherReport_tags_1, + sizeof(asn_DEF_WeatherReport_tags_1) + /sizeof(asn_DEF_WeatherReport_tags_1[0]), /* 1 */ + asn_DEF_WeatherReport_tags_1, /* Same as above */ + sizeof(asn_DEF_WeatherReport_tags_1) + /sizeof(asn_DEF_WeatherReport_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_WeatherReport_1, + 6, /* Elements count */ + &asn_SPC_WeatherReport_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/WheelEndElectFault.c b/src/tmx/Asn_J2735/src/2020/WheelEndElectFault.c new file mode 100644 index 000000000..a30894ab9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/WheelEndElectFault.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "WheelEndElectFault.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_WheelEndElectFault_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_WheelEndElectFault_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_WheelEndElectFault_value2enum_1[] = { + { 0, 4, "isOk" }, + { 1, 12, "isNotDefined" }, + { 2, 7, "isError" }, + { 3, 14, "isNotSupported" } +}; +static const unsigned int asn_MAP_WheelEndElectFault_enum2value_1[] = { + 2, /* isError(2) */ + 1, /* isNotDefined(1) */ + 3, /* isNotSupported(3) */ + 0 /* isOk(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_WheelEndElectFault_specs_1 = { + asn_MAP_WheelEndElectFault_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_WheelEndElectFault_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_WheelEndElectFault_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelEndElectFault = { + "WheelEndElectFault", + "WheelEndElectFault", + &asn_OP_NativeEnumerated, + asn_DEF_WheelEndElectFault_tags_1, + sizeof(asn_DEF_WheelEndElectFault_tags_1) + /sizeof(asn_DEF_WheelEndElectFault_tags_1[0]), /* 1 */ + asn_DEF_WheelEndElectFault_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelEndElectFault_tags_1) + /sizeof(asn_DEF_WheelEndElectFault_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_WheelEndElectFault_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_WheelEndElectFault_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_WheelEndElectFault_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/WheelSensorStatus.c b/src/tmx/Asn_J2735/src/2020/WheelSensorStatus.c new file mode 100644 index 000000000..d634c0714 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/WheelSensorStatus.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "WheelSensorStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_WheelSensorStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_WheelSensorStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_WheelSensorStatus_value2enum_1[] = { + { 0, 3, "off" }, + { 1, 2, "on" }, + { 2, 10, "notDefined" }, + { 3, 12, "notSupported" } +}; +static const unsigned int asn_MAP_WheelSensorStatus_enum2value_1[] = { + 2, /* notDefined(2) */ + 3, /* notSupported(3) */ + 0, /* off(0) */ + 1 /* on(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_WheelSensorStatus_specs_1 = { + asn_MAP_WheelSensorStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_WheelSensorStatus_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_WheelSensorStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WheelSensorStatus = { + "WheelSensorStatus", + "WheelSensorStatus", + &asn_OP_NativeEnumerated, + asn_DEF_WheelSensorStatus_tags_1, + sizeof(asn_DEF_WheelSensorStatus_tags_1) + /sizeof(asn_DEF_WheelSensorStatus_tags_1[0]), /* 1 */ + asn_DEF_WheelSensorStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_WheelSensorStatus_tags_1) + /sizeof(asn_DEF_WheelSensorStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_WheelSensorStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_WheelSensorStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_WheelSensorStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/WiperRate.c b/src/tmx/Asn_J2735/src/2020/WiperRate.c new file mode 100644 index 000000000..bc82976fb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/WiperRate.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "WiperRate.h" + +int +WiperRate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_WiperRate_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_WiperRate_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_WiperRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WiperRate = { + "WiperRate", + "WiperRate", + &asn_OP_NativeInteger, + asn_DEF_WiperRate_tags_1, + sizeof(asn_DEF_WiperRate_tags_1) + /sizeof(asn_DEF_WiperRate_tags_1[0]), /* 1 */ + asn_DEF_WiperRate_tags_1, /* Same as above */ + sizeof(asn_DEF_WiperRate_tags_1) + /sizeof(asn_DEF_WiperRate_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_WiperRate_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_WiperRate_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + WiperRate_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/WiperSet.c b/src/tmx/Asn_J2735/src/2020/WiperSet.c new file mode 100644 index 000000000..7692e2b9d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/WiperSet.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "WiperSet.h" + +asn_TYPE_member_t asn_MBR_WiperSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct WiperSet, statusFront), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WiperStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "statusFront" + }, + { ATF_NOFLAGS, 0, offsetof(struct WiperSet, rateFront), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WiperRate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rateFront" + }, + { ATF_POINTER, 2, offsetof(struct WiperSet, statusRear), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WiperStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "statusRear" + }, + { ATF_POINTER, 1, offsetof(struct WiperSet, rateRear), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_WiperRate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rateRear" + }, +}; +static const int asn_MAP_WiperSet_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_WiperSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_WiperSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* statusFront */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rateFront */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* statusRear */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* rateRear */ +}; +asn_SEQUENCE_specifics_t asn_SPC_WiperSet_specs_1 = { + sizeof(struct WiperSet), + offsetof(struct WiperSet, _asn_ctx), + asn_MAP_WiperSet_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_WiperSet_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_WiperSet = { + "WiperSet", + "WiperSet", + &asn_OP_SEQUENCE, + asn_DEF_WiperSet_tags_1, + sizeof(asn_DEF_WiperSet_tags_1) + /sizeof(asn_DEF_WiperSet_tags_1[0]), /* 1 */ + asn_DEF_WiperSet_tags_1, /* Same as above */ + sizeof(asn_DEF_WiperSet_tags_1) + /sizeof(asn_DEF_WiperSet_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_WiperSet_1, + 4, /* Elements count */ + &asn_SPC_WiperSet_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/WiperStatus.c b/src/tmx/Asn_J2735/src/2020/WiperStatus.c new file mode 100644 index 000000000..9f0577217 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/WiperStatus.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "WiperStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_WiperStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_WiperStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_WiperStatus_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 3, "off" }, + { 2, 12, "intermittent" }, + { 3, 3, "low" }, + { 4, 4, "high" }, + { 5, 11, "washerInUse" }, + { 6, 16, "automaticPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_WiperStatus_enum2value_1[] = { + 6, /* automaticPresent(6) */ + 4, /* high(4) */ + 2, /* intermittent(2) */ + 3, /* low(3) */ + 1, /* off(1) */ + 0, /* unavailable(0) */ + 5 /* washerInUse(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_WiperStatus_specs_1 = { + asn_MAP_WiperStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_WiperStatus_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_WiperStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_WiperStatus = { + "WiperStatus", + "WiperStatus", + &asn_OP_NativeEnumerated, + asn_DEF_WiperStatus_tags_1, + sizeof(asn_DEF_WiperStatus_tags_1) + /sizeof(asn_DEF_WiperStatus_tags_1[0]), /* 1 */ + asn_DEF_WiperStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_WiperStatus_tags_1) + /sizeof(asn_DEF_WiperStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_WiperStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_WiperStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_WiperStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/WorkZone.c b/src/tmx/Asn_J2735/src/2020/WorkZone.c new file mode 100644 index 000000000..48d5b00dd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/WorkZone.c @@ -0,0 +1,215 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "WorkZone.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_item_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_item_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_WorkZone_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_WorkZone_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_item_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct WorkZone__Member__item, choice.itis), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIScodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "itis" + }, + { ATF_NOFLAGS, 0, offsetof(struct WorkZone__Member__item, choice.text), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ITIStextPhrase, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "text" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_item_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* itis */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* text */ +}; +static asn_CHOICE_specifics_t asn_SPC_item_specs_3 = { + sizeof(struct WorkZone__Member__item), + offsetof(struct WorkZone__Member__item, _asn_ctx), + offsetof(struct WorkZone__Member__item, present), + sizeof(((struct WorkZone__Member__item *)0)->present), + asn_MAP_item_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_item_3 = { + "item", + "item", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_item_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_item_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_item_3, + 2, /* Elements count */ + &asn_SPC_item_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_Member_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct WorkZone__Member, item), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_item_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "item" + }, +}; +static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* item */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { + sizeof(struct WorkZone__Member), + offsetof(struct WorkZone__Member, _asn_ctx), + asn_MAP_Member_tag2el_2, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Member_2 = { + "SEQUENCE", + "SEQUENCE", + &asn_OP_SEQUENCE, + asn_DEF_Member_tags_2, + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + asn_DEF_Member_tags_2, /* Same as above */ + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Member_2, + 1, /* Elements count */ + &asn_SPC_Member_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_WorkZone_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Member_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_WorkZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_WorkZone_specs_1 = { + sizeof(struct WorkZone), + offsetof(struct WorkZone, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_WorkZone = { + "WorkZone", + "WorkZone", + &asn_OP_SEQUENCE_OF, + asn_DEF_WorkZone_tags_1, + sizeof(asn_DEF_WorkZone_tags_1) + /sizeof(asn_DEF_WorkZone_tags_1[0]), /* 1 */ + asn_DEF_WorkZone_tags_1, /* Same as above */ + sizeof(asn_DEF_WorkZone_tags_1) + /sizeof(asn_DEF_WorkZone_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_WorkZone_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_WorkZone_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_WorkZone_1, + 1, /* Single element */ + &asn_SPC_WorkZone_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/YawRate.c b/src/tmx/Asn_J2735/src/2020/YawRate.c new file mode 100644 index 000000000..8d422caa9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/YawRate.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "Common" + * found in "J2735-Common.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "YawRate.h" + +int +YawRate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -32767L && value <= 32767L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_YawRate_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32767..32767) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_YawRate_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..32767) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRate = { + "YawRate", + "YawRate", + &asn_OP_NativeInteger, + asn_DEF_YawRate_tags_1, + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + asn_DEF_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRate_tags_1) + /sizeof(asn_DEF_YawRate_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_YawRate_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_YawRate_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + YawRate_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/YawRateConfidence.c b/src/tmx/Asn_J2735/src/2020/YawRateConfidence.c new file mode 100644 index 000000000..4cc4b7faf --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/YawRateConfidence.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ProbeVehicleData" + * found in "J2735-ProbeVehicleData.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_YawRateConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "degSec-100-00" }, + { 2, 13, "degSec-010-00" }, + { 3, 13, "degSec-005-00" }, + { 4, 13, "degSec-001-00" }, + { 5, 13, "degSec-000-10" }, + { 6, 13, "degSec-000-05" }, + { 7, 13, "degSec-000-01" } +}; +static const unsigned int asn_MAP_YawRateConfidence_enum2value_1[] = { + 7, /* degSec-000-01(7) */ + 6, /* degSec-000-05(6) */ + 5, /* degSec-000-10(5) */ + 4, /* degSec-001-00(4) */ + 3, /* degSec-005-00(3) */ + 2, /* degSec-010-00(2) */ + 1, /* degSec-100-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_YawRateConfidence_specs_1 = { + asn_MAP_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_YawRateConfidence_tags_1, + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_YawRateConfidence_tags_1) + /sizeof(asn_DEF_YawRateConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_YawRateConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_YawRateConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Year.c b/src/tmx/Asn_J2735/src/2020/Year.c new file mode 100644 index 000000000..62be6ee57 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Year.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpB" + * found in "J2735-AddGrpB.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Year.h" + +int +Year_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Year_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..65535) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Year_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (1..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Year_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Year = { + "Year", + "Year", + &asn_OP_NativeInteger, + asn_DEF_Year_tags_1, + sizeof(asn_DEF_Year_tags_1) + /sizeof(asn_DEF_Year_tags_1[0]), /* 1 */ + asn_DEF_Year_tags_1, /* Same as above */ + sizeof(asn_DEF_Year_tags_1) + /sizeof(asn_DEF_Year_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Year_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Year_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Year_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/ZoneLength.c b/src/tmx/Asn_J2735/src/2020/ZoneLength.c new file mode 100644 index 000000000..efc43190c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ZoneLength.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPAT" + * found in "J2735-SPAT.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "ZoneLength.h" + +int +ZoneLength_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 10000L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_ZoneLength_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ZoneLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_ZoneLength_tags_1, + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ZoneLength_tags_1) + /sizeof(asn_DEF_ZoneLength_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_ZoneLength_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_ZoneLength_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + ZoneLength_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/Zoom.c b/src/tmx/Asn_J2735/src/2020/Zoom.c new file mode 100644 index 000000000..963f37e7a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/Zoom.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "TravelerInformation" + * found in "J2735-TravelerInformation.asn" + * `asn1c -gen-UPER -fcompound-names -fincludes-quoted -fno-include-deps` + */ + +#include "Zoom.h" + +int +Zoom_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 15L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Zoom_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Zoom_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Zoom_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Zoom = { + "Zoom", + "Zoom", + &asn_OP_NativeInteger, + asn_DEF_Zoom_tags_1, + sizeof(asn_DEF_Zoom_tags_1) + /sizeof(asn_DEF_Zoom_tags_1[0]), /* 1 */ + asn_DEF_Zoom_tags_1, /* Same as above */ + sizeof(asn_DEF_Zoom_tags_1) + /sizeof(asn_DEF_Zoom_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Zoom_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Zoom_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + Zoom_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/tmx/Asn_J2735/src/2020/aper_decoder.c b/src/tmx/Asn_J2735/src/2020/aper_decoder.c new file mode 100644 index 000000000..0637b6a5a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/aper_decoder.c @@ -0,0 +1,91 @@ +#include +#include +#include + +asn_dec_rval_t +aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buffer, size_t size) { + asn_dec_rval_t rval; + + rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); + if(rval.consumed) { + /* + * We've always given 8-aligned data, + * so convert bits to integral bytes. + */ + rval.consumed += 7; + rval.consumed >>= 3; + } else if(rval.code == RC_OK) { + if(size) { + if(((const uint8_t *)buffer)[0] == 0) { + rval.consumed = 1; /* 1 byte */ + } else { + ASN_DEBUG("Expecting single zeroed byte"); + rval.code = RC_FAIL; + } + } else { + /* Must contain at least 8 bits. */ + rval.code = RC_WMORE; + } + } + + return rval; +} + +asn_dec_rval_t +aper_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, + size_t size, int skip_bits, int unused_bits) { + asn_codec_ctx_t s_codec_ctx; + asn_dec_rval_t rval; + asn_per_data_t pd; + + if(skip_bits < 0 || skip_bits > 7 + || unused_bits < 0 || unused_bits > 7 + || (unused_bits > 0 && !size)) + ASN__DECODE_FAILED; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* Fill in the position indicator */ + memset(&pd, 0, sizeof(pd)); + pd.buffer = (const uint8_t *)buffer; + pd.nboff = skip_bits; + pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ + if(pd.nboff > pd.nbits) + ASN__DECODE_FAILED; + + /* + * Invoke type-specific decoder. + */ + if(!td->op->aper_decoder) + ASN__DECODE_FAILED; /* PER is not compiled in */ + rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); + if(rval.code == RC_OK) { + /* Return the number of consumed bits */ + rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) + + pd.nboff - skip_bits; + ASN_DEBUG("PER decoding consumed %zu, counted %zu", + rval.consumed, pd.moved); + assert(rval.consumed == pd.moved); + } else { + /* PER codec is not a restartable */ + rval.consumed = 0; + } + return rval; +} diff --git a/src/tmx/Asn_J2735/src/2020/aper_encoder.c b/src/tmx/Asn_J2735/src/2020/aper_encoder.c new file mode 100644 index 000000000..d9b1c1df1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/aper_encoder.c @@ -0,0 +1,129 @@ +#include +#include +#include + +/* + * Argument type and callback necessary for aper_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +asn_enc_rval_t +aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg key; + + key.buffer = buffer; + key.left = buffer_size; + + if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); + + return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); +} + +ssize_t +aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void **buffer_r) { + asn_enc_rval_t er = {0,0,0}; + enc_dyn_arg key; + + memset(&key, 0, sizeof(key)); + + er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); + switch(er.encoded) { + case -1: + FREEMEM(key.buffer); + return -1; + case 0: + FREEMEM(key.buffer); + key.buffer = MALLOC(1); + if(key.buffer) { + *(char *)key.buffer = '\0'; + *buffer_r = key.buffer; + return 1; + } else { + return -1; + } + default: + *buffer_r = key.buffer; + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + return ((er.encoded + 7) >> 3); + } +} + +/* + * Internally useful functions. + */ + +/* Flush partially filled buffer */ +static int +_aper_encode_flush_outp(asn_per_outp_t *po) { + uint8_t *buf; + + if(po->nboff == 0 && po->buffer == po->tmpspace) + return 0; + + buf = po->buffer + (po->nboff >> 3); + /* Make sure we account for the last, partially filled */ + if(po->nboff & 0x07) { + buf[0] &= 0xff << (8 - (po->nboff & 0x07)); + buf++; + } + + if (po->output) { + return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); + } + return 0; +} + +asn_enc_rval_t +aper_encode(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { + asn_per_outp_t po; + asn_enc_rval_t er = {0,0,0}; + + /* + * Invoke type-specific encoder. + */ + if(!td || !td->op->aper_encoder) + ASN__ENCODE_FAILED; /* PER is not compiled in */ + + po.buffer = po.tmpspace; + po.nboff = 0; + po.nbits = 8 * sizeof(po.tmpspace); + po.output = cb ? cb : ignore_output; + po.op_key = app_key; + po.flushed_bytes = 0; + + er = td->op->aper_encoder(td, constraints, sptr, &po); + if(er.encoded != -1) { + size_t bits_to_flush; + + bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; + + /* Set number of bits encoded to a firm value */ + er.encoded = (po.flushed_bytes << 3) + bits_to_flush; + + if(_aper_encode_flush_outp(&po)) + ASN__ENCODE_FAILED; + } + + return er; +} diff --git a/src/tmx/Asn_J2735/src/2020/aper_opentype.c b/src/tmx/Asn_J2735/src/2020/aper_opentype.c new file mode 100644 index 000000000..cdd5999b2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/aper_opentype.c @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +static asn_dec_rval_t +aper_open_type_get_simple(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + ssize_t chunk_bytes; + int repeat; + uint8_t *buf = 0; + size_t bufLen = 0; + size_t bufSize = 0; + asn_per_data_t spd; + size_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s...", td->name); + + do { + chunk_bytes = aper_get_length(pd, -1, -1, -1, &repeat); + if(chunk_bytes < 0) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + if(bufLen + chunk_bytes > bufSize) { + void *ptr; + bufSize = chunk_bytes + (bufSize << 2); + ptr = REALLOC(buf, bufSize); + if(!ptr) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + buf = ptr; + } + if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + bufLen += chunk_bytes; + } while(repeat); + + ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, + (long)bufLen); + + memset(&spd, 0, sizeof(spd)); + spd.buffer = buf; + spd.nbits = bufLen << 3; + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); + ASN_DEBUG_INDENT_ADD(-4); + + if(rv.code == RC_OK) { + /* Check padding validity */ + padding = spd.nbits - spd.nboff; + if (((padding > 0 && padding < 8) || + /* X.691#10.1.3 */ + (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && + per_get_few_bits(&spd, padding) == 0) { + /* Everything is cool */ + FREEMEM(buf); + return rv; + } + FREEMEM(buf); + if(padding >= 8) { + ASN_DEBUG("Too large padding %d in open type", (int)padding); + ASN__DECODE_FAILED; + } else { + ASN_DEBUG("No padding"); + } + } else { + FREEMEM(buf); + /* rv.code could be RC_WMORE, nonsense in this context */ + rv.code = RC_FAIL; /* Noone would give us more */ + } + + return rv; +} + +int +aper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + void *buf; + void *bptr; + ssize_t size; + size_t toGo; + + ASN_DEBUG("Open type put %s ...", td->name); + + size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); + if(size <= 0) return -1; + + for(bptr = buf, toGo = size; toGo;) { + int need_eom = 0; + ssize_t maySave = aper_put_length(po, -1, -1, toGo, &need_eom); + if(maySave < 0) break; + if(per_put_many_bits(po, bptr, maySave * 8)) break; + bptr = (char *)bptr + maySave; + toGo -= maySave; + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) { + FREEMEM(buf); + return -1; + } + } + + FREEMEM(buf); + if(toGo) return -1; + + ASN_DEBUG("Open type put %s of length %zd + overhead (1byte?)", + td->name, size); + + return 0; +} + +asn_dec_rval_t +aper_open_type_get(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + + return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); +} + +int +aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { + asn_TYPE_descriptor_t s_td; + asn_dec_rval_t rv; + asn_TYPE_operation_t op_t; + + memset(&op_t, 0, sizeof(op_t)); + s_td.name = ""; + s_td.op = &op_t; + s_td.op->aper_decoder = uper_sot_suck; + + rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); + if(rv.code != RC_OK) + return -1; + else + return 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/aper_support.c b/src/tmx/Asn_J2735/src/2020/aper_support.c new file mode 100644 index 000000000..1f34c60d6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/aper_support.c @@ -0,0 +1,239 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +int32_t +aper_get_align(asn_per_data_t *pd) { + + if(pd->nboff & 0x7) { + ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); + return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); + } + return 0; +} + +ssize_t +aper_get_length(asn_per_data_t *pd, ssize_t lb, ssize_t ub, + int ebits, int *repeat) { + int constrained = (lb >= 0) && (ub >= 0); + ssize_t value; + + *repeat = 0; + + if (constrained && ub < 65536) { + int range = ub - lb + 1; + return aper_get_nsnnwn(pd, range); + } + + if (aper_get_align(pd) < 0) + return -1; + + if(ebits >= 0) return per_get_few_bits(pd, ebits); + + value = per_get_few_bits(pd, 8); + if(value < 0) return -1; + if((value & 128) == 0) /* #11.9.3.6 */ + return (value & 0x7F); + if((value & 64) == 0) { /* #11.9.3.7 */ + value = ((value & 63) << 8) | per_get_few_bits(pd, 8); + if(value < 0) return -1; + return value; + } + value &= 63; /* this is "m" from X.691, #11.9.3.8 */ + if(value < 1 || value > 4) + return -1; + *repeat = 1; + return (16384 * value); +} + +ssize_t +aper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%zd", length); + return length; + } else { + int repeat; + length = aper_get_length(pd, -1, -1, -1, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +ssize_t +aper_get_nsnnwn(asn_per_data_t *pd, int range) { + ssize_t value; + int bytes = 0; + + ASN_DEBUG("getting nsnnwn with range %d", range); + + if(range <= 255) { + int i; + + if (range < 0) return -1; + /* 1 -> 8 bits */ + for (i = 1; i <= 8; i++) { + int upper = 1 << i; + if (upper >= range) + break; + } + value = per_get_few_bits(pd, i); + return value; + } else if (range == 256){ + /* 1 byte */ + bytes = 1; + } else if (range <= 65536) { + /* 2 bytes */ + bytes = 2; + } else { + //return -1; + int length; + + /* handle indefinite range */ + length = per_get_few_bits(pd, 1); + if (length == 0) + return per_get_few_bits(pd, 6); + + if (aper_get_align(pd) < 0) + return -1; + + length = per_get_few_bits(pd, 8); + /* the length is not likely to be that big */ + if (length > 4) + return -1; + value = 0; + if (per_get_many_bits(pd, (uint8_t *)&value, 0, length * 8) < 0) + return -1; + return value; + } + if (aper_get_align(pd) < 0) + return -1; + value = per_get_few_bits(pd, 8 * bytes); + return value; +} + +int aper_put_align(asn_per_outp_t *po) { + + if(po->nboff & 0x7) { + ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); + if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) + return -1; + } + return 0; +} + +ssize_t +aper_put_length(asn_per_outp_t *po, ssize_t lb, ssize_t ub, size_t n, int *need_eom) { + int constrained = (lb >= 0) && (ub >= 0); + int dummy = 0; + if(!need_eom) need_eom = &dummy; + + *need_eom = 0; + + + ASN_DEBUG("APER put length %zu with range (%zd..%zd)", n, lb, ub); + + /* 11.9 X.691 Note 2 */ + if (constrained && ub < 65536) { + int range = ub - lb + 1; + return aper_put_nsnnwn(po, range, n) ? -1 : (ssize_t)n; + } + + if (aper_put_align(po) < 0) + return -1; + + if(n <= 127) { /* #11.9.3.6 */ + return per_put_few_bits(po, n, 8) + ? -1 : (ssize_t)n; + } + else if(n < 16384) /* #11.9.3.7 */ + return per_put_few_bits(po, n|0x8000, 16) + ? -1 : (ssize_t)n; + + *need_eom = 0 == (n & 16383); + n >>= 14; + if(n > 4) { + *need_eom = 0; + n = 4; + } + + return per_put_few_bits(po, 0xC0 | n, 8) + ? -1 : (ssize_t)(n << 14); +} + + +int +aper_put_nslength(asn_per_outp_t *po, size_t length) { + + if(length <= 64) { + /* #11.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length-1, 7) ? -1 : 0; + } else { + if(aper_put_length(po, -1, -1, length, NULL) != (ssize_t)length) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +int +aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { + int bytes; + + ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); + /* 10.5.7.1 X.691 */ + if(range < 0) { + int i; + for (i = 1; ; i++) { + int bits = 1 << (8 * i); + if (number <= bits) + break; + } + bytes = i; + assert(i <= 4); + } + if(range <= 255) { + int i; + for (i = 1; i <= 8; i++) { + int bits = 1 << i; + if (range <= bits) + break; + } + return per_put_few_bits(po, number, i); + } else if(range == 256) { + if (number >= range) + return -1; + bytes = 1; + } else if(range <= 65536) { + if (number >= range) + return -1; + bytes = 2; + } else { /* Ranges > 64K */ + int i; + for (i = 1; ; i++) { + int bits = 1 << (8 * i); + if (range <= bits) + break; + } + assert(i <= 4); + bytes = i; + } + if(aper_put_align(po) < 0) /* Aligning on octet */ + return -1; +/* if(per_put_few_bits(po, bytes, 8)) + return -1; +*/ + return per_put_few_bits(po, number, 8 * bytes); +} diff --git a/src/tmx/Asn_J2735/src/2020/asn_SEQUENCE_OF.c b/src/tmx/Asn_J2735/src/2020/asn_SEQUENCE_OF.c new file mode 100644 index 000000000..ec952fc99 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/asn_SEQUENCE_OF.c @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +typedef A_SEQUENCE_OF(void) asn_sequence; + +void +asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) { + asn_sequence *as = (asn_sequence *)asn_sequence_of_x; + + if(as) { + void *ptr; + int n; + + if(number < 0 || number >= as->count) + return; /* Nothing to delete */ + + if(_do_free && as->free) { + ptr = as->array[number]; + } else { + ptr = 0; + } + + /* + * Shift all elements to the left to hide the gap. + */ + --as->count; + for(n = number; n < as->count; n++) + as->array[n] = as->array[n+1]; + + /* + * Invoke the third-party function only when the state + * of the parent structure is consistent. + */ + if(ptr) as->free(ptr); + } +} + diff --git a/src/tmx/Asn_J2735/src/2020/asn_SET_OF.c b/src/tmx/Asn_J2735/src/2020/asn_SET_OF.c new file mode 100644 index 000000000..944f2cb8a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/asn_SET_OF.c @@ -0,0 +1,88 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Add another element into the set. + */ +int +asn_set_add(void *asn_set_of_x, void *ptr) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as == 0 || ptr == 0) { + errno = EINVAL; /* Invalid arguments */ + return -1; + } + + /* + * Make sure there's enough space to insert an element. + */ + if(as->count == as->size) { + int _newsize = as->size ? (as->size << 1) : 4; + void *_new_arr; + _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0])); + if(_new_arr) { + as->array = (void **)_new_arr; + as->size = _newsize; + } else { + /* ENOMEM */ + return -1; + } + } + + as->array[as->count++] = ptr; + + return 0; +} + +void +asn_set_del(void *asn_set_of_x, int number, int _do_free) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as) { + void *ptr; + if(number < 0 || number >= as->count) + return; + + if(_do_free && as->free) { + ptr = as->array[number]; + } else { + ptr = 0; + } + + as->array[number] = as->array[--as->count]; + + /* + * Invoke the third-party function only when the state + * of the parent structure is consistent. + */ + if(ptr) as->free(ptr); + } +} + +/* + * Free the contents of the set, do not free the set itself. + */ +void +asn_set_empty(void *asn_set_of_x) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as) { + if(as->array) { + if(as->free) { + while(as->count--) + as->free(as->array[as->count]); + } + FREEMEM(as->array); + as->array = 0; + } + as->count = 0; + as->size = 0; + } + +} + diff --git a/src/tmx/Asn_J2735/src/2020/asn_application.c b/src/tmx/Asn_J2735/src/2020/asn_application.c new file mode 100644 index 000000000..7992185b5 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/asn_application.c @@ -0,0 +1,538 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, + const void *sptr, + asn_app_consume_bytes_f *callback, + void *callback_key); + + +struct callback_count_bytes_key { + asn_app_consume_bytes_f *callback; + void *callback_key; + size_t computed_size; +}; + +/* + * Encoder which just counts bytes that come through it. + */ +static int +callback_count_bytes_cb(const void *data, size_t size, void *keyp) { + struct callback_count_bytes_key *key = keyp; + int ret; + + ret = key->callback(data, size, key->callback_key); + if(ret >= 0) { + key->computed_size += size; + } + + return ret; +} + +struct overrun_encoder_key { + void *buffer; + size_t buffer_size; + size_t computed_size; +}; + +struct dynamic_encoder_key { + void *buffer; + size_t buffer_size; + size_t computed_size; +}; + +struct callback_failure_catch_key { + asn_app_consume_bytes_f *callback; + void *callback_key; + int callback_failed; +}; + +/* + * Encoder which doesn't stop counting bytes + * even if it reaches the end of the buffer. + */ +static int +overrun_encoder_cb(const void *data, size_t size, void *keyp) { + struct overrun_encoder_key *key = keyp; + + if(key->computed_size + size > key->buffer_size) { + /* + * Avoid accident on the next call: + * stop adding bytes to the buffer. + */ + key->buffer_size = 0; + } else { + memcpy((char *)key->buffer + key->computed_size, data, size); + } + key->computed_size += size; + + return 0; +} + +/* + * Encoder which dynamically allocates output, and continues + * to count even if allocation failed. + */ +static int +dynamic_encoder_cb(const void *data, size_t size, void *keyp) { + struct dynamic_encoder_key *key = keyp; + + if(key->buffer) { + if(key->computed_size + size >= key->buffer_size) { + void *p; + size_t new_size = key->buffer_size; + + do { + new_size *= 2; + } while(new_size <= key->computed_size + size); + + p = REALLOC(key->buffer, new_size); + if(p) { + key->buffer = p; + key->buffer_size = new_size; + } else { + FREEMEM(key->buffer); + key->buffer = 0; + key->buffer_size = 0; + key->computed_size += size; + return 0; + } + } + memcpy((char *)key->buffer + key->computed_size, data, size); + } + + key->computed_size += size; + + return 0; +} + +/* + * Encoder which help convert the application level encoder failure into EIO. + */ +static int +callback_failure_catch_cb(const void *data, size_t size, void *keyp) { + struct callback_failure_catch_key *key = keyp; + int ret; + + ret = key->callback(data, size, key->callback_key); + if(ret < 0) { + key->callback_failed = 1; + } + + return ret; +} + +asn_enc_rval_t +asn_encode(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, + const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { + struct callback_failure_catch_key cb_key; + asn_enc_rval_t er = {0,0,0}; + + if(!callback) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + cb_key.callback = callback; + cb_key.callback_key = callback_key; + cb_key.callback_failed = 0; + + er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + callback_failure_catch_cb, &cb_key); + if(cb_key.callback_failed) { + assert(er.encoded == -1); + assert(errno == EBADF); + errno = EIO; + } + + return er; +} + +asn_enc_rval_t +asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr, + void *buffer, size_t buffer_size) { + struct overrun_encoder_key buf_key; + asn_enc_rval_t er = {0,0,0}; + + if(buffer_size > 0 && !buffer) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + buf_key.buffer = buffer; + buf_key.buffer_size = buffer_size; + buf_key.computed_size = 0; + + er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + overrun_encoder_cb, &buf_key); + + if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { + ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE + " yet produced %" ASN_PRI_SIZE " bytes", + er.encoded, buf_key.computed_size); + assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); + } + + return er; +} + +asn_encode_to_new_buffer_result_t +asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr) { + struct dynamic_encoder_key buf_key; + asn_encode_to_new_buffer_result_t res; + + buf_key.buffer_size = 16; + buf_key.buffer = MALLOC(buf_key.buffer_size); + buf_key.computed_size = 0; + + res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + dynamic_encoder_cb, &buf_key); + + if(res.result.encoded >= 0 + && (size_t)res.result.encoded != buf_key.computed_size) { + ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE + " yet produced %" ASN_PRI_SIZE " bytes", + res.result.encoded, buf_key.computed_size); + assert(res.result.encoded < 0 + || (size_t)res.result.encoded == buf_key.computed_size); + } + + res.buffer = buf_key.buffer; + + /* 0-terminate just in case. */ + if(res.buffer) { + assert(buf_key.computed_size < buf_key.buffer_size); + ((char *)res.buffer)[buf_key.computed_size] = '\0'; + } + + return res; +} + +static asn_enc_rval_t +asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *callback, void *callback_key) { + asn_enc_rval_t er = {0,0,0}; +#if !defined(ASN_DISABLE_XER_SUPPORT) + enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + + (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ + + if(!td || !sptr) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + switch(syntax) { + case ATS_NONSTANDARD_PLAINTEXT: + if(td->op->print_struct) { + struct callback_count_bytes_key cb_key; + cb_key.callback = callback; + cb_key.callback_key = callback_key; + cb_key.computed_size = 0; + if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, + &cb_key) + < 0 + || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { + errno = EBADF; /* Structure has incorrect form. */ + er.encoded = -1; + er.failed_type = td; + er.structure_ptr = sptr; + } else { + er.encoded = cb_key.computed_size; + er.failed_type = 0; + er.structure_ptr = 0; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + + case ATS_RANDOM: + errno = ENOENT; /* Randomization doesn't make sense on output. */ + ASN__ENCODE_FAILED; + +#if !defined(ASN_DISABLE_BER_SUPPORT) + case ATS_BER: + /* BER is a superset of DER. */ + /* Fall through. */ + case ATS_DER: + if(td->op->der_encoder) { + er = der_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->der_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* DER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + case ATS_CER: + errno = ENOENT; /* Transfer syntax is not defined for any type. */ + ASN__ENCODE_FAILED; +#else + case ATS_BER: + case ATS_DER: + case ATS_CER: + errno = ENOENT; /* BER is not defined. */ + ASN__ENCODE_FAILED; + +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) + case ATS_BASIC_OER: + /* CANONICAL-OER is a superset of BASIC-OER. */ + /* Fall through. */ + case ATS_CANONICAL_OER: + if(td->op->oer_encoder) { + er = oer_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->oer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* OER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_BASIC_OER: + case ATS_CANONICAL_OER: + errno = ENOENT; /* OER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) + case ATS_UNALIGNED_BASIC_PER: + /* CANONICAL-UPER is a superset of BASIC-UPER. */ + /* Fall through. */ + case ATS_UNALIGNED_CANONICAL_PER: + if(td->op->uper_encoder) { + er = uper_encode(td, 0, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->uper_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* UPER is not defined for this type. */ + } + } else { + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + if(er.encoded == 0) { + /* Enforce "Complete Encoding" of X.691 #11.1 */ + if(callback("\0", 1, callback_key) < 0) { + errno = EBADF; + ASN__ENCODE_FAILED; + } + er.encoded = 8; /* Exactly 8 zero bits is added. */ + } + /* Convert bits into bytes */ + er.encoded = (er.encoded + 7) >> 3; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_UNALIGNED_BASIC_PER: + case ATS_UNALIGNED_CANONICAL_PER: + errno = ENOENT; /* UPER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + case ATS_ALIGNED_BASIC_PER: + /* CANONICAL-APER is a superset of BASIC-APER. */ + /* Fall through. */ + case ATS_ALIGNED_CANONICAL_PER: + if(td->op->aper_encoder) { + er = aper_encode(td, 0, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->aper_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* APER is not defined for this type. */ + } + } else { + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + if(er.encoded == 0) { + /* Enforce "Complete Encoding" of X.691 #11.1 */ + if(callback("\0", 1, callback_key) < 0) { + errno = EBADF; + ASN__ENCODE_FAILED; + } + er.encoded = 8; /* Exactly 8 zero bits is added. */ + } + /* Convert bits into bytes */ + er.encoded = (er.encoded + 7) >> 3; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_ALIGNED_BASIC_PER: + case ATS_ALIGNED_CANONICAL_PER: + errno = ENOENT; /* APER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) + case ATS_BASIC_XER: + /* CANONICAL-XER is a superset of BASIC-XER. */ + xer_flags &= ~XER_F_CANONICAL; + xer_flags |= XER_F_BASIC; + /* Fall through. */ + case ATS_CANONICAL_XER: + if(td->op->xer_encoder) { + er = xer_encode(td, sptr, xer_flags, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->xer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* XER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_BASIC_XER: + case ATS_CANONICAL_XER: + errno = ENOENT; /* XER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) + case ATS_JER: + if(td->op->jer_encoder) { + er = jer_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->jer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* JER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + default: + errno = ENOENT; + ASN__ENCODE_FAILED; + } + + return er; +} + +asn_dec_rval_t +asn_decode(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, + void **sptr, const void *buffer, size_t size) { + if(!td || !td->op || !sptr || (size && !buffer)) { + ASN__DECODE_FAILED; + } + + switch(syntax) { + case ATS_CER: + case ATS_NONSTANDARD_PLAINTEXT: + default: + errno = ENOENT; + ASN__DECODE_FAILED; + + case ATS_RANDOM: +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + if(!td->op->random_fill) { + ASN__DECODE_FAILED; + } else { + if(asn_random_fill(td, sptr, 16000) == 0) { + asn_dec_rval_t ret = {RC_OK, 0}; + return ret; + } else { + ASN__DECODE_FAILED; + } + } + break; +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + + case ATS_DER: + case ATS_BER: +#if !defined(ASN_DISABLE_BER_SUPPORT) + return ber_decode(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + + case ATS_BASIC_OER: + case ATS_CANONICAL_OER: +#if !defined(ASN_DISABLE_OER_SUPPORT) + return oer_decode(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + + case ATS_UNALIGNED_BASIC_PER: + case ATS_UNALIGNED_CANONICAL_PER: +#if !defined(ASN_DISABLE_UPER_SUPPORT) + return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ + + case ATS_ALIGNED_BASIC_PER: + case ATS_ALIGNED_CANONICAL_PER: +#if !defined(ASN_DISABLE_APER_SUPPORT) + return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + + case ATS_BASIC_XER: + case ATS_CANONICAL_XER: +#if !defined(ASN_DISABLE_XER_SUPPORT) + return xer_decode(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + } +} + diff --git a/src/tmx/Asn_J2735/src/2020/asn_bit_data.c b/src/tmx/Asn_J2735/src/2020/asn_bit_data.c new file mode 100644 index 000000000..fe4b89ba7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/asn_bit_data.c @@ -0,0 +1,333 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Create a contiguous non-refillable bit data structure. + * Can be freed by FREEMEM(). + */ +asn_bit_data_t * +asn_bit_data_new_contiguous(const void *data, size_t size_bits) { + size_t size_bytes = (size_bits + 7) / 8; + asn_bit_data_t *pd; + uint8_t *bytes; + + /* Get the extensions map */ + pd = CALLOC(1, sizeof(*pd) + size_bytes + 1); + if(!pd) { + return NULL; + } + bytes = (void *)(((char *)pd) + sizeof(*pd)); + memcpy(bytes, data, size_bytes); + bytes[size_bytes] = 0; + pd->buffer = bytes; + pd->nboff = 0; + pd->nbits = size_bits; + + return pd; +} + + +char * +asn_bit_data_string(asn_bit_data_t *pd) { + static char buf[2][32]; + static int n; + n = (n+1) % 2; + snprintf(buf[n], sizeof(buf[n]), + "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE + "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}", + pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits, + pd->nbits - pd->nboff); + return buf[n]; +} + +void +asn_get_undo(asn_bit_data_t *pd, int nbits) { + if((ssize_t)pd->nboff < nbits) { + assert((ssize_t)pd->nboff < nbits); + } else { + pd->nboff -= nbits; + pd->moved -= nbits; + } +} + +/* + * Extract a small number of bits (<= 31) from the specified PER data pointer. + */ +int32_t +asn_get_few_bits(asn_bit_data_t *pd, int nbits) { + size_t off; /* Next after last bit offset */ + ssize_t nleft; /* Number of bits left in this stream */ + uint32_t accum; + const uint8_t *buf; + + if(nbits < 0) + return -1; + + nleft = pd->nbits - pd->nboff; + if(nbits > nleft) { + int32_t tailv, vhead; + if(!pd->refill || nbits > 31) return -1; + /* Accumulate unused bytes before refill */ + ASN_DEBUG("Obtain the rest %d bits (want %d)", + (int)nleft, (int)nbits); + tailv = asn_get_few_bits(pd, nleft); + if(tailv < 0) return -1; + /* Refill (replace pd contents with new data) */ + if(pd->refill(pd)) + return -1; + nbits -= nleft; + vhead = asn_get_few_bits(pd, nbits); + /* Combine the rest of previous pd with the head of new one */ + tailv = (tailv << nbits) | vhead; /* Could == -1 */ + return tailv; + } + + /* + * Normalize position indicator. + */ + if(pd->nboff >= 8) { + pd->buffer += (pd->nboff >> 3); + pd->nbits -= (pd->nboff & ~0x07); + pd->nboff &= 0x07; + } + pd->moved += nbits; + pd->nboff += nbits; + off = pd->nboff; + buf = pd->buffer; + + /* + * Extract specified number of bits. + */ + if(off <= 8) + accum = nbits ? (buf[0]) >> (8 - off) : 0; + else if(off <= 16) + accum = ((buf[0] << 8) + buf[1]) >> (16 - off); + else if(off <= 24) + accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off); + else if(off <= 31) + accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16) + + (buf[2] << 8) + (buf[3])) >> (32 - off); + else if(nbits <= 31) { + asn_bit_data_t tpd = *pd; + /* Here are we with our 31-bits limit plus 1..7 bits offset. */ + asn_get_undo(&tpd, nbits); + /* The number of available bits in the stream allow + * for the following operations to take place without + * invoking the ->refill() function */ + accum = asn_get_few_bits(&tpd, nbits - 24) << 24; + accum |= asn_get_few_bits(&tpd, 24); + } else { + asn_get_undo(pd, nbits); + return -1; + } + + accum &= (((uint32_t)1 << nbits) - 1); + + ASN_DEBUG(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", + (int)nbits, (int)nleft, + (int)pd->moved, + (((long)pd->buffer) & 0xf), + (int)pd->nboff, (int)pd->nbits, + ((pd->buffer != NULL)?pd->buffer[0]:0), + (int)(pd->nbits - pd->nboff), + (int)accum); + + return accum; +} + +/* + * Extract a large number of bits from the specified PER data pointer. + */ +int +asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) { + int32_t value; + + if(alright && (nbits & 7)) { + /* Perform right alignment of a first few bits */ + value = asn_get_few_bits(pd, nbits & 0x07); + if(value < 0) return -1; + *dst++ = value; /* value is already right-aligned */ + nbits &= ~7; + } + + while(nbits) { + if(nbits >= 24) { + value = asn_get_few_bits(pd, 24); + if(value < 0) return -1; + *(dst++) = value >> 16; + *(dst++) = value >> 8; + *(dst++) = value; + nbits -= 24; + } else { + value = asn_get_few_bits(pd, nbits); + if(value < 0) return -1; + if(nbits & 7) { /* implies left alignment */ + value <<= 8 - (nbits & 7), + nbits += 8 - (nbits & 7); + if(nbits > 24) + *dst++ = value >> 24; + } + if(nbits > 16) + *dst++ = value >> 16; + if(nbits > 8) + *dst++ = value >> 8; + *dst++ = value; + break; + } + } + + return 0; +} + +/* + * Put a small number of bits (<= 31). + */ +int +asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { + size_t off; /* Next after last bit offset */ + size_t omsk; /* Existing last byte meaningful bits mask */ + uint8_t *buf; + + if(obits <= 0 || obits >= 32) return obits ? -1 : 0; + + ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", + obits, (int)bits, (void *)po->buffer, (int)po->nboff); + + /* + * Normalize position indicator. + */ + if(po->nboff >= 8) { + po->buffer += (po->nboff >> 3); + po->nbits -= (po->nboff & ~0x07); + po->nboff &= 0x07; + } + + /* + * Flush whole-bytes output, if necessary. + */ + if(po->nboff + obits > po->nbits) { + size_t complete_bytes; + if(!po->buffer) po->buffer = po->tmpspace; + complete_bytes = (po->buffer - po->tmpspace); + ASN_DEBUG("[PER output %ld complete + %ld]", + (long)complete_bytes, (long)po->flushed_bytes); + if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) + return -1; + if(po->nboff) + po->tmpspace[0] = po->buffer[0]; + po->buffer = po->tmpspace; + po->nbits = 8 * sizeof(po->tmpspace); + po->flushed_bytes += complete_bytes; + } + + /* + * Now, due to sizeof(tmpspace), we are guaranteed large enough space. + */ + buf = po->buffer; + omsk = ~((1 << (8 - po->nboff)) - 1); + off = (po->nboff + obits); + + /* Clear data of debris before meaningful bits */ + bits &= (((uint32_t)1 << obits) - 1); + + ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits, + (int)bits, (int)bits, + (int)po->nboff, (int)off, + buf[0], (int)(omsk&0xff), + (int)(buf[0] & omsk)); + + if(off <= 8) /* Completely within 1 byte */ + po->nboff = off, + bits <<= (8 - off), + buf[0] = (buf[0] & omsk) | bits; + else if(off <= 16) + po->nboff = off, + bits <<= (16 - off), + buf[0] = (buf[0] & omsk) | (bits >> 8), + buf[1] = bits; + else if(off <= 24) + po->nboff = off, + bits <<= (24 - off), + buf[0] = (buf[0] & omsk) | (bits >> 16), + buf[1] = bits >> 8, + buf[2] = bits; + else if(off <= 31) + po->nboff = off, + bits <<= (32 - off), + buf[0] = (buf[0] & omsk) | (bits >> 24), + buf[1] = bits >> 16, + buf[2] = bits >> 8, + buf[3] = bits; + else { + if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1; + if(asn_put_few_bits(po, bits, obits - 24)) return -1; + } + + ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]", + (int)bits, (int)bits, buf[0], + (long)(po->buffer - po->tmpspace)); + + return 0; +} + + +/* + * Output a large number of bits. + */ +int +asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) { + + while(nbits) { + uint32_t value; + + if(nbits >= 24) { + value = (src[0] << 16) | (src[1] << 8) | src[2]; + src += 3; + nbits -= 24; + if(asn_put_few_bits(po, value, 24)) + return -1; + } else { + value = src[0]; + if(nbits > 8) + value = (value << 8) | src[1]; + if(nbits > 16) + value = (value << 8) | src[2]; + if(nbits & 0x07) + value >>= (8 - (nbits & 0x07)); + if(asn_put_few_bits(po, value, nbits)) + return -1; + break; + } + } + + return 0; +} + + +int +asn_put_aligned_flush(asn_bit_outp_t *po) { + uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07))); + size_t complete_bytes = + (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3); + + if(unused_bits) { + po->buffer[po->nboff >> 3] &= ~0u << unused_bits; + } + + if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) { + return -1; + } else { + po->buffer = po->tmpspace; + po->nboff = 0; + po->nbits = 8 * sizeof(po->tmpspace); + po->flushed_bytes += complete_bytes; + return 0; + } +} + diff --git a/src/tmx/Asn_J2735/src/2020/asn_codecs_prim.c b/src/tmx/Asn_J2735/src/2020/asn_codecs_prim.c new file mode 100644 index 000000000..f3fdbfd2b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/asn_codecs_prim.c @@ -0,0 +1,31 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +void +ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; + + if(!td || !sptr) + return; + + ASN_DEBUG("Freeing %s as a primitive type", td->name); + + if(st->buf) + FREEMEM(st->buf); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); + break; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/asn_codecs_prim_ber.c b/src/tmx/Asn_J2735/src/2020/asn_codecs_prim_ber.c new file mode 100644 index 000000000..c5c2cef65 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/asn_codecs_prim_ber.c @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Decode an always-primitive type. + */ +asn_dec_rval_t +ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buf_ptr, size_t size, int tag_mode) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; + asn_dec_rval_t rval; + ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ + + /* + * If the structure is not there, allocate it. + */ + if(st == NULL) { + st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); + if(st == NULL) ASN__DECODE_FAILED; + *sptr = (void *)st; + } + + ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", + td->name, tag_mode); + + /* + * Check tags and extract value length. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("%s length is %d bytes", td->name, (int)length); + + /* + * Make sure we have this length. + */ + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + st->size = (int)length; + /* The following better be optimized away. */ + if(sizeof(st->size) != sizeof(length) + && (ber_tlv_len_t)st->size != length) { + st->size = 0; + ASN__DECODE_FAILED; + } + + st->buf = (uint8_t *)MALLOC(length + 1); + if(!st->buf) { + st->size = 0; + ASN__DECODE_FAILED; + } + + memcpy(st->buf, buf_ptr, length); + st->buf[length] = '\0'; /* Just in case */ + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s", + (long)rval.consumed, + (long)length, td->name); + + return rval; +} + +/* + * Encode an always-primitive type using DER. + */ +asn_enc_rval_t +der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t erval = {0,0,0}; + const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; + + ASN_DEBUG("%s %s as a primitive type (tm=%d)", + cb?"Encoding":"Estimating", td->name, tag_mode); + + erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, + cb, app_key); + ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); + if(erval.encoded == -1) { + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + + if(cb && st->buf) { + if(cb(st->buf, st->size, app_key) < 0) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + } else { + assert(st->buf || st->size == 0); + } + + erval.encoded += st->size; + ASN__ENCODED_OK(erval); +} diff --git a/src/tmx/Asn_J2735/src/2020/asn_codecs_prim_xer.c b/src/tmx/Asn_J2735/src/2020/asn_codecs_prim_xer.c new file mode 100644 index 000000000..70c91bc26 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/asn_codecs_prim_xer.c @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Local internal type passed around as an argument. + */ +struct xdp_arg_s { + const asn_TYPE_descriptor_t *type_descriptor; + void *struct_key; + xer_primitive_body_decoder_f *prim_body_decoder; + int decoded_something; + int want_more; +}; + +/* + * Since some kinds of primitive values can be encoded using value-specific + * tags (, , etc), the primitive decoder must + * be supplied with such tags to parse them as needed. + */ +static int +xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { + struct xdp_arg_s *arg = (struct xdp_arg_s *)key; + enum xer_pbd_rval bret; + + /* + * The chunk_buf is guaranteed to start at '<'. + */ + assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); + + /* + * Decoding was performed once already. Prohibit doing it again. + */ + if(arg->decoded_something) + return -1; + + bret = arg->prim_body_decoder(arg->type_descriptor, + arg->struct_key, chunk_buf, + chunk_size); + switch(bret) { + case XPBD_SYSTEM_FAILURE: + case XPBD_DECODER_LIMIT: + case XPBD_BROKEN_ENCODING: + break; + case XPBD_BODY_CONSUMED: + /* Tag decoded successfully */ + arg->decoded_something = 1; + /* Fall through */ + case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ + return 0; + } + + return -1; +} + +static ssize_t +xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { + struct xdp_arg_s *arg = (struct xdp_arg_s *)key; + enum xer_pbd_rval bret; + size_t lead_wsp_size; + + if(arg->decoded_something) { + if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { + /* + * Example: + * "123 " + * ^- chunk_buf position. + */ + return chunk_size; + } + /* + * Decoding was done once already. Prohibit doing it again. + */ + return -1; + } + + if(!have_more) { + /* + * If we've received something like "1", we can't really + * tell whether it is really `1` or `123`, until we know + * that there is no more data coming. + * The have_more argument will be set to 1 once something + * like this is available to the caller of this callback: + * "1want_more = 1; + return -1; + } + + lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); + chunk_buf = (chunk_buf == NULL)? NULL : ((const char *)chunk_buf + lead_wsp_size); + chunk_size -= lead_wsp_size; + + bret = arg->prim_body_decoder(arg->type_descriptor, + arg->struct_key, chunk_buf, + chunk_size); + switch(bret) { + case XPBD_SYSTEM_FAILURE: + case XPBD_DECODER_LIMIT: + case XPBD_BROKEN_ENCODING: + break; + case XPBD_BODY_CONSUMED: + /* Tag decoded successfully */ + arg->decoded_something = 1; + /* Fall through */ + case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ + return lead_wsp_size + chunk_size; + } + + return -1; +} + +asn_dec_rval_t +xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + size_t struct_size, const char *opt_mname, + const void *buf_ptr, size_t size, + xer_primitive_body_decoder_f *prim_body_decoder) { + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + asn_struct_ctx_t s_ctx; + struct xdp_arg_s s_arg; + asn_dec_rval_t rc; + + /* + * Create the structure if does not exist. + */ + if(!*sptr) { + *sptr = CALLOC(1, struct_size); + if(!*sptr) ASN__DECODE_FAILED; + } + + memset(&s_ctx, 0, sizeof(s_ctx)); + s_arg.type_descriptor = td; + s_arg.struct_key = *sptr; + s_arg.prim_body_decoder = prim_body_decoder; + s_arg.decoded_something = 0; + s_arg.want_more = 0; + + rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, + xml_tag, buf_ptr, size, + xer_decode__unexpected_tag, + xer_decode__primitive_body); + switch(rc.code) { + case RC_OK: + if(!s_arg.decoded_something) { + char ch; + ASN_DEBUG("Primitive body is not recognized, " + "supplying empty one"); + /* + * Decoding opportunity has come and gone. + * Where's the result? + * Try to feed with empty body, see if it eats it. + */ + if(prim_body_decoder(s_arg.type_descriptor, + s_arg.struct_key, &ch, 0) + != XPBD_BODY_CONSUMED) { + /* + * This decoder does not like empty stuff. + */ + ASN__DECODE_FAILED; + } + } + break; + case RC_WMORE: + /* + * Redo the whole thing later. + * We don't have a context to save intermediate parsing state. + */ + rc.consumed = 0; + break; + case RC_FAIL: + rc.consumed = 0; + if(s_arg.want_more) + rc.code = RC_WMORE; + else + ASN__DECODE_FAILED; + break; + } + return rc; +} diff --git a/src/tmx/Asn_J2735/src/2020/asn_internal.c b/src/tmx/Asn_J2735/src/2020/asn_internal.c new file mode 100644 index 000000000..c2a8108e7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/asn_internal.c @@ -0,0 +1,48 @@ +#include + +ssize_t +asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, + const char *fmt, ...) { + char scratch[64]; + char *buf = scratch; + size_t buf_size = sizeof(scratch); + int wrote; + int cb_ret; + + do { + va_list args; + va_start(args, fmt); + + wrote = vsnprintf(buf, buf_size, fmt, args); + va_end(args); + if(wrote < (ssize_t)buf_size) { + if(wrote < 0) { + if(buf != scratch) FREEMEM(buf); + return -1; + } + break; + } + + buf_size <<= 1; + if(buf == scratch) { + buf = MALLOC(buf_size); + if(!buf) return -1; + } else { + void *p = REALLOC(buf, buf_size); + if(!p) { + FREEMEM(buf); + return -1; + } + buf = p; + } + } while(1); + + cb_ret = cb(buf, wrote, key); + if(buf != scratch) FREEMEM(buf); + if(cb_ret < 0) { + return -1; + } + + return wrote; +} + diff --git a/src/tmx/Asn_J2735/src/2020/asn_random_fill.c b/src/tmx/Asn_J2735/src/2020/asn_random_fill.c new file mode 100644 index 000000000..15771b6c7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/asn_random_fill.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +int +asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + size_t length) { + + if(td && td->op->random_fill) { + asn_random_fill_result_t res = + td->op->random_fill(td, struct_ptr, 0, length); + return (res.code == ARFILL_OK) ? 0 : -1; + } else { + return -1; + } +} + +static uintmax_t +asn__intmax_range(intmax_t lb, intmax_t ub) { + assert(lb <= ub); + if((ub < 0) == (lb < 0)) { + return ub - lb; + } else if(lb < 0) { + return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); + } else { + assert(!"Unreachable"); + return 0; + } +} + +intmax_t +asn_random_between(intmax_t lb, intmax_t rb) { + if(lb == rb) { + return lb; + } else { + const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); + uintmax_t range = asn__intmax_range(lb, rb); + uintmax_t value = 0; + uintmax_t got_entropy = 0; + (void)intmax_max; + int max = 0xffffff; + +#ifdef __WIN32__ + max = RAND_MAX-1; +#endif + + assert(RAND_MAX > max); /* Seen 7ffffffd! */ + assert(range < intmax_max); + + for(; got_entropy < range;) { + got_entropy = (got_entropy << 24) | max; +#ifdef HAVE_RANDOM + value = (value << 24) | (random() % max); +#else + value = (value << 24) | (rand() % max); +#endif + } + + return lb + (intmax_t)(value % (range + 1)); + } +} diff --git a/src/tmx/Asn_J2735/src/2020/ber_decoder.c b/src/tmx/Asn_J2735/src/2020/ber_decoder.c new file mode 100644 index 000000000..75d601695 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ber_decoder.c @@ -0,0 +1,283 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include + +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) +#undef RETURN +#define RETURN(_code) do { \ + asn_dec_rval_t rval; \ + rval.code = _code; \ + if(opt_ctx) opt_ctx->step = step; /* Save context */ \ + if(_code == RC_OK || opt_ctx) \ + rval.consumed = consumed_myself; \ + else \ + rval.consumed = 0; /* Context-free */ \ + return rval; \ + } while(0) + +/* + * The BER decoder of any type. + */ +asn_dec_rval_t +ber_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + const void *ptr, size_t size) { + asn_codec_ctx_t s_codec_ctx; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* + * Invoke type-specific decoder. + */ + return type_descriptor->op->ber_decoder(opt_codec_ctx, type_descriptor, + struct_ptr, /* Pointer to the destination structure */ + ptr, size, /* Buffer and its size */ + 0 /* Default tag mode is 0 */ + ); +} + +/* + * Check the set of >> tags matches the definition. + */ +asn_dec_rval_t +ber_check_tags(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, asn_struct_ctx_t *opt_ctx, + const void *ptr, size_t size, int tag_mode, int last_tag_form, + ber_tlv_len_t *last_length, int *opt_tlv_form) { + ssize_t consumed_myself = 0; + ssize_t tag_len; + ssize_t len_len; + ber_tlv_tag_t tlv_tag; + ber_tlv_len_t tlv_len; + ber_tlv_len_t limit_len = -1; + int expect_00_terminators = 0; + int tlv_constr = -1; /* If CHOICE, opt_tlv_form is not given */ + int step = opt_ctx ? opt_ctx->step : 0; /* Where we left previously */ + int tagno; + + /* + * Make sure we didn't exceed the maximum stack size. + */ + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + RETURN(RC_FAIL); + + /* + * So what does all this implicit skip stuff mean? + * Imagine two types, + * A ::= [5] IMPLICIT T + * B ::= [2] EXPLICIT T + * Where T is defined as + * T ::= [4] IMPLICIT SEQUENCE { ... } + * + * Let's say, we are starting to decode type A, given the + * following TLV stream: <5> <0>. What does this mean? + * It means that the type A contains type T which is, + * in turn, empty. + * Remember though, that we are still in A. We cannot + * just pass control to the type T decoder. Why? Because + * the type T decoder expects <4> <0>, not <5> <0>. + * So, we must make sure we are going to receive <5> while + * still in A, then pass control to the T decoder, indicating + * that the tag <4> was implicitly skipped. The decoder of T + * hence will be prepared to treat <4> as valid tag, and decode + * it appropriately. + */ + + tagno = step /* Continuing where left previously */ + + (tag_mode==1?-1:0) + ; + ASN_DEBUG("ber_check_tags(%s, size=%ld, tm=%d, step=%d, tagno=%d)", + td->name, (long)size, tag_mode, step, tagno); + /* assert(td->tags_count >= 1) May not be the case for CHOICE or ANY */ + + if(tag_mode == 0 && tagno == (int)td->tags_count) { + /* + * This must be the _untagged_ ANY type, + * which outermost tag isn't known in advance. + * Fetch the tag and length separately. + */ + tag_len = ber_fetch_tag(ptr, size, &tlv_tag); + switch(tag_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + tlv_constr = BER_TLV_CONSTRUCTED(ptr); + len_len = ber_fetch_length(tlv_constr, + (const char *)ptr + tag_len, size - tag_len, &tlv_len); + switch(len_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + ASN_DEBUG("Advancing %ld in ANY case", + (long)(tag_len + len_len)); + ADVANCE(tag_len + len_len); + } else { + assert(tagno < (int)td->tags_count); /* At least one loop */ + } + for((void)tagno; tagno < (int)td->tags_count; tagno++, step++) { + + /* + * Fetch and process T from TLV. + */ + tag_len = ber_fetch_tag(ptr, size, &tlv_tag); + ASN_DEBUG("Fetching tag from {%p,%ld}: " + "len %ld, step %d, tagno %d got %s", + ptr, (long)size, + (long)tag_len, step, tagno, + ber_tlv_tag_string(tlv_tag)); + switch(tag_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + tlv_constr = BER_TLV_CONSTRUCTED(ptr); + + /* + * If {I}, don't check anything. + * If {I,B,C}, check B and C unless we're at I. + */ + if(tag_mode != 0 && step == 0) { + /* + * We don't expect tag to match here. + * It's just because we don't know how the tag + * is supposed to look like. + */ + } else { + assert(tagno >= 0); /* Guaranteed by the code above */ + if(tlv_tag != td->tags[tagno]) { + /* + * Unexpected tag. Too bad. + */ + ASN_DEBUG("Expected: %s, " + "expectation failed (tn=%d, tm=%d)", + ber_tlv_tag_string(td->tags[tagno]), + tagno, tag_mode + ); + RETURN(RC_FAIL); + } + } + + /* + * Attention: if there are more tags expected, + * ensure that the current tag is presented + * in constructed form (it contains other tags!). + * If this one is the last one, check that the tag form + * matches the one given in descriptor. + */ + if(tagno < ((int)td->tags_count - 1)) { + if(tlv_constr == 0) { + ASN_DEBUG("tlv_constr = %d, expfail", + tlv_constr); + RETURN(RC_FAIL); + } + } else { + if(last_tag_form != tlv_constr + && last_tag_form != -1) { + ASN_DEBUG("last_tag_form %d != %d", + last_tag_form, tlv_constr); + RETURN(RC_FAIL); + } + } + + /* + * Fetch and process L from TLV. + */ + len_len = ber_fetch_length(tlv_constr, + (const char *)ptr + tag_len, size - tag_len, &tlv_len); + ASN_DEBUG("Fetching len = %ld", (long)len_len); + switch(len_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + /* + * FIXME + * As of today, the chain of tags + * must either contain several indefinite length TLVs, + * or several definite length ones. + * No mixing is allowed. + */ + if(tlv_len == -1) { + /* + * Indefinite length. + */ + if(limit_len == -1) { + expect_00_terminators++; + } else { + ASN_DEBUG("Unexpected indefinite length " + "in a chain of definite lengths"); + RETURN(RC_FAIL); + } + ADVANCE(tag_len + len_len); + continue; + } else { + if(expect_00_terminators) { + ASN_DEBUG("Unexpected definite length " + "in a chain of indefinite lengths"); + RETURN(RC_FAIL); + } + } + + /* + * Check that multiple TLVs specify ever decreasing length, + * which is consistent. + */ + if(limit_len == -1) { + limit_len = tlv_len + tag_len + len_len; + if(limit_len < 0) { + /* Too great tlv_len value? */ + RETURN(RC_FAIL); + } + } else if(limit_len != tlv_len + tag_len + len_len) { + /* + * Inner TLV specifies length which is inconsistent + * with the outer TLV's length value. + */ + ASN_DEBUG("Outer TLV is %ld and inner is %ld", + (long)limit_len, (long)tlv_len); + RETURN(RC_FAIL); + } + + ADVANCE(tag_len + len_len); + + limit_len -= (tag_len + len_len); + if((ssize_t)size > limit_len) { + /* + * Make sure that we won't consume more bytes + * from the parent frame than the inferred limit. + */ + size = limit_len; + } + } + + if(opt_tlv_form) + *opt_tlv_form = tlv_constr; + if(expect_00_terminators) + *last_length = -expect_00_terminators; + else + *last_length = tlv_len; + + RETURN(RC_OK); +} diff --git a/src/tmx/Asn_J2735/src/2020/ber_tlv_length.c b/src/tmx/Asn_J2735/src/2020/ber_tlv_length.c new file mode 100644 index 000000000..0a0deec1a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ber_tlv_length.c @@ -0,0 +1,168 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +ssize_t +ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, + ber_tlv_len_t *len_r) { + const uint8_t *buf = (const uint8_t *)bufptr; + unsigned oct; + + if(size == 0) + return 0; /* Want more */ + + oct = *(const uint8_t *)buf; + if((oct & 0x80) == 0) { + /* + * Short definite length. + */ + *len_r = oct; /* & 0x7F */ + return 1; + } else { + ber_tlv_len_t len; + size_t skipped; + + if(_is_constructed && oct == 0x80) { + *len_r = -1; /* Indefinite length */ + return 1; + } + + if(oct == 0xff) { + /* Reserved in standard for future use. */ + return -1; + } + + oct &= 0x7F; /* Leave only the 7 LS bits */ + for(len = 0, buf++, skipped = 1; + oct && (++skipped <= size); buf++, oct--) { + + /* Verify that we won't overflow. */ + if(!(len >> ((8 * sizeof(len)) - (8+1)))) { + len = (len << 8) | *buf; + } else { + /* Too large length value. */ + return -1; + } + } + + if(oct == 0) { + if(len < 0 || len > RSSIZE_MAX) { + /* Length value out of sane range. */ + return -1; + } + + *len_r = len; + return skipped; + } + + return 0; /* Want more */ + } + +} + +ssize_t +ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx, + int _is_constructed, const void *ptr, size_t size) { + ber_tlv_len_t vlen; /* Length of V in TLV */ + ssize_t tl; /* Length of L in TLV */ + ssize_t ll; /* Length of L in TLV */ + size_t skip; + + /* + * Make sure we didn't exceed the maximum stack size. + */ + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + return -1; + + /* + * Determine the size of L in TLV. + */ + ll = ber_fetch_length(_is_constructed, ptr, size, &vlen); + if(ll <= 0) return ll; + + /* + * Definite length. + */ + if(vlen >= 0) { + skip = ll + vlen; + if(skip > size) + return 0; /* Want more */ + return skip; + } + + /* + * Indefinite length! + */ + ASN_DEBUG("Skipping indefinite length"); + for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) { + ber_tlv_tag_t tag; + + /* Fetch the tag */ + tl = ber_fetch_tag(ptr, size, &tag); + if(tl <= 0) return tl; + + ll = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + ((const char *)ptr) + tl, size - tl); + if(ll <= 0) return ll; + + skip += tl + ll; + + /* + * This may be the end of the indefinite length structure, + * two consecutive 0 octets. + * Check if it is true. + */ + if(((const uint8_t *)ptr)[0] == 0 + && ((const uint8_t *)ptr)[1] == 0) + return skip; + + ptr = ((const char *)ptr) + tl + ll; + size -= tl + ll; + } + + /* UNREACHABLE */ +} + +size_t +der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) { + size_t required_size; /* Size of len encoding */ + uint8_t *buf = (uint8_t *)bufp; + uint8_t *end; + int i; + + if(len <= 127) { + /* Encoded in 1 octet */ + if(size) *buf = (uint8_t)len; + return 1; + } + + /* + * Compute the size of the subsequent bytes. + */ + for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) { + if(len >> i) + required_size++; + else + break; + } + + if(size <= required_size) + return required_size + 1; + + *buf++ = (uint8_t)(0x80 | required_size); /* Length of the encoding */ + + /* + * Produce the len encoding, space permitting. + */ + end = buf + required_size; + for(i -= 8; buf < end; i -= 8, buf++) + *buf = (uint8_t)(len >> i); + + return required_size + 1; +} + diff --git a/src/tmx/Asn_J2735/src/2020/ber_tlv_tag.c b/src/tmx/Asn_J2735/src/2020/ber_tlv_tag.c new file mode 100644 index 000000000..64ec14f07 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/ber_tlv_tag.c @@ -0,0 +1,144 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +ssize_t +ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { + ber_tlv_tag_t val; + ber_tlv_tag_t tclass; + size_t skipped; + + if(size == 0) + return 0; + + val = *(const uint8_t *)ptr; + tclass = (val >> 6); + if((val &= 0x1F) != 0x1F) { + /* + * Simple form: everything encoded in a single octet. + * Tag Class is encoded using two least significant bits. + */ + *tag_r = (val << 2) | tclass; + return 1; + } + + /* + * Each octet contains 7 bits of useful information. + * The MSB is 0 if it is the last octet of the tag. + */ + for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; + skipped <= size; + ptr = ((const char *)ptr) + 1, skipped++) { + unsigned int oct = *(const uint8_t *)ptr; + if(oct & 0x80) { + val = (val << 7) | (oct & 0x7F); + /* + * Make sure there are at least 9 bits spare + * at the MS side of a value. + */ + if(val >> ((8 * sizeof(val)) - 9)) { + /* + * We would not be able to accommodate + * any more tag bits. + */ + return -1; + } + } else { + val = (val << 7) | oct; + *tag_r = (val << 2) | tclass; + return skipped; + } + } + + return 0; /* Want more */ +} + + +ssize_t +ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { + char buf[sizeof("[APPLICATION ]") + 32]; + ssize_t ret; + + ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); + if(ret >= (ssize_t)sizeof(buf) || ret < 2) { + errno = EPERM; + return -1; + } + + return fwrite(buf, 1, ret, f); +} + +ssize_t +ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { + const char *type = 0; + int ret; + + switch(tag & 0x3) { + case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; + case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; + case ASN_TAG_CLASS_CONTEXT: type = ""; break; + case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; + } + + ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); + if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ + + return ret; +} + +char * +ber_tlv_tag_string(ber_tlv_tag_t tag) { + static char buf[sizeof("[APPLICATION ]") + 32]; + + (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); + + return buf; +} + + +size_t +ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { + int tclass = BER_TAG_CLASS(tag); + ber_tlv_tag_t tval = BER_TAG_VALUE(tag); + uint8_t *buf = (uint8_t *)bufp; + uint8_t *end; + size_t required_size; + size_t i; + + if(tval <= 30) { + /* Encoded in 1 octet */ + if(size) buf[0] = (tclass << 6) | tval; + return 1; + } else if(size) { + *buf++ = (tclass << 6) | 0x1F; + size--; + } + + /* + * Compute the size of the subsequent bytes. + */ + for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { + if(tval >> i) + required_size++; + else + break; + } + + if(size < required_size) + return required_size + 1; + + /* + * Fill in the buffer, space permitting. + */ + end = buf + required_size - 1; + for(i -= 7; buf < end; i -= 7, buf++) + *buf = 0x80 | ((tval >> i) & 0x7F); + *buf = (tval & 0x7F); /* Last octet without high bit */ + + return required_size + 1; +} + diff --git a/src/tmx/Asn_J2735/src/2020/constr_CHOICE.c b/src/tmx/Asn_J2735/src/2020/constr_CHOICE.c new file mode 100644 index 000000000..5f52e3d8b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_CHOICE.c @@ -0,0 +1,358 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_TYPE_operation_t asn_OP_CHOICE = { + CHOICE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + CHOICE_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + CHOICE_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + CHOICE_decode_ber, + CHOICE_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + CHOICE_decode_xer, + CHOICE_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + CHOICE_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + CHOICE_decode_oer, + CHOICE_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + CHOICE_decode_uper, + CHOICE_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + CHOICE_decode_aper, + CHOICE_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + CHOICE_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + CHOICE_outmost_tag +}; + +ber_tlv_tag_t +CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + assert(tag_mode == 0); (void)tag_mode; + assert(tag == 0); (void)tag; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); + + if(present > 0 && present <= td->elements_count) { + const asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *) + ((const char *)ptr + elm->memb_offset); + } else { + memb_ptr = (const void *) + ((const char *)ptr + elm->memb_offset); + } + + return asn_TYPE_outmost_tag(elm->type, memb_ptr, + elm->tag_mode, elm->tag); + } else { + return (ber_tlv_tag_t)-1; + } +} + +/* + * See the definitions. + */ +static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, + const void *sptr, asn_TYPE_member_t **elm, + unsigned *present); + +int +CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + return 0; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory CHOICE element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(elm->encoding_constraints.general_constraints) { + return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, + ctfailcb, app_key); + } else { + return elm->type->encoding_constraints.general_constraints(elm->type, + memb_ptr, ctfailcb, app_key); + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: no CHOICE element given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +void +CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as CHOICE", td->name); + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); + + /* + * Free that element. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)ptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)ptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, specs->struct_size); + break; + } +} + + +/* + * The following functions functions offer protection against -fshort-enums, + * compatible with little- and big-endian machines. + * If assertion is triggered, either disable -fshort-enums, or add an entry + * here with the ->pres_size of your target stracture. + * Unless the target structure is packed, the ".present" member + * is guaranteed to be aligned properly. ASN.1 compiler itself does not + * produce packed code. + */ +unsigned +_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, + unsigned pres_size) { + const void *present_ptr; + unsigned present; + + present_ptr = ((const char *)struct_ptr) + pres_offset; + + switch(pres_size) { + case sizeof(int): present = *(const unsigned int *)present_ptr; break; + case sizeof(short): present = *(const unsigned short *)present_ptr; break; + case sizeof(char): present = *(const unsigned char *)present_ptr; break; + default: + /* ANSI C mandates enum to be equivalent to integer */ + assert(pres_size != sizeof(int)); + return 0; /* If not aborted, pass back safe value */ + } + + return present; +} + +void +_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, + unsigned present) { + void *present_ptr; + present_ptr = ((char *)struct_ptr) + pres_offset; + + switch(pres_size) { + case sizeof(int): *(unsigned int *)present_ptr = present; break; + case sizeof(short): *(unsigned short *)present_ptr = present; break; + case sizeof(char): *(unsigned char *)present_ptr = present; break; + default: + /* ANSI C mandates enum to be equivalent to integer */ + assert(pres_size != sizeof(int)); + } +} + +static const void * +_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_TYPE_member_t **elm_ptr, unsigned *present_out) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) { + *elm_ptr = NULL; + *present_out = 0; + return NULL; + } + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + *present_out = present; + + /* + * The presence index is intentionally 1-based to avoid + * treating zeroed structure as a valid one. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *const elm = &td->elements[present - 1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + *elm_ptr = elm; + return memb_ptr; + } else { + *elm_ptr = NULL; + return NULL; + } + +} + +int +CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { + asn_TYPE_member_t *aelm; + asn_TYPE_member_t *belm; + unsigned apresent = 0; + unsigned bpresent = 0; + const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); + const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); + + if(amember && bmember) { + if(apresent == bpresent) { + assert(aelm == belm); + return aelm->type->op->compare_struct(aelm->type, amember, bmember); + } else if(apresent < bpresent) { + return -1; + } else { + return 1; + } + } else if(!amember) { + return -1; + } else { + return 1; + } +} + +/* + * Return the 1-based choice variant presence index. + * Returns 0 in case of error. + */ +unsigned +CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); +} + +/* + * Sets or resets the 1-based choice variant presence index. + * In case a previous index is not zero, the currently selected structure + * member is freed and zeroed-out first. + * Returns 0 on success and -1 on error. + */ +int +CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, + unsigned present) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned old_present; + + if(!sptr) { + return -1; + } + + if(present > td->elements_count) + return -1; + + old_present = + _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + if(present == old_present) + return 0; + + if(old_present != 0) { + assert(old_present <= td->elements_count); + ASN_STRUCT_RESET(*td, sptr); + } + + _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); + + return 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_CHOICE_aper.c b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_aper.c new file mode 100644 index 000000000..41040aaee --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_aper.c @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_dec_rval_t rv; + const asn_per_constraint_t *ct = NULL; + asn_TYPE_member_t *elm = NULL; /* CHOICE's element */ + void *memb_ptr = NULL; + void **memb_ptr2 = NULL; + void *st = *sptr; + int value = 0; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted */ + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + ASN_DEBUG("CHOICE %s got index %d in range %d", + td->name, value, ct->range_bits); + if(value > ct->upper_bound) + ASN__DECODE_FAILED; + } else { + if(specs->ext_start == -1) + ASN__DECODE_FAILED; + + if(specs && specs->tag2el_count > specs->ext_start) { + value = aper_get_nsnnwn(pd, specs->tag2el_count - specs->ext_start); /* extension elements range */ + if(value < 0) ASN__DECODE_STARVED; + value += specs->ext_start; + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + } + + /* Adjust if canonical order is different from natural order */ + if(specs->from_canonical_order) + value = specs->from_canonical_order[value]; + + /* Set presence to be able to free it later */ + _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); + + elm = &td->elements[value]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); + + if(ct && ct->range_bits >= 0) { + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } else { + rv = aper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + + if(rv.code != RC_OK) + ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", + elm->name, td->name, rv.code); + return rv; +} + +asn_enc_rval_t +CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm; /* CHOICE's element */ + const asn_per_constraint_t *ct; + const void *memb_ptr; + int present; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + present = _fetch_present_idx(sptr, + specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized properly, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present <= 0 || (unsigned)present > td->elements_count) + ASN__ENCODE_FAILED; + else + present--; + + /* Adjust if canonical order is different from natural order */ + if(specs->to_canonical_order) + present = specs->to_canonical_order[present]; + + ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); + + if(ct && ct->range_bits >= 0) { + if(present < ct->lower_bound + || present > ct->upper_bound) { + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, 1, 1)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + ct = 0; + } + } + if(ct && ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, 0, 1)) + ASN__ENCODE_FAILED; + } + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, present, ct->range_bits)) + ASN__ENCODE_FAILED; + + return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, + memb_ptr, po); + } else { + asn_enc_rval_t rval = {0,0,0}; + if(specs->ext_start == -1) + ASN__ENCODE_FAILED; + int n = present - specs->ext_start; + if(n <= 63) { + if(n < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n, 7)) ASN__ENCODE_FAILED; + } else + ASN__ENCODE_FAILED; + if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, + memb_ptr, po)) + ASN__ENCODE_FAILED; + rval.encoded = 0; + ASN__ENCODED_OK(rval); + } +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_CHOICE_ber.c b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_ber.c new file mode 100644 index 000000000..7ad42c763 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_ber.c @@ -0,0 +1,447 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +/* + * Tags are canonically sorted in the tag to member table. + */ +static int +_search4tag(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) + return 0; + else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + +/* + * The decoder of the CHOICE type. + */ +asn_dec_rval_t +CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + ssize_t tag_len; /* Length of TLV's T */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + ASN_DEBUG("Decoding %s as CHOICE", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + if(tag_mode || td->tags_count) { + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, -1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) { + /* ?Subtracted below! */ + ctx->left += rval.consumed; + } + ADVANCE(rval.consumed); + } else { + ctx->left = -1; + } + + NEXT_PHASE(ctx); + + ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", + (long)ctx->left, (long)size); + + /* Fall through */ + case 1: + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + do { + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key; + + key.el_tag = tlv_tag; + t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, + specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _search4tag); + if(t2m) { + /* + * Found the element corresponding to the tag. + */ + NEXT_PHASE(ctx); + ctx->step = t2m->el_no; + break; + } else if(specs->ext_start == -1) { + ASN_DEBUG("Unexpected tag %s " + "in non-extensible CHOICE %s", + ber_tlv_tag_string(tlv_tag), td->name); + RETURN(RC_FAIL); + } else { + /* Skip this tag */ + ssize_t skip; + + ASN_DEBUG("Skipping unknown tag %s", + ber_tlv_tag_string(tlv_tag)); + + skip = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tag_len, + LEFT - tag_len); + + switch(skip) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(skip + tag_len); + RETURN(RC_OK); + } + } while(0); + + case 2: + /* + * PHASE 2. + * Read in the element. + */ + do { + asn_TYPE_member_t *elm;/* CHOICE's element */ + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + elm = &elements[ctx->step]; + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + /* Set presence to be able to free it properly at any time */ + _set_present_idx(st, specs->pres_offset, + specs->pres_size, ctx->step + 1); + /* + * Invoke the member fetch routine according to member's type + */ + rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, + memb_ptr2, ptr, LEFT, + elm->tag_mode); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + RETURN(RC_FAIL); + case RC_FAIL: /* Fatal error */ + RETURN(rval.code); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } while(0); + + NEXT_PHASE(ctx); + + /* Fall through */ + case 3: + ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", + td->name, (long)ctx->left, (long)size, + tag_mode, td->tags_count); + + if(ctx->left > 0) { + /* + * The type must be fully decoded + * by the CHOICE member-specific decoder. + */ + RETURN(RC_FAIL); + } + + if(ctx->left == -1 + && !(tag_mode || td->tags_count)) { + /* + * This is an untagged CHOICE. + * It doesn't contain nothing + * except for the member itself, including all its tags. + * The decoding is completed. + */ + NEXT_PHASE(ctx); + break; + } + + /* + * Read in the "end of data chunks"'s. + */ + while(ctx->left < 0) { + ssize_t tl; + + tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tl) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + /* + * Expected <0><0>... + */ + if(((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Correctly finished with <0><0>. + */ + ADVANCE(2); + ctx->left++; + continue; + } + } else { + ASN_DEBUG("Unexpected continuation in %s", + td->name); + RETURN(RC_FAIL); + } + + /* UNREACHABLE */ + } + + NEXT_PHASE(ctx); + case 4: + /* No meaningful work here */ + break; + } + + RETURN(RC_OK); +} + +asn_enc_rval_t +CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE element */ + asn_enc_rval_t erval = {0,0,0}; + const void *memb_ptr; + size_t computed_size = 0; + unsigned present; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("%s %s as CHOICE", + cb ? "Encoding" : "Estimating", td->name); + + present = _fetch_present_idx(sptr, + specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present == 0 || present > td->elements_count) { + if(present == 0 && td->elements_count == 0) { + /* The CHOICE is empty?! */ + erval.encoded = 0; + ASN__ENCODED_OK(erval); + } + ASN__ENCODE_FAILED; + } + + /* + * Seek over the present member of the structure. + */ + elm = &td->elements[present-1]; + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(memb_ptr == 0) { + if(elm->optional) { + erval.encoded = 0; + ASN__ENCODED_OK(erval); + } + /* Mandatory element absent */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* + * If the CHOICE itself is tagged EXPLICIT: + * T ::= [2] EXPLICIT CHOICE { ... } + * Then emit the appropriate tags. + */ + if(tag_mode == 1 || td->tags_count) { + /* + * For this, we need to pre-compute the member. + */ + ssize_t ret; + + /* Encode member with its tag */ + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + elm->tag_mode, + elm->tag, 0, 0); + if(erval.encoded == -1) + return erval; + + /* Encode CHOICE with parent or my own tag */ + ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, + cb, app_key); + if(ret == -1) + ASN__ENCODE_FAILED; + computed_size += ret; + } + + /* + * Encode the single underlying member. + */ + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + elm->tag_mode, elm->tag, + cb, app_key); + if(erval.encoded == -1) + return erval; + + ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", + (long)erval.encoded, (long)computed_size); + + erval.encoded += computed_size; + + return erval; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_CHOICE_jer.c b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_jer.c new file mode 100644 index 000000000..22d5090d0 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_jer.c @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +#undef JER_ADVANCE +#define JER_ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +asn_enc_rval_t +CHOICE_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + unsigned present = 0; + + if(!sptr) + ASN__ENCODE_FAILED; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + asn_enc_rval_t tmper = {0,0,0}; + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr = NULL; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + er.encoded = 0; + + ASN__CALLBACK3("{\n\"", 3, mname, mlen, "\": ", 2); + + tmper = elm->type->op->jer_encoder(elm->type, memb_ptr, + ilevel + 1, flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK("}", 1); + // ASN__CALLBACK3("", 1); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_CHOICE_oer.c b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_oer.c new file mode 100644 index 000000000..bc71a01cd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_oer.c @@ -0,0 +1,375 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t rval; \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#undef SET_PHASE +#define SET_PHASE(ctx, value) \ + do { \ + ctx->phase = value; \ + ctx->step = 0; \ + } while(0) + +/* + * Tags are canonically sorted in the tag to member table. + */ +static int +_search4tag(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) + return 0; + else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + +/* + * X.696 (08/2015) #8.7 Encoding of tags + */ +static ssize_t +oer_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { + ber_tlv_tag_t val; + ber_tlv_tag_t tclass; + size_t skipped; + + if(size == 0) + return 0; + + val = *(const uint8_t *)ptr; + tclass = (val >> 6); + if((val & 0x3F) != 0x3F) { + /* #8.7.1 */ + *tag_r = ((val & 0x3F) << 2) | tclass; + return 1; + } + + /* + * Each octet contains 7 bits of useful information. + * The MSB is 0 if it is the last octet of the tag. + */ + for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; skipped <= size; + ptr = ((const char *)ptr) + 1, skipped++) { + unsigned int oct = *(const uint8_t *)ptr; + if(oct & 0x80) { + val = (val << 7) | (oct & 0x7F); + /* + * Make sure there are at least 9 bits spare + * at the MS side of a value. + */ + if(val >> ((8 * sizeof(val)) - 9)) { + /* + * We would not be able to accommodate + * any more tag bits. + */ + return -1; + } + } else { + val = (val << 7) | oct; + *tag_r = (val << 2) | tclass; + return skipped; + } + } + + return 0; /* Want more */ +} + +asn_dec_rval_t +CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **struct_ptr, + const void *ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + (void)constraints; + + ASN_DEBUG("Decoding %s as CHOICE", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + switch(ctx->phase) { + case 0: { + /* + * Discover the tag. + */ + ber_tlv_tag_t tlv_tag; /* T from TLV */ + ssize_t tag_len; /* Length of TLV's T */ + + tag_len = oer_fetch_tag(ptr, size, &tlv_tag); + switch(tag_len) { + case 0: + ASN__DECODE_STARVED; + case -1: + ASN__DECODE_FAILED; + } + + do { + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key = {0, 0, 0, 0}; + key.el_tag = tlv_tag; + + t2m = (const asn_TYPE_tag2member_t *)bsearch( + &key, specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _search4tag); + if(t2m) { + /* + * Found the element corresponding to the tag. + */ + NEXT_PHASE(ctx); + ctx->step = t2m->el_no; + break; + } else if(specs->ext_start == -1) { + ASN_DEBUG( + "Unexpected tag %s " + "in non-extensible CHOICE %s", + ber_tlv_tag_string(tlv_tag), td->name); + RETURN(RC_FAIL); + } else { + /* Skip open type extension */ + ASN_DEBUG( + "Not implemented skipping open type extension for tag %s", + ber_tlv_tag_string(tlv_tag)); + RETURN(RC_FAIL); + } + } while(0); + + + ADVANCE(tag_len); + } + /* Fall through */ + case 1: { + asn_TYPE_member_t *elm = &elements[ctx->step]; /* CHOICE's element */ + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + asn_dec_rval_t rval = {0,0}; + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Set presence to be able to free it properly at any time */ + (void)CHOICE_variant_set_presence(td, st, ctx->step + 1); + + if(specs->ext_start >= 0 && specs->ext_start <= ctx->step) { + ssize_t got = + oer_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.oer_constraints, + memb_ptr2, ptr, size); + if(got < 0) ASN__DECODE_FAILED; + if(got == 0) ASN__DECODE_STARVED; + rval.code = RC_OK; + rval.consumed = got; + } else { + rval = elm->type->op->oer_decoder( + opt_codec_ctx, elm->type, + elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, + size); + } + rval.consumed += consumed_myself; + switch(rval.code) { + case RC_OK: + NEXT_PHASE(ctx); + case RC_WMORE: + break; + case RC_FAIL: + SET_PHASE(ctx, 3); /* => 3 */ + } + return rval; + } + case 2: + /* Already decoded everything */ + RETURN(RC_OK); + case 3: + /* Failed to decode, after all */ + RETURN(RC_FAIL); + } + + RETURN(RC_FAIL); +} + +/* + * X.696 (08/2015) #8.7 Encoding of tags + */ +static ssize_t +oer_put_tag(ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { + uint8_t tclass = BER_TAG_CLASS(tag); + ber_tlv_tag_t tval = BER_TAG_VALUE(tag); + + if(tval < 0x3F) { + uint8_t b = (uint8_t)((tclass << 6) | tval); + if(cb(&b, 1, app_key) < 0) { + return -1; + } + return 1; + } else { + uint8_t buf[1 + 2 * sizeof(tval)]; + uint8_t *b = &buf[sizeof(buf)-1]; /* Last addressable */ + size_t encoded; + for(; ; tval >>= 7) { + if(tval >> 7) { + *b-- = 0x80 | (tval & 0x7f); + } else { + *b-- = tval & 0x7f; + break; + } + } + *b = (uint8_t)((tclass << 6) | 0x3F); + encoded = sizeof(buf) - (b - buf); + if(cb(b, encoded, app_key) < 0) { + return -1; + } + return encoded; + } + +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +CHOICE_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE element */ + unsigned present; + const void *memb_ptr; + ber_tlv_tag_t tag; + ssize_t tag_len; + asn_enc_rval_t er = {0, 0, 0}; + + (void)constraints; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("OER %s encoding as CHOICE", td->name); + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN_DEBUG("CHOICE %s member is not selected", td->name); + ASN__ENCODE_FAILED; + } + + elm = &td->elements[present-1]; + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(memb_ptr == 0) { + /* Mandatory element absent */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + tag = asn_TYPE_outmost_tag(elm->type, memb_ptr, elm->tag_mode, elm->tag); + if(tag == 0) { + ASN__ENCODE_FAILED; + } + + tag_len = oer_put_tag(tag, cb, app_key); + if(tag_len < 0) { + ASN__ENCODE_FAILED; + } + + if(specs->ext_start >= 0 && (unsigned)specs->ext_start <= (present-1)) { + ssize_t encoded = oer_open_type_put(elm->type, + elm->encoding_constraints.oer_constraints, + memb_ptr, cb, app_key); + if(encoded < 0) ASN__ENCODE_FAILED; + er.encoded = tag_len + encoded; + } else { + er = elm->type->op->oer_encoder( + elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, + app_key); + if(er.encoded >= 0) er.encoded += tag_len; + } + + return er; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_CHOICE_print.c b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_print.c new file mode 100644 index 000000000..a97202fc2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_print.c @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + /* + * Print that element. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* Print member's name and stuff */ + if(0) { + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + } + + return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, + cb, app_key); + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_CHOICE_rfill.c b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_rfill.c new file mode 100644 index 000000000..fd0a10163 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_rfill.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_random_fill_result_t res; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + const asn_TYPE_member_t *elm; + unsigned present; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *st = *sptr; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + present = asn_random_between(1, td->elements_count); + elm = &td->elements[present - 1]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + res = elm->type->op->random_fill(elm->type, memb_ptr2, + &elm->encoding_constraints, max_length); + _set_present_idx(st, specs->pres_offset, specs->pres_size, present); + if(res.code == ARFILL_OK) { + *sptr = st; + } else { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + } + + return res; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_CHOICE_uper.c b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_uper.c new file mode 100644 index 000000000..77aab6d6a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_uper.c @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_dec_rval_t rv; + const asn_per_constraint_t *ct; + asn_TYPE_member_t *elm; /* CHOICE's element */ + void *memb_ptr; + void **memb_ptr2; + void *st = *sptr; + int value; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted */ + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + ASN_DEBUG("CHOICE %s got index %d in range %d", + td->name, value, ct->range_bits); + if(value > ct->upper_bound) + ASN__DECODE_FAILED; + } else { + if(specs->ext_start == -1) + ASN__DECODE_FAILED; + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->ext_start; + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + + /* Adjust if canonical order is different from natural order */ + if(specs->from_canonical_order) { + ASN_DEBUG("CHOICE presence from wire %d", value); + value = specs->from_canonical_order[value]; + ASN_DEBUG("CHOICE presence index effective %d", value); + } + + /* Set presence to be able to free it later */ + _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); + + elm = &td->elements[value]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); + + if(ct && ct->range_bits >= 0) { + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } else { + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } + + if(rv.code != RC_OK) + ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", + elm->name, td->name, rv.code); + return rv; +} + +asn_enc_rval_t +CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE's element */ + const asn_per_constraint_t *ct; + const void *memb_ptr; + unsigned present; + int present_enc; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s as CHOICE", td->name); + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized properly, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present == 0 || present > td->elements_count) + ASN__ENCODE_FAILED; + else + present--; + + ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); + + /* Adjust if canonical order is different from natural order */ + if(specs->to_canonical_order) + present_enc = specs->to_canonical_order[present]; + else + present_enc = present; + + if(ct && ct->range_bits >= 0) { + if(present_enc < ct->lower_bound + || present_enc > ct->upper_bound) { + if(ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG( + "CHOICE member %d (enc %d) is an extension (%ld..%ld)", + present, present_enc, ct->lower_bound, ct->upper_bound); + if(per_put_few_bits(po, 1, 1)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + ct = 0; + } + } + if(ct && ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", + present, present_enc, ct->lower_bound, ct->upper_bound); + if(per_put_few_bits(po, 0, 1)) + ASN__ENCODE_FAILED; + } + + + elm = &td->elements[present]; + ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, + present_enc); + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, present_enc, ct->range_bits)) + ASN__ENCODE_FAILED; + + return elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); + } else { + asn_enc_rval_t rval = {0,0,0}; + if(specs->ext_start == -1) ASN__ENCODE_FAILED; + if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) + ASN__ENCODE_FAILED; + if(uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, po)) + ASN__ENCODE_FAILED; + rval.encoded = 0; + ASN__ENCODED_OK(rval); + } +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_CHOICE_xer.c b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_xer.c new file mode 100644 index 000000000..45b4290a8 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_CHOICE_xer.c @@ -0,0 +1,316 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval; /* Return value of a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* Element index */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + if(ctx->phase == 0 && !*xml_tag) + ctx->phase = 1; /* Skip the outer tag checking phase */ + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + * Phase 3: Only waiting for closing tag. + * Phase 4: Skipping unknown extensions. + * Phase 5: PHASED OUT + */ + for(edx = ctx->step; ctx->phase <= 4;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + asn_TYPE_member_t *elm; + + /* + * Go inside the member. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + unsigned old_present; + + elm = &td->elements[edx]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Start/Continue decoding the inner member */ + tmprval = elm->type->op->xer_decoder(opt_codec_ctx, + elm->type, memb_ptr2, + elm->name, + buf_ptr, size); + XER_ADVANCE(tmprval.consumed); + ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", + elm->type->name, tmprval.code); + old_present = _fetch_present_idx(st, + specs->pres_offset, + specs->pres_size); + assert(old_present == 0 || old_present == edx + 1); + /* Record what we've got */ + _set_present_idx(st, + specs->pres_offset, + specs->pres_size, edx + 1); + if(tmprval.code != RC_OK) + RETURN(tmprval.code); + ctx->phase = 3; + /* Fall through */ + } + + /* No need to wait for closing tag; special mode. */ + if(ctx->phase == 3 && !*xml_tag) { + ctx->phase = 5; /* Phase out */ + RETURN(RC_OK); + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", + ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', + ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', + ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', + ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', + xml_tag, tcv); + + /* Skip the extensions section */ + if(ctx->phase == 4) { + ASN_DEBUG("skip_unknown(%d, %ld)", + tcv, (long)ctx->left); + switch(xer_skip_unknown(tcv, &ctx->left)) { + case -1: + ctx->phase = 5; + RETURN(RC_FAIL); + case 1: + ctx->phase = 3; + /* Fall through */ + case 0: + XER_ADVANCE(ch_size); + continue; + case 2: + ctx->phase = 3; + break; + } + } + + switch(tcv) { + case XCT_BOTH: + break; /* No CHOICE? */ + case XCT_CLOSING: + if(ctx->phase != 3) + break; + XER_ADVANCE(ch_size); + ctx->phase = 5; /* Phase out */ + RETURN(RC_OK); + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + if(ctx->phase != 1) + break; /* Really unexpected */ + + /* + * Search which inner member corresponds to this tag. + */ + for(edx = 0; edx < td->elements_count; edx++) { + elm = &td->elements[edx]; + tcv = xer_check_tag(buf_ptr,ch_size,elm->name); + switch(tcv) { + case XCT_BOTH: + case XCT_OPENING: + /* + * Process this member. + */ + ctx->step = edx; + ctx->phase = 2; + break; + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + continue; + default: + edx = td->elements_count; + break; /* Phase out */ + } + break; + } + if(edx != td->elements_count) + continue; + + /* It is expected extension */ + if(specs->ext_start != -1) { + ASN_DEBUG("Got anticipated extension"); + /* + * Check for (XCT_BOTH or XCT_UNKNOWN_BO) + * By using a mask. Only record a pure + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found without body */ + ctx->phase = 3; /* Terminating */ + } else { + ctx->left = 1; + ctx->phase = 4; /* Skip ...'s */ + } + XER_ADVANCE(ch_size); + continue; + } + + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" + " (ph=%d, tag=%s)", + ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', + ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', + ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', + ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', + td->name, ctx->phase, xml_tag); + break; + } + + ctx->phase = 5; /* Phase out, just in case */ + RETURN(RC_FAIL); +} + +asn_enc_rval_t +CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + unsigned present = 0; + + if(!sptr) + ASN__ENCODE_FAILED; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + asn_enc_rval_t tmper = {0,0,0}; + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr = NULL; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + er.encoded = 0; + + if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, + ilevel + 1, flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("", 1); + } + + if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE.c new file mode 100644 index 000000000..8397d0c1b --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE.c @@ -0,0 +1,197 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_TYPE_operation_t asn_OP_SEQUENCE = { + SEQUENCE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + SEQUENCE_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + SEQUENCE_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + SEQUENCE_decode_ber, + SEQUENCE_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + SEQUENCE_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + SEQUENCE_decode_oer, + SEQUENCE_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + SEQUENCE_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; + +void +SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + size_t edx; + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_struct_ctx_t *ctx; /* Decoder context */ + + if(!td || !sptr) + return; + + ASN_DEBUG("Freeing %s as SEQUENCE", td->name); + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)sptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)sptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + /* Clean parsing context */ + ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); + FREEMEM(ctx->ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset( + sptr, 0, + ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); + break; + } +} + +int +SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t edx; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Iterate over structure members and check their validity. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + asn_constr_check_f *constr; + int ret; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + continue; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + constr = elm->encoding_constraints.general_constraints; + if(!constr) + constr = elm->type->encoding_constraints.general_constraints; + + ret = constr(elm->type, memb_ptr, ctfailcb, app_key); + if(ret) return ret; + } + + return 0; +} + +int +SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + size_t edx; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *amemb; + const void *bmemb; + int ret; + + if(elm->flags & ATF_POINTER) { + amemb = + *(const void *const *)((const char *)aptr + elm->memb_offset); + bmemb = + *(const void *const *)((const char *)bptr + elm->memb_offset); + if(!amemb) { + if(!bmemb) continue; + if(elm->default_value_cmp + && elm->default_value_cmp(bmemb) == 0) { + /* A is absent, but B is present and equal to DEFAULT */ + continue; + } + return -1; + } else if(!bmemb) { + if(elm->default_value_cmp + && elm->default_value_cmp(amemb) == 0) { + /* B is absent, but A is present and equal to DEFAULT */ + continue; + } + return 1; + } + } else { + amemb = (const void *)((const char *)aptr + elm->memb_offset); + bmemb = (const void *)((const char *)bptr + elm->memb_offset); + } + + ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); + if(ret != 0) return ret; + } + + return 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF.c new file mode 100644 index 000000000..9c5d6cded --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF.c @@ -0,0 +1,92 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { + SEQUENCE_OF_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + SEQUENCE_OF_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + SEQUENCE_OF_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + SEQUENCE_OF_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ + SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ + SEQUENCE_OF_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + SEQUENCE_OF_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; + +int +SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); + const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); + ssize_t idx; + + if(a && b) { + ssize_t common_length = (a->count < b->count ? a->count : b->count); + for(idx = 0; idx < common_length; idx++) { + int ret = td->elements->type->op->compare_struct( + td->elements->type, a->array[idx], b->array[idx]); + if(ret) return ret; + } + + if(idx < b->count) /* more elements in b */ + return -1; /* a is shorter, so put it first */ + if(idx < a->count) return 1; + + } else if(!a) { + return -1; + } else if(!b) { + return 1; + } + + return 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_aper.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_aper.c new file mode 100644 index 000000000..ff3ae8bc1 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_aper.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_anonymous_sequence_ *list; + const asn_per_constraint_t *ct; + asn_enc_rval_t er = {0,0,0}; + asn_TYPE_member_t *elm = td->elements; + int seq; + + if(!sptr) ASN__ENCODE_FAILED; + list = _A_CSEQUENCE_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = (list->count < ct->lower_bound + || list->count > ct->upper_bound); + ASN_DEBUG("lb %lld ub %lld %s", + (long long int)ct->lower_bound, + (long long int)ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) + ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) + ASN__ENCODE_FAILED; + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ +/* + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; +*/ + if (ct->lower_bound == ct->upper_bound && ct->upper_bound < 65536) { + /* No length determinant */ + } else if (aper_put_length(po, ct->lower_bound, ct->upper_bound, list->count - ct->lower_bound, 0) < 0) + ASN__ENCODE_FAILED; + } + + for(seq = -1; seq < list->count;) { + ssize_t mayEncode; + int need_eom = 0; + if(seq < 0) seq = 0; + if(ct && ct->effective_bits >= 0) { + mayEncode = list->count; + } else { + mayEncode = aper_put_length(po, -1, -1, list->count - seq, &need_eom); + if(mayEncode < 0) ASN__ENCODE_FAILED; + } + + while(mayEncode--) { + void *memb_ptr = list->array[seq++]; + if(!memb_ptr) ASN__ENCODE_FAILED; + er = elm->type->op->aper_encoder(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, po); + if(er.encoded == -1) + ASN__ENCODE_FAILED; + } + + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_ber.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_ber.c new file mode 100644 index 000000000..178f8654d --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_ber.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * The DER encoder of the SEQUENCE OF type. + */ +asn_enc_rval_t +SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); + size_t computed_size = 0; + ssize_t encoding_size = 0; + asn_enc_rval_t erval = {0,0,0}; + int edx; + + ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) continue; + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + 0, elm->tag, + 0, 0); + if(erval.encoded == -1) + return erval; + computed_size += erval.encoded; + } + + /* + * Encode the TLV for the sequence itself. + */ + encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, + cb, app_key); + if(encoding_size == -1) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = ptr; + return erval; + } + + computed_size += encoding_size; + if(!cb) { + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } + + ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); + + /* + * Encode all members. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) continue; + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + 0, elm->tag, + cb, app_key); + if(erval.encoded == -1) + return erval; + encoding_size += erval.encoded; + } + + if(computed_size != (size_t)encoding_size) { + /* + * Encoded size is not equal to the computed size. + */ + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = ptr; + } else { + erval.encoded = computed_size; + erval.structure_ptr = 0; + erval.failed_type = 0; + } + + return erval; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_jer.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_jer.c new file mode 100644 index 000000000..4c366a6ff --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_jer.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +SEQUENCE_OF_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0,0,0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 + : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = 0; + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + ASN__CALLBACK("[", 1); + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper = {0,0,0}; + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("{\"", 2, mname, mlen, "\":", 2); + } + + tmper = elm->type->op->jer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); + ASN__CALLBACK3("\"", 1, name, len, "\"", 1); + } + + if(mname) { + ASN__CALLBACK("}", 1); + } + if (i != list->count - 1) { + ASN__CALLBACK(",", 1); + } + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + ASN__CALLBACK("]", 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_uper.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_uper.c new file mode 100644 index 000000000..eb20a0701 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_uper.c @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_anonymous_sequence_ *list; + const asn_per_constraint_t *ct; + asn_enc_rval_t er = {0,0,0}; + const asn_TYPE_member_t *elm = td->elements; + size_t encoded_edx; + + if(!sptr) ASN__ENCODE_FAILED; + list = _A_CSEQUENCE_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; + } else if(list->count == 0) { + /* When the list is empty add only the length determinant + * X.691, #20.6 and #11.9.4.1 + */ + if (uper_put_length(po, 0, 0)) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } + + for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { + ssize_t may_encode; + size_t edx; + int need_eom = 0; + + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + uper_put_length(po, list->count - encoded_edx, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) ASN__ENCODE_FAILED; + er = elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, memb_ptr, + po); + if(er.encoded == -1) ASN__ENCODE_FAILED; + } + + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + + encoded_edx += may_encode; + } + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_xer.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_xer.c new file mode 100644 index 000000000..7bd323677 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_OF_xer.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0,0,0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 + : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = (flags & XER_F_CANONICAL); + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper = {0,0,0}; + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + } + + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); + ASN__CALLBACK3("<", 1, name, len, "/>", 2); + } + + if(mname) { + ASN__CALLBACK3("", 1); + } + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_aper.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_aper.c new file mode 100644 index 000000000..895b6daf3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_aper.c @@ -0,0 +1,457 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +asn_dec_rval_t +SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + size_t edx; + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); + + /* Handle extensions */ + if(specs->first_extension < 0) { + extpresent = 0; + } else { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) ASN__DECODE_STARVED; + } + + /* Prepare a place and read-in the presence bitmap */ + memset(&opmd, 0, sizeof(opmd)); + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) ASN__DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + ASN__DECODE_STARVED; + } + opmd.buffer = opres; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ +#if 0 + int padding; +#endif + + if(IN_EXTENSION_GROUP(specs, edx)) + continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } +#if 0 + /* Get Padding */ + padding = (8 - (pd->moved % 8)) % 8; + if(padding > 0) + ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); +#if 0 /* old way of removing padding */ + per_get_few_bits(pd, padding); +#else /* Experimental fix proposed by @mhanna123 */ + if(edx != (td->elements_count-1)) + per_get_few_bits(pd, padding); + else { + if(specs->roms_count && (padding > 0)) + ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); + else + per_get_few_bits(pd, padding); + } +#endif /* dealing with padding */ +#endif + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + if(elm->default_value_set(memb_ptr2)) { + FREEMEM(opres); + ASN__DECODE_FAILED; + } + ASN_DEBUG("Filled-in default"); + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); + + if(elm->flags & ATF_OPEN_TYPE) { + if (OPEN_TYPE_aper_is_unknown_type(td, st, elm)) { + rv = OPEN_TYPE_aper_unknown_type_discard_bytes(pd); + FREEMEM(opres); + return rv; + } + rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); + } else { + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* Optionality map is not needed anymore */ + FREEMEM(opres); + + /* + * Deal with extensions. + */ + if(extpresent) { + ssize_t bmlength; + uint8_t *epres; /* Presence of extension members */ + asn_per_data_t epmd; + + bmlength = aper_get_nslength(pd); + if(bmlength < 0) ASN__DECODE_STARVED; + + ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); + + epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); + if(!epres) ASN__DECODE_STARVED; + + /* Get the extensions map */ + if(per_get_many_bits(pd, epres, 0, bmlength)) + ASN__DECODE_STARVED; + + memset(&epmd, 0, sizeof(epmd)); + epmd.buffer = epres; + epmd.nbits = bmlength; + ASN_DEBUG("Read in extensions bitmap for %s of %zd bits (%x..)", + td->name, bmlength, *epres); + + /* Deal with padding */ + if (aper_get_align(pd) < 0) + ASN__DECODE_STARVED; + + /* Go over extensions and read them in */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + int present; + + if(!IN_EXTENSION_GROUP(specs, edx)) { + ASN_DEBUG("%zu is not extension", edx); + continue; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (void *)((char *)st + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + present = per_get_few_bits(&epmd, 1); + if(present <= 0) { + if(present < 0) break; /* No more extensions */ + continue; + } + + ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); + rv = aper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + if(rv.code != RC_OK) { + FREEMEM(epres); + return rv; + } + } + + /* Skip over overflow extensions which aren't present + * in this system's version of the protocol */ + for(;;) { + ASN_DEBUG("Getting overflow extensions"); + switch(per_get_few_bits(&epmd, 1)) { + case -1: + break; + case 0: + continue; + default: + if(aper_open_type_skip(opt_codec_ctx, pd)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + } + break; + } + + FREEMEM(epres); + } + + /* Fill DEFAULT members in extensions */ + for(edx = specs->roms_count; edx < specs->roms_count + + specs->aoms_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void **memb_ptr2; /* Pointer to member pointer */ + + if(!elm->default_value_set) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + if(*memb_ptr2) continue; + } else { + continue; /* Extensions are all optionals */ + } + + /* Set default value */ + if(elm->default_value_set(memb_ptr2)) { + ASN__DECODE_FAILED; + } + } + + rv.consumed = 0; + rv.code = RC_OK; + return rv; +} + +static int +SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, + const void *sptr, + asn_per_outp_t *po1, asn_per_outp_t *po2) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + int exts_present = 0; + int exts_count = 0; + size_t edx; + + if(specs->first_extension < 0) { + return 0; + } + + /* Find out which extensions are present */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + int present; + + if(!IN_EXTENSION_GROUP(specs, edx)) { + ASN_DEBUG("%s (@%zu) is not extension", elm->type->name, edx); + continue; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + ASN_DEBUG("checking %s (@%zu) present => %d", + elm->type->name, edx, present); + exts_count++; + exts_present += present; + + /* Encode as presence marker */ + if(po1 && per_put_few_bits(po1, present, 1)) + return -1; + /* Encode as open type field */ + if(po2 && present && aper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po2)) + return -1; + + } + + return exts_present ? exts_count : 0; +} + +asn_enc_rval_t +SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + int n_extensions; + size_t edx; + size_t i; + + (void)constraints; + + if(!sptr) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); + + /* + * X.691#18.1 Whether structure is extensible + * and whether to encode extensions + */ + if(specs->first_extension < 0) { + n_extensions = 0; /* There are no extensions to encode */ + } else { + n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); + if(n_extensions < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + /* Encode a presence bitmap */ + for(i = 0; i < specs->roms_count; i++) { + asn_TYPE_member_t *elm; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + int present; + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + /* Eliminate default values */ + if(present && elm->default_value_cmp + && elm->default_value_cmp(*memb_ptr2) == 0) + present = 0; + + ASN_DEBUG("Element %s %s %s->%s is %s", + elm->flags & ATF_POINTER ? "ptr" : "inline", + elm->default_value_cmp ? "def" : "wtv", + td->name, elm->name, present ? "present" : "absent"); + if(per_put_few_bits(po, present, 1)) + ASN__ENCODE_FAILED; + } + + /* + * Encode the sequence ROOT elements. + */ + ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, + td->elements_count); + for(edx = 0; + edx < ((specs->first_extension < 0) ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + + if(IN_EXTENSION_GROUP(specs, edx)) + continue; + + ASN_DEBUG("About to encode %s", elm->type->name); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %zu not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + ASN_DEBUG("Encoding %s->%s", td->name, elm->name); + er = elm->type->op->aper_encoder(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po); + if(er.encoded == -1) + return er; + } + + /* No extensions to encode */ + if(!n_extensions) ASN__ENCODED_OK(er); + + ASN_DEBUG("Length of %d bit-map", n_extensions); + /* #18.8. Write down the presence bit-map length. */ + if(aper_put_nslength(po, n_extensions)) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Bit-map of %d elements", n_extensions); + /* #18.7. Encoding the extensions presence bit-map. */ + /* TODO: act upon NOTE in #18.7 for canonical PER */ + if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Writing %d extensions", n_extensions); + /* #18.9. Encode extensions as open type fields. */ + if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_ber.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_ber.c new file mode 100644 index 000000000..e982172d3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_ber.c @@ -0,0 +1,612 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#undef PHASE_OUT +#define PHASE_OUT(ctx) \ + do { \ + ctx->phase = 10; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +/* + * Tags are canonically sorted in the tag2element map. + */ +static int +_t2e_cmp(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) { + if(a->el_no > b->el_no) + return 1; + /* + * Important: we do not check + * for a->el_no <= b->el_no! + */ + return 0; + } else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + +/* + * The decoder of the SEQUENCE type. + */ +asn_dec_rval_t +SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + const asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* SEQUENCE element's index */ + + ASN_DEBUG("Decoding %s as SEQUENCE", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, 1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) + ctx->left += rval.consumed; /* ?Subtracted below! */ + ADVANCE(rval.consumed); + + NEXT_PHASE(ctx); + + ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", + (long)ctx->left, (long)size); + + /* Fall through */ + case 1: + /* + * PHASE 1. + * From the place where we've left it previously, + * try to decode the next member from the list of + * this structure's elements. + * (ctx->step) stores the member being processed + * between invocations and the microphase {0,1} of parsing + * that member: + * step = ( * 2 + ). + */ + for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; + edx++, ctx->step = (ctx->step & ~1) + 2) { + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + ssize_t tag_len; /* Length of TLV's T */ + size_t opt_edx_end; /* Next non-optional element */ + size_t n; + int use_bsearch; + + if(ctx->step & 1) + goto microphase2; + + /* + * MICROPHASE 1: Synchronize decoding. + */ + ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" + " opt=%d ec=%d", + td->name, (int)ctx->left, edx, + elements[edx].flags, elements[edx].optional, + td->elements_count); + + if(ctx->left == 0 /* No more stuff is expected */ + && ( + /* Explicit OPTIONAL specification reaches the end */ + (edx + elements[edx].optional == td->elements_count) || + /* All extensions are optional */ + IN_EXTENSION_GROUP(specs, edx))) { + ASN_DEBUG("End of SEQUENCE %s", td->name); + /* + * Found the legitimate end of the structure. + */ + PHASE_OUT(ctx); + RETURN(RC_OK); + } + + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " + "(%s) is %s encoded in %d bytes, of frame %ld", + td->name, edx, elements[edx].name, + ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) { + RETURN(RC_FAIL); + } else { + RETURN(RC_WMORE); + } + } else if(((const uint8_t *)ptr)[1] == 0) { + ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, + elements[edx].optional, td->elements_count); + if((edx + elements[edx].optional == td->elements_count) + || IN_EXTENSION_GROUP(specs, edx)) { + /* + * Yeah, baby! Found the terminator + * of the indefinite length structure. + */ + /* + * Proceed to the canonical + * finalization function. + * No advancing is necessary. + */ + goto phase3; + } + } + } + + /* + * Find the next available type with this tag. + */ + use_bsearch = 0; + opt_edx_end = edx + elements[edx].optional + 1; + if(opt_edx_end > td->elements_count) + opt_edx_end = td->elements_count; /* Cap */ + else if(opt_edx_end - edx > 8) { + /* Limit the scope of linear search... */ + opt_edx_end = edx + 8; + use_bsearch = 1; + /* ... and resort to bsearch() */ + } + for(n = edx; n < opt_edx_end; n++) { + if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { + /* + * Found element corresponding to the tag + * being looked at. + * Reposition over the right element. + */ + edx = n; + ctx->step = 1 + 2 * edx; /* Remember! */ + goto microphase2; + } else if(elements[n].flags & ATF_ANY_TYPE) { + /* + * This is the ANY type, which may bear + * any flag whatsoever. + */ + edx = n; + ctx->step = 1 + 2 * edx; /* Remember! */ + goto microphase2; + } else if(elements[n].tag == (ber_tlv_tag_t)-1) { + use_bsearch = 1; + break; + } + } + if(use_bsearch) { + /* + * Resort to a binary search over + * sorted array of tags. + */ + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key = {0, 0, 0, 0}; + key.el_tag = tlv_tag; + key.el_no = edx; + t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, + specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _t2e_cmp); + if(t2m) { + const asn_TYPE_tag2member_t *best = 0; + const asn_TYPE_tag2member_t *t2m_f, *t2m_l; + size_t edx_max = edx + elements[edx].optional; + /* + * Rewind to the first element with that tag, + * `cause bsearch() does not guarantee order. + */ + t2m_f = t2m + t2m->toff_first; + t2m_l = t2m + t2m->toff_last; + for(t2m = t2m_f; t2m <= t2m_l; t2m++) { + if(t2m->el_no > edx_max) break; + if(t2m->el_no < edx) continue; + best = t2m; + } + if(best) { + edx = best->el_no; + ctx->step = 1 + 2 * edx; + goto microphase2; + } + } + n = opt_edx_end; + } + if(n == opt_edx_end) { + /* + * If tag is unknown, it may be either + * an unknown (thus, incorrect) tag, + * or an extension (...), + * or an end of the indefinite-length structure. + */ + if(!IN_EXTENSION_GROUP(specs, + edx + elements[edx].optional)) { + ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", + ber_tlv_tag_string(tlv_tag), edx); + ASN_DEBUG("Expected tag %s (%s)%s", + ber_tlv_tag_string(elements[edx].tag), + elements[edx].name, + elements[edx].optional ?" or alternatives":""); + RETURN(RC_FAIL); + } else { + /* Skip this tag */ + ssize_t skip; + edx += elements[edx].optional; + + ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", + ber_tlv_tag_string(tlv_tag), edx); + skip = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tag_len, + LEFT - tag_len); + ASN_DEBUG("Skip length %d in %s", + (int)skip, td->name); + switch(skip) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(skip + tag_len); + ctx->step -= 2; + edx--; + continue; /* Try again with the next tag */ + } + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + ctx->step |= 1; /* Confirm entering next microphase */ + microphase2: + ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elements[edx].flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elements[edx].memb_offset; + memb_ptr2 = &memb_ptr; + } + /* + * Invoke the member fetch routine according to member's type + */ + if(elements[edx].flags & ATF_OPEN_TYPE) { + rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); + } else { + rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, + elements[edx].type, + memb_ptr2, ptr, LEFT, + elements[edx].tag_mode); + } + ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " + "in %d bytes rval.code %d, size=%d", + td->name, edx, elements[edx].type->name, + (int)LEFT, (int)rval.consumed, rval.code, (int)size); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", + (long)ctx->left, (long)size); + /* Fall through */ + case RC_FAIL: /* Fatal error */ + RETURN(RC_FAIL); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } /* for(all structure members) */ + + phase3: + ctx->phase = 3; + /* Fall through */ + case 3: /* 00 and other tags expected */ + case 4: /* only 00's expected */ + + ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", + td->name, (long)ctx->left, (long)size); + + /* + * Skip everything until the end of the SEQUENCE. + */ + while(ctx->left) { + ssize_t tl, ll; + + tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tl) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + /* + * If expected <0><0>... + */ + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Correctly finished with <0><0>. + */ + ADVANCE(2); + ctx->left++; + ctx->phase = 4; + continue; + } + } + + if(!IN_EXTENSION_GROUP(specs, td->elements_count) + || ctx->phase == 4) { + ASN_DEBUG("Unexpected continuation " + "of a non-extensible type " + "%s (SEQUENCE): %s", + td->name, + ber_tlv_tag_string(tlv_tag)); + RETURN(RC_FAIL); + } + + ll = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tl, LEFT - tl); + switch(ll) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(tl + ll); + } + + PHASE_OUT(ctx); + } + + RETURN(RC_OK); +} + + +/* + * The DER encoder of the SEQUENCE type. + */ +asn_enc_rval_t +SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t computed_size = 0; + asn_enc_rval_t erval = {0,0,0}; + ssize_t ret; + size_t edx; + + ASN_DEBUG("%s %s as SEQUENCE", + cb?"Encoding":"Estimating", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, + elm->tag_mode, elm->tag, + 0, 0); + if(erval.encoded == -1) + return erval; + computed_size += erval.encoded; + ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", + edx, elm->name, (long)erval.encoded); + } + + /* + * Encode the TLV for the sequence itself. + */ + ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); + ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); + if(ret == -1) + ASN__ENCODE_FAILED; + erval.encoded = computed_size + ret; + + if(!cb) ASN__ENCODED_OK(erval); + + /* + * Encode all members. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + asn_enc_rval_t tmperval = {0,0,0}; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) continue; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, + elm->tag_mode, elm->tag, cb, app_key); + if(tmperval.encoded == -1) + return tmperval; + computed_size -= tmperval.encoded; + ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", + edx, elm->name, td->name, (long)tmperval.encoded); + } + + if(computed_size != 0) + /* + * Encoded size is not equal to the computed size. + */ + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(erval); +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_jer.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_jer.c new file mode 100644 index 000000000..6451f0ca6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_jer.c @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t SEQUENCE_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum jer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0,0,0}; + int xcan = 0; + asn_TYPE_descriptor_t *tmp_def_val_td = 0; + void *tmp_def_val = 0; + size_t edx; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + + int bAddComma = 0; + ASN__CALLBACK("{\n", 2); + for(edx = 0; edx < td->elements_count; edx++) { + asn_enc_rval_t tmper = {0,0,0}; + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + assert(tmp_def_val == 0); + if(elm->default_value_set) { + if(elm->default_value_set(&tmp_def_val)) { + ASN__ENCODE_FAILED; + } else { + memb_ptr = tmp_def_val; + tmp_def_val_td = elm->type; + } + } else if(elm->optional) { + continue; + } else { + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if (bAddComma == 1) { + ASN__CALLBACK(",", 1); + bAddComma = 0; + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("\"", 1, mname, mlen, "\": ", 3); + + /* Print the member itself */ + tmper = elm->type->op->jer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmp_def_val) { + ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + tmp_def_val = 0; + } + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if (edx != td->elements_count - 1) { + bAddComma = 1; + } + } + ASN__CALLBACK("}", 1); + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_oer.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_oer.c new file mode 100644 index 000000000..a3bdb7bda --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_oer.c @@ -0,0 +1,557 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#undef PHASE_OUT +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +#define IN_ROOT_GROUP_PRED(edx) \ + edx < (specs->first_extension < 0 ? td->elements_count \ + : (size_t)specs->first_extension) + +#define FOR_IN_ROOT_GROUP(edx) for(edx = 0; IN_ROOT_GROUP_PRED(edx); edx++) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself;\ + return rval; \ + } while(0) + +/* + * Return pointer to a member. + */ +static void ** +element_ptrptr(void *struct_ptr, asn_TYPE_member_t *elm, void **tmp_save_ptr) { + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + return (void **)((char *)struct_ptr + elm->memb_offset); + } else { + assert(tmp_save_ptr); + *tmp_save_ptr = (void *)((char *)struct_ptr + elm->memb_offset); + return tmp_save_ptr; + } +} + +static const void * +element_ptr(const void *struct_ptr, const asn_TYPE_member_t *elm) { + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + return *(const void *const *)((const char *)struct_ptr + + elm->memb_offset); + } else { + return (const void *)((const char *)struct_ptr + elm->memb_offset); + } +} + +asn_dec_rval_t +SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **struct_ptr, + const void *ptr, size_t size) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_dec_rval_t rval = {RC_OK, 0}; + void *st = *struct_ptr; /* Target structure */ + asn_struct_ctx_t *ctx; /* Decoder context */ + size_t consumed_myself = 0; /* Consumed bytes from ptr. */ + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously. + */ + switch(ctx->phase) { + case 0: { + /* + * Fetch preamble. + */ + asn_bit_data_t *preamble; + int has_extensions_bit = (specs->first_extension >= 0); + size_t preamble_bits = (has_extensions_bit + specs->roms_count); + size_t preamble_bytes = ((7 + preamble_bits) >> 3); + + ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name); + + ASN_DEBUG( + "Expecting preamble bits %" ASN_PRI_SIZE " for %s (including %d extension bits)", + preamble_bits, td->name, has_extensions_bit); + + if(preamble_bytes > size) { + ASN__DECODE_STARVED; + } + + preamble = asn_bit_data_new_contiguous(ptr, preamble_bits); + if(!preamble) { + RETURN(RC_FAIL); + } + preamble->nboff = has_extensions_bit; + ctx->ptr = preamble; + ADVANCE(preamble_bytes); + } + NEXT_PHASE(ctx); + /* FALL THROUGH */ + case 1: { + /* Decode components of the extension root */ + asn_bit_data_t *preamble = ctx->ptr; + size_t edx; + + ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1 (Root)", td->name); + + assert(preamble); + + for(edx = (ctx->step >> 1); IN_ROOT_GROUP_PRED(edx); + edx++, ctx->step = (ctx->step & ~1) + 2) { + asn_TYPE_member_t *elm = &td->elements[edx]; + + ASN_DEBUG("Decoding %s->%s", td->name, elm->name); + + assert(!IN_EXTENSION_GROUP(specs, edx)); + + if(ctx->step & 1) { + goto microphase2_decode_continues; + } + + + if(elm->optional) { + int32_t present = asn_get_few_bits(preamble, 1); + if(present < 0) { + ASN_DEBUG("Presence map ended prematurely: %d", present); + RETURN(RC_FAIL); + } else if(present == 0) { + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + void *tmp; + if(elm->default_value_set( + element_ptrptr(st, elm, &tmp))) { + RETURN(RC_FAIL); + } + } + /* The member is not present. */ + continue; + } + /* Present OPTIONAL or DEFAULT component. */ + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + ctx->step |= 1; /* Confirm entering next microphase */ + microphase2_decode_continues: + if(elm->flags & ATF_OPEN_TYPE) { + rval = OPEN_TYPE_oer_get(opt_codec_ctx, td, st, elm, ptr, size); + } else { + void *save_memb_ptr; /* Temporary reference. */ + void **memb_ptr2; /* Pointer to a pointer to a memmber */ + + memb_ptr2 = element_ptrptr(st, elm, &save_memb_ptr); + + rval = elm->type->op->oer_decoder( + opt_codec_ctx, elm->type, + elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, + size); + } + switch(rval.code) { + case RC_OK: + ADVANCE(rval.consumed); + break; + case RC_WMORE: + ASN_DEBUG("More bytes needed at element %s \"%s\"", td->name, + elm->name); + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + case RC_FAIL: + ASN_DEBUG("Decoding failed at element %s \"%s\"", td->name, + elm->name); + RETURN(RC_FAIL); + } + } /* for(all root members) */ + + } + NEXT_PHASE(ctx); + /* FALL THROUGH */ + case 2: + assert(ctx->ptr); + { + /* Cleanup preamble. */ + asn_bit_data_t *preamble = ctx->ptr; + asn_bit_data_t *extadds; + int has_extensions_bit = (specs->first_extension >= 0); + int extensions_present = + has_extensions_bit + && (preamble->buffer == NULL + || (((const uint8_t *)preamble->buffer)[0] & 0x80)); + uint8_t unused_bits; + size_t len = 0; + ssize_t len_len; + + ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name); + + preamble->buffer = 0; /* Will do extensions_present==1 next time. */ + + if(!extensions_present) { + ctx->phase = 10; + RETURN(RC_OK); + } + + /* + * X.696 (08/2015) #16.1 (c), #16.4 + * Read in the extension addition presence bitmap. + */ + + len_len = oer_fetch_length(ptr, size, &len); + if(len_len > 0) { + ADVANCE(len_len); + } else if(len_len < 0) { + RETURN(RC_FAIL); + } else { + RETURN(RC_WMORE); + } + + if(len == 0) { + /* 16.4.1-2 */ + RETURN(RC_FAIL); + } else if(len > size) { + RETURN(RC_WMORE); + } + + /* Account for unused bits */ + unused_bits = 0x7 & *(const uint8_t *)ptr; + ADVANCE(1); + len--; + if(unused_bits && len == 0) { + RETURN(RC_FAIL); + } + + /* Get the extensions map */ + extadds = asn_bit_data_new_contiguous(ptr, len * 8 - unused_bits); + if(!extadds) { + RETURN(RC_FAIL); + } + FREEMEM(preamble); + ctx->ptr = extadds; + ADVANCE(len); + } + NEXT_PHASE(ctx); + ctx->step = + (specs->first_extension < 0 ? td->elements_count + : (size_t)specs->first_extension); + /* Fall through */ + case 3: + ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 3 (Extensions)", td->name); + for(; ctx->step < (signed)td->elements_count; ctx->step++) { + asn_bit_data_t *extadds = ctx->ptr; + size_t edx = ctx->step; + asn_TYPE_member_t *elm = &td->elements[edx]; + void *tmp_memb_ptr; + void **memb_ptr2 = element_ptrptr(st, elm, &tmp_memb_ptr); + + switch(asn_get_few_bits(extadds, 1)) { + case -1: + /* + * Not every one of our extensions is known to the remote side. + * Continue filling in their defaults though. + */ + /* Fall through */ + case 0: + /* Fill-in DEFAULT */ + if(elm->default_value_set + && elm->default_value_set(memb_ptr2)) { + RETURN(RC_FAIL); + } + continue; + case 1: { + /* Read OER open type */ + ssize_t ot_size = + oer_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.oer_constraints, + memb_ptr2, ptr, size); + assert(ot_size <= (ssize_t)size); + if(ot_size > 0) { + ADVANCE(ot_size); + } else if(ot_size < 0) { + RETURN(RC_FAIL); + } else { + /* Roll back open type parsing */ + asn_get_undo(extadds, 1); + RETURN(RC_WMORE); + } + break; + } + default: + RETURN(RC_FAIL); + } + } + + NEXT_PHASE(ctx); + /* Fall through */ + case 4: + ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 4", td->name); + /* Read in the rest of Open Types while ignoring them */ + for(;;) { + asn_bit_data_t *extadds = ctx->ptr; + switch(asn_get_few_bits(extadds, 1)) { + case 0: + continue; + case 1: { + ssize_t skipped = oer_open_type_skip(ptr, size); + if(skipped > 0) { + ADVANCE(skipped); + } else if(skipped < 0) { + RETURN(RC_FAIL); + } else { + asn_get_undo(extadds, 1); + RETURN(RC_WMORE); + } + continue; + } + case -1: + /* No more Open Type encoded components */ + break; + default: + RETURN(RC_FAIL); + } + break; + } + } + + RETURN(RC_OK); +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +SEQUENCE_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + size_t computed_size = 0; + int has_extensions_bit = (specs->first_extension >= 0); + size_t preamble_bits = (has_extensions_bit + specs->roms_count); + uint32_t has_extensions = 0; + size_t edx; + int ret; + + (void)constraints; + + if(preamble_bits) { + asn_bit_outp_t preamble; + + memset(&preamble, 0, sizeof(preamble)); + preamble.output = cb; + preamble.op_key = app_key; + + if(has_extensions_bit) { + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr = element_ptr(sptr, elm); + if(memb_ptr) { + if(elm->default_value_cmp + && elm->default_value_cmp(memb_ptr) == 0) { + /* Do not encode default values in extensions */ + } else { + has_extensions = 1; + break; + } + } + } + ret = asn_put_few_bits(&preamble, has_extensions, 1); + assert(ret == 0); + if(ret < 0) { + ASN__ENCODE_FAILED; + } + } + + /* + * Encode optional components bitmap. + */ + if(specs->roms_count) { + FOR_IN_ROOT_GROUP(edx) { + asn_TYPE_member_t *elm = &td->elements[edx]; + + if(IN_EXTENSION_GROUP(specs, edx)) break; + + if(elm->optional) { + const void *memb_ptr = element_ptr(sptr, elm); + uint32_t has_component = memb_ptr != NULL; + if(has_component && elm->default_value_cmp + && elm->default_value_cmp(memb_ptr) == 0) { + has_component = 0; + } + ret = asn_put_few_bits(&preamble, has_component, 1); + if(ret < 0) { + ASN__ENCODE_FAILED; + } + } + } + } + + asn_put_aligned_flush(&preamble); + computed_size += preamble.flushed_bytes; + } /* if(preamble_bits) */ + + /* + * Put root components and extensions root. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + asn_enc_rval_t er = {0,0,0}; + const void *memb_ptr; + + if(IN_EXTENSION_GROUP(specs, edx)) break; + + memb_ptr = element_ptr(sptr, elm); + if(memb_ptr) { + if(elm->default_value_cmp + && elm->default_value_cmp(memb_ptr) == 0) { + /* Skip default values in encoding */ + continue; + } + } else { + if(elm->optional) continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + if(!elm->type->op->oer_encoder) { + ASN_DEBUG("OER encoder is not defined for type %s", elm->type->name); + ASN__ENCODE_FAILED; + } + er = elm->type->op->oer_encoder( + elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, + app_key); + if(er.encoded == -1) { + ASN_DEBUG("... while encoding %s member \"%s\"\n", td->name, + elm->name); + return er; + } + computed_size += er.encoded; + } + + /* + * Before encode extensions, encode extensions additions presence bitmap + # X.696 (08/2015) #16.4. + */ + if(has_extensions) { + asn_bit_outp_t extadds; + + /* Special case allowing us to use exactly one byte for #8.6 */ + size_t aoms_length_bits = specs->aoms_count; + size_t aoms_length_bytes = (7 + aoms_length_bits) >> 3; + uint8_t unused_bits = 0x07 & (8 - (aoms_length_bits & 0x07)); + + assert(1 + aoms_length_bytes <= 127); + + memset(&extadds, 0, sizeof(extadds)); + extadds.output = cb; + extadds.op_key = app_key; + + /* #8.6 length determinant */ + ret = asn_put_few_bits(&extadds, (1 + aoms_length_bytes), 8); + if(ret < 0) ASN__ENCODE_FAILED; + + /* Number of unused bytes, #16.4.2 */ + ret = asn_put_few_bits(&extadds, unused_bits, 8); + if(ret < 0) ASN__ENCODE_FAILED; + + /* Encode presence bitmap #16.4.3 */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr = element_ptr(sptr, elm); + if(memb_ptr && elm->default_value_cmp + && elm->default_value_cmp(memb_ptr) == 0) { + memb_ptr = 0; /* Do not encode default value. */ + } + ret |= asn_put_few_bits(&extadds, memb_ptr ? 1 : 0, 1); + } + if(ret < 0) ASN__ENCODE_FAILED; + + asn_put_aligned_flush(&extadds); + computed_size += extadds.flushed_bytes; + + /* Now, encode extensions */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr = element_ptr(sptr, elm); + + if(memb_ptr) { + if(elm->default_value_cmp + && elm->default_value_cmp(memb_ptr) == 0) { + /* Do not encode default value. */ + } else { + ssize_t wrote = oer_open_type_put( + elm->type, elm->encoding_constraints.oer_constraints, + memb_ptr, cb, app_key); + if(wrote == -1) { + ASN__ENCODE_FAILED; + } + computed_size += wrote; + } + } else if(!elm->optional) { + ASN__ENCODE_FAILED; + } + } + } /* if(has_extensions) */ + + + { + asn_enc_rval_t er = {0, 0, 0}; + er.encoded = computed_size; + ASN__ENCODED_OK(er); + } +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_print.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_print.c new file mode 100644 index 000000000..7f9e231a4 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_print.c @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t edx; + int ret; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) continue; + /* Print line */ + /* Fall through */ + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* Indentation */ + _i_INDENT(1); + + /* Print the member's name and stuff */ + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + + /* Print the member itself */ + ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, + cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_rfill.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_rfill.c new file mode 100644 index 000000000..b464f5722 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_rfill.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + void *st = *sptr; + size_t edx; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + for(edx = 0; edx < td->elements_count; edx++) { + const asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + asn_random_fill_result_t tmpres; + + if(elm->optional && asn_random_between(0, 4) == 2) { + /* Sometimes decide not to fill the optional value */ + continue; + } + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + tmpres = elm->type->op->random_fill( + elm->type, memb_ptr2, &elm->encoding_constraints, + max_length > result_ok.length ? max_length - result_ok.length : 0); + switch(tmpres.code) { + case ARFILL_OK: + result_ok.length += tmpres.length; + continue; + case ARFILL_SKIPPED: + assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); + continue; + case ARFILL_FAILED: + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return tmpres; + } + } + + *sptr = st; + + return result_ok; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_uper.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_uper.c new file mode 100644 index 000000000..b235f4de9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_uper.c @@ -0,0 +1,429 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +asn_dec_rval_t +SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + size_t edx; + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); + + /* Handle extensions */ + if(specs->first_extension < 0) { + extpresent = 0; + } else { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) ASN__DECODE_STARVED; + } + + /* Prepare a place and read-in the presence bitmap */ + memset(&opmd, 0, sizeof(opmd)); + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) ASN__DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + ASN__DECODE_STARVED; + } + opmd.buffer = opres; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; + edx < (specs->first_extension < 0 ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + assert(!IN_EXTENSION_GROUP(specs, edx)); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + if(elm->default_value_set(memb_ptr2)) { + FREEMEM(opres); + ASN__DECODE_FAILED; + } + ASN_DEBUG("Filled-in default"); + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); + + if(elm->flags & ATF_OPEN_TYPE) { + rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); + } else { + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* Optionality map is not needed anymore */ + FREEMEM(opres); + + /* + * Deal with extensions. + */ + if(extpresent) { + ssize_t bmlength; + uint8_t *epres; /* Presence of extension members */ + asn_per_data_t epmd; + + bmlength = uper_get_nslength(pd); + if(bmlength < 0) ASN__DECODE_STARVED; + + ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); + + epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); + if(!epres) ASN__DECODE_STARVED; + + /* Get the extensions map */ + if(per_get_many_bits(pd, epres, 0, bmlength)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + + memset(&epmd, 0, sizeof(epmd)); + epmd.buffer = epres; + epmd.nbits = bmlength; + ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", + td->name, (long)bmlength, *epres); + + /* Go over extensions and read them in */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + int present; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (void *)((char *)st + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + present = per_get_few_bits(&epmd, 1); + if(present <= 0) { + if(present < 0) break; /* No more extensions */ + continue; + } + + ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, + *memb_ptr2); + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + if(rv.code != RC_OK) { + FREEMEM(epres); + return rv; + } + } + + /* Skip over overflow extensions which aren't present + * in this system's version of the protocol */ + for(;;) { + ASN_DEBUG("Getting overflow extensions"); + switch(per_get_few_bits(&epmd, 1)) { + case -1: break; + case 0: continue; + default: + if(uper_open_type_skip(opt_codec_ctx, pd)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + ASN_DEBUG("Skipped overflow extension"); + continue; + } + break; + } + + FREEMEM(epres); + } + + if(specs->first_extension >= 0) { + unsigned i; + /* Fill DEFAULT members in extensions */ + for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; + i++) { + asn_TYPE_member_t *elm; + void **memb_ptr2; /* Pointer to member pointer */ + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + if(!elm->default_value_set) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + if(*memb_ptr2) continue; + } else { + continue; /* Extensions are all optionals */ + } + + /* Set default value */ + if(elm->default_value_set(memb_ptr2)) { + ASN__DECODE_FAILED; + } + } + } + + rv.consumed = 0; + rv.code = RC_OK; + return rv; +} + +static int +SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_per_outp_t *po1, asn_per_outp_t *po2) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + int exts_present = 0; + int exts_count = 0; + size_t edx; + + if(specs->first_extension < 0) { + return 0; + } + + /* Find out which extensions are present */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + int present; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, + elm->type->name, edx, present); + exts_count++; + exts_present += present; + + /* Encode as presence marker */ + if(po1 && per_put_few_bits(po1, present, 1)) { + return -1; + } + /* Encode as open type field */ + if(po2 && present + && uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po2)) + return -1; + } + + return exts_present ? exts_count : 0; +} + +asn_enc_rval_t +SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + int n_extensions; + size_t edx; + size_t i; + + (void)constraints; + + if(!sptr) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); + + /* + * X.691#18.1 Whether structure is extensible + * and whether to encode extensions + */ + if(specs->first_extension < 0) { + n_extensions = 0; /* There are no extensions to encode */ + } else { + n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); + if(n_extensions < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + /* Encode a presence bitmap */ + for(i = 0; i < specs->roms_count; i++) { + asn_TYPE_member_t *elm; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + int present; + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + /* Eliminate default values */ + if(present && elm->default_value_cmp + && elm->default_value_cmp(*memb_ptr2) == 0) + present = 0; + + ASN_DEBUG("Element %s %s %s->%s is %s", + elm->flags & ATF_POINTER ? "ptr" : "inline", + elm->default_value_cmp ? "def" : "wtv", + td->name, elm->name, present ? "present" : "absent"); + if(per_put_few_bits(po, present, 1)) + ASN__ENCODE_FAILED; + } + + /* + * Encode the sequence ROOT elements. + */ + ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, + td->elements_count); + for(edx = 0; + edx < ((specs->first_extension < 0) ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + ASN_DEBUG("About to encode %s", elm->type->name); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); + er = elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, + po); + if(er.encoded == -1) return er; + } + + /* No extensions to encode */ + if(!n_extensions) ASN__ENCODED_OK(er); + + ASN_DEBUG("Length of extensions %d bit-map", n_extensions); + /* #18.8. Write down the presence bit-map length. */ + if(uper_put_nslength(po, n_extensions)) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Bit-map of %d elements", n_extensions); + /* #18.7. Encoding the extensions presence bit-map. */ + /* TODO: act upon NOTE in #18.7 for canonical PER */ + if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Writing %d extensions", n_extensions); + /* #18.9. Encode extensions as open type fields. */ + if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_xer.c b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_xer.c new file mode 100644 index 000000000..c6475f78a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SEQUENCE_xer.c @@ -0,0 +1,348 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) \ + do { \ + size_t num = (num_bytes); \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_TYPE_member_t *elements = td->elements; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * ... and parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval; /* Return value from a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* Element index */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + * Phase 3: Skipping unknown extensions. + * Phase 4: PHASED OUT + */ + for(edx = ctx->step; ctx->phase <= 3;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + asn_TYPE_member_t *elm; + + /* + * Go inside the inner member of a sequence. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval; + void *memb_ptr_dontuse; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + elm = &td->elements[edx]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr_dontuse = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ + } + + if(elm->flags & ATF_OPEN_TYPE) { + tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); + } else { + /* Invoke the inner type decoder, m.b. multiple times */ + tmprval = elm->type->op->xer_decoder(opt_codec_ctx, + elm->type, memb_ptr2, elm->name, + ptr, size); + } + XER_ADVANCE(tmprval.consumed); + if(tmprval.code != RC_OK) + RETURN(tmprval.code); + ctx->phase = 1; /* Back to body processing */ + ctx->step = ++edx; + ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", + ctx->phase, ctx->step); + /* Fall through */ + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, ptr, size, + &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(ptr, ch_size, xml_tag); + ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", + tcv, ctx->phase, xml_tag); + + /* Skip the extensions section */ + if(ctx->phase == 3) { + switch(xer_skip_unknown(tcv, &ctx->left)) { + case -1: + ctx->phase = 4; + RETURN(RC_FAIL); + case 0: + XER_ADVANCE(ch_size); + continue; + case 1: + XER_ADVANCE(ch_size); + ctx->phase = 1; + continue; + case 2: + ctx->phase = 1; + break; + } + } + + switch(tcv) { + case XCT_CLOSING: + if(ctx->phase == 0) break; + ctx->phase = 0; + /* Fall through */ + case XCT_BOTH: + if(ctx->phase == 0) { + if(edx >= td->elements_count || + /* Explicit OPTIONAL specs reaches the end */ + (edx + elements[edx].optional == td->elements_count) || + /* All extensions are optional */ + IN_EXTENSION_GROUP(specs, edx)) { + XER_ADVANCE(ch_size); + ctx->phase = 4; /* Phase out */ + RETURN(RC_OK); + } else { + ASN_DEBUG("Premature end of XER SEQUENCE"); + RETURN(RC_FAIL); + } + } + /* Fall through */ + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", + tcv, ctx->phase, edx); + if(ctx->phase != 1) { + break; /* Really unexpected */ + } + + if(edx < td->elements_count) { + /* + * Search which member corresponds to this tag. + */ + size_t n; + size_t edx_end = edx + elements[edx].optional + 1; + if(edx_end > td->elements_count) + edx_end = td->elements_count; + for(n = edx; n < edx_end; n++) { + elm = &td->elements[n]; + tcv = xer_check_tag(ptr, ch_size, elm->name); + switch(tcv) { + case XCT_BOTH: + case XCT_OPENING: + /* + * Process this member. + */ + ctx->step = edx = n; + ctx->phase = 2; + break; + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + continue; + default: + n = edx_end; + break; /* Phase out */ + } + break; + } + if(n != edx_end) + continue; + } else { + ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", + edx, td->elements_count); + } + + /* It is expected extension */ + if(IN_EXTENSION_GROUP(specs, + edx + (edx < td->elements_count + ? elements[edx].optional : 0))) { + ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", + edx); + /* + * Check for (XCT_BOTH or XCT_UNKNOWN_BO) + * By using a mask. Only record a pure + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found without body */ + } else { + ctx->left = 1; + ctx->phase = 3; /* Skip ...'s */ + } + XER_ADVANCE(ch_size); + continue; + } + + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", + size>0?((const char *)ptr)[0]:'.', + size>1?((const char *)ptr)[1]:'.', + size>2?((const char *)ptr)[2]:'.', + size>3?((const char *)ptr)[3]:'.', + size>4?((const char *)ptr)[4]:'.', + size>5?((const char *)ptr)[5]:'.'); + break; + } + + ctx->phase = 4; /* "Phase out" on hard failure */ + RETURN(RC_FAIL); +} + +asn_enc_rval_t +SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0,0,0}; + int xcan = (flags & XER_F_CANONICAL); + asn_TYPE_descriptor_t *tmp_def_val_td = 0; + void *tmp_def_val = 0; + size_t edx; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_enc_rval_t tmper = {0,0,0}; + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + assert(tmp_def_val == 0); + if(elm->default_value_set) { + if(elm->default_value_set(&tmp_def_val)) { + ASN__ENCODE_FAILED; + } else { + memb_ptr = tmp_def_val; + tmp_def_val_td = elm->type; + } + } else if(elm->optional) { + continue; + } else { + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + /* Print the member itself */ + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmp_def_val) { + ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + tmp_def_val = 0; + } + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("", 1); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + ASN__ENCODE_FAILED; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SET_OF.c b/src/tmx/Asn_J2735/src/2020/constr_SET_OF.c new file mode 100644 index 000000000..97a7cac0c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SET_OF.c @@ -0,0 +1,371 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_TYPE_operation_t asn_OP_SET_OF = { + SET_OF_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + SET_OF_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + SET_OF_compare, +#if !defined(ASN_DISABLE_BER_SUPPORT) + SET_OF_decode_ber, + SET_OF_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + SET_OF_decode_xer, + SET_OF_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + SET_OF_encode_jer, +#else + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + SET_OF_decode_oer, + SET_OF_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + SET_OF_decode_uper, + SET_OF_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + SET_OF_decode_aper, + SET_OF_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + SET_OF_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; + +/* Append bytes to the above structure */ +static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { + struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; + + if(el_buf->length + size > el_buf->allocated_size) { + size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; + void *p; + + do { + new_size <<= 2; + } while(el_buf->length + size > new_size); + + p = REALLOC(el_buf->buf, new_size); + if(p) { + el_buf->buf = p; + el_buf->allocated_size = new_size; + } else { + return -1; + } + } + + memcpy(el_buf->buf + el_buf->length, buffer, size); + + el_buf->length += size; + return 0; +} + +static void assert_unused_bits(const struct _el_buffer* p) { + if(p->length) { + assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); + } else { + assert(p->bits_unused == 0); + } +} + +static int _el_buf_cmp(const void *ap, const void *bp) { + const struct _el_buffer *a = (const struct _el_buffer *)ap; + const struct _el_buffer *b = (const struct _el_buffer *)bp; + size_t common_len; + int ret = 0; + + if(a->length < b->length) + common_len = a->length; + else + common_len = b->length; + + if (a->buf && b->buf) { + ret = memcmp(a->buf, b->buf, common_len); + } + if(ret == 0) { + if(a->length < b->length) + ret = -1; + else if(a->length > b->length) + ret = 1; + /* Ignore unused bits. */ + assert_unused_bits(a); + assert_unused_bits(b); + } + + return ret; +} + +void +SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { + size_t i; + + for(i = 0; i < count; i++) { + FREEMEM(el_buf[i].buf); + } + + FREEMEM(el_buf); +} + +struct _el_buffer * +SET_OF__encode_sorted(const asn_TYPE_member_t *elm, + const asn_anonymous_set_ *list, + enum SET_OF__encode_method method) { + struct _el_buffer *encoded_els; + int edx; + + encoded_els = + (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); + if(encoded_els == NULL) { + return NULL; + } + + /* + * Encode all members. + */ + for(edx = 0; edx < list->count; edx++) { + const void *memb_ptr = list->array[edx]; + struct _el_buffer *encoding_el = &encoded_els[edx]; + asn_enc_rval_t erval = {0,0,0}; + + if(!memb_ptr) break; + + /* + * Encode the member into the prepared space. + */ + switch(method) { +#if !defined(ASN_DISABLE_BER_SUPPORT) + case SOES_DER: + erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, + _el_addbytes, encoding_el); + break; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + case SOES_CUPER: + erval = uper_encode(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, _el_addbytes, encoding_el); + if(erval.encoded != -1) { + size_t extra_bits = erval.encoded % 8; + assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); + encoding_el->bits_unused = (8 - extra_bits) & 0x7; + } + break; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + case SOES_CAPER: + erval = aper_encode(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, _el_addbytes, encoding_el); + if(erval.encoded != -1) { + size_t extra_bits = erval.encoded % 8; + assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); + encoding_el->bits_unused = (8 - extra_bits) & 0x7; + } + break; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + + default: + assert(!"Unreachable"); + break; + } + if(erval.encoded < 0) break; + } + + if(edx == list->count) { + /* + * Sort the encoded elements according to their encoding. + */ + qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); + + return encoded_els; + } else { + SET_OF__encode_sorted_free(encoded_els, edx); + return NULL; + } +} + +void +SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + const asn_SET_OF_specifics_t *specs; + asn_TYPE_member_t *elm = td->elements; + asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); + asn_struct_ctx_t *ctx; /* Decoder context */ + int i; + + /* + * Could not use set_of_empty() because of (*free) + * incompatibility. + */ + for(i = 0; i < list->count; i++) { + void *memb_ptr = list->array[i]; + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } + list->count = 0; /* No meaningful elements left */ + + asn_set_empty(list); /* Remove (list->array) */ + + specs = (const asn_SET_OF_specifics_t *)td->specifics; + ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); + if(ctx->ptr) { + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, specs->struct_size); + break; + } + } +} + +int +SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const asn_TYPE_member_t *elm = td->elements; + asn_constr_check_f *constr; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + int i; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + constr = elm->encoding_constraints.general_constraints; + if(!constr) constr = elm->type->encoding_constraints.general_constraints; + + /* + * Iterate over the members of an array. + * Validate each in turn, until one fails. + */ + for(i = 0; i < list->count; i++) { + const void *memb_ptr = list->array[i]; + int ret; + + if(!memb_ptr) continue; + + ret = constr(elm->type, memb_ptr, ctfailcb, app_key); + if(ret) return ret; + } + + return 0; +} + +struct comparable_ptr { + const asn_TYPE_descriptor_t *td; + const void *sptr; +}; + +static int +SET_OF__compare_cb(const void *aptr, const void *bptr) { + const struct comparable_ptr *a = aptr; + const struct comparable_ptr *b = bptr; + assert(a->td == b->td); + return a->td->op->compare_struct(a->td, a->sptr, b->sptr); +} + +int +SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); + const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); + + if(a && b) { + struct comparable_ptr *asorted; + struct comparable_ptr *bsorted; + ssize_t common_length; + ssize_t idx; + + if(a->count == 0) { + if(b->count) return -1; + return 0; + } else if(b->count == 0) { + return 1; + } + + asorted = MALLOC(a->count * sizeof(asorted[0])); + bsorted = MALLOC(b->count * sizeof(bsorted[0])); + if(!asorted || !bsorted) { + FREEMEM(asorted); + FREEMEM(bsorted); + return -1; + } + + for(idx = 0; idx < a->count; idx++) { + asorted[idx].td = td->elements->type; + asorted[idx].sptr = a->array[idx]; + } + + for(idx = 0; idx < b->count; idx++) { + bsorted[idx].td = td->elements->type; + bsorted[idx].sptr = b->array[idx]; + } + + qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); + qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); + + common_length = (a->count < b->count ? a->count : b->count); + for(idx = 0; idx < common_length; idx++) { + int ret = td->elements->type->op->compare_struct( + td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); + if(ret) { + FREEMEM(asorted); + FREEMEM(bsorted); + return ret; + } + } + + FREEMEM(asorted); + FREEMEM(bsorted); + + if(idx < b->count) /* more elements in b */ + return -1; /* a is shorter, so put it first */ + if(idx < a->count) return 1; + } else if(!a) { + return -1; + } else if(!b) { + return 1; + } + + return 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SET_OF_aper.c b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_aper.c new file mode 100644 index 000000000..87c341e0f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_aper.c @@ -0,0 +1,186 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +SET_OF_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + const asn_TYPE_member_t *elm = td->elements; + struct _el_buffer *encoded_els; + asn_enc_rval_t er = {0,0,0}; + int seq; + + if(!sptr) ASN__ENCODE_FAILED; + + list = _A_CSET_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SET OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %lld ub %lld %s", + (long long int)ct->lower_bound, + (long long int)ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + /*if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED;*/ + + if (aper_put_length(po, ct->lower_bound, ct->upper_bound, list->count - ct->lower_bound, 0) < 0) { + ASN__ENCODE_FAILED; + } + } + + /* + * Canonical PER #22.1 mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_CAPER); + + for(seq = 0; seq < list->count;) { + ssize_t may_encode; + int need_eom = 0; + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + aper_put_length(po, -1, -1, list->count - seq, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + while(may_encode--) { + const struct _el_buffer *el = &encoded_els[seq++]; + if(asn_put_many_bits(po, el->buf, + (8 * el->length) - el->bits_unused) < 0) { + break; + } + } + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv = {RC_OK, 0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + void *st = *sptr; + asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + int repeat = 0; + ssize_t nelems; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + list = _A_SET_FROM_VOID(st); + + /* Figure out which constraints to use */ + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted! */ + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); + ASN_DEBUG("Preparing to fetch %ld+%lld elements from %s", + (long)nelems, (long long int)ct->lower_bound, td->name); + if(nelems < 0) ASN__DECODE_STARVED; + nelems += ct->lower_bound; + } else { + nelems = -1; + } + + do { + int i; + if(nelems < 0) { + if (ct) + nelems = aper_get_length(pd, ct->lower_bound, ct->upper_bound, + ct->effective_bits, &repeat); + else + nelems = aper_get_length(pd, -1, -1, -1, &repeat); + ASN_DEBUG("Got to decode %d elements (eff %d)", + (int)nelems, (int)(ct ? ct->effective_bits : -1)); + if(nelems < 0) ASN__DECODE_STARVED; + } + + for(i = 0; i < nelems; i++) { + void *ptr = 0; + ASN_DEBUG("SET OF %s decoding", elm->type->name); + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, &ptr, pd); + ASN_DEBUG("%s SET OF %s decoded %d, %p", + td->name, elm->type->name, rv.code, ptr); + if(rv.code == RC_OK) { + if(ASN_SET_ADD(list, ptr) == 0) + continue; + ASN_DEBUG("Failed to add element into %s", + td->name); + /* Fall through */ + rv.code = RC_FAIL; + } else { + ASN_DEBUG("Failed decoding %s of %s (SET OF)", + elm->type->name, td->name); + } + if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); + return rv; + } + + nelems = -1; /* Allow uper_get_length() */ + } while(repeat); + + ASN_DEBUG("Decoded %s as SET OF", td->name); + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SET_OF_ber.c b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_ber.c new file mode 100644 index 000000000..4187e2999 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_ber.c @@ -0,0 +1,355 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#undef PHASE_OUT +#define PHASE_OUT(ctx) \ + do { \ + ctx->phase = 10; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +/* + * The decoder of the SET OF type. + */ +asn_dec_rval_t +SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + ASN_DEBUG("Decoding %s as SET OF", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, 1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) + ctx->left += rval.consumed; /* ?Subtracted below! */ + ADVANCE(rval.consumed); + + ASN_DEBUG("Structure consumes %ld bytes, " + "buffer %ld", (long)ctx->left, (long)size); + + NEXT_PHASE(ctx); + /* Fall through */ + case 1: + /* + * PHASE 1. + * From the place where we've left it previously, + * try to decode the next item. + */ + for(;; ctx->step = 0) { + ssize_t tag_len; /* Length of TLV's T */ + + if(ctx->step & 1) + goto microphase2; + + /* + * MICROPHASE 1: Synchronize decoding. + */ + + if(ctx->left == 0) { + ASN_DEBUG("End of SET OF %s", td->name); + /* + * No more things to decode. + * Exit out of here. + */ + PHASE_OUT(ctx); + RETURN(RC_OK); + } + + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Found the terminator of the + * indefinite length structure. + */ + break; + } + } + + /* Outmost tag may be unknown and cannot be fetched/compared */ + if(elm->tag != (ber_tlv_tag_t)-1) { + if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { + /* + * The new list member of expected type has arrived. + */ + } else { + ASN_DEBUG("Unexpected tag %s fixed SET OF %s", + ber_tlv_tag_string(tlv_tag), td->name); + ASN_DEBUG("%s SET OF has tag %s", + td->name, ber_tlv_tag_string(elm->tag)); + RETURN(RC_FAIL); + } + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + ctx->step |= 1; /* Confirm entering next microphase */ + microphase2: + + /* + * Invoke the member fetch routine according to member's type + */ + rval = elm->type->op->ber_decoder(opt_codec_ctx, + elm->type, &ctx->ptr, + ptr, LEFT, 0); + ASN_DEBUG("In %s SET OF %s code %d consumed %d", + td->name, elm->type->name, + rval.code, (int)rval.consumed); + switch(rval.code) { + case RC_OK: + { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + if(ASN_SET_ADD(list, ctx->ptr) != 0) + RETURN(RC_FAIL); + else + ctx->ptr = 0; + } + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + /* Fall through */ + case RC_FAIL: /* Fatal error */ + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + RETURN(RC_FAIL); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } /* for(all list members) */ + + NEXT_PHASE(ctx); + case 2: + /* + * Read in all "end of content" TLVs. + */ + while(ctx->left < 0) { + if(LEFT < 2) { + if(LEFT > 0 && ((const char *)ptr)[0] != 0) { + /* Unexpected tag */ + RETURN(RC_FAIL); + } else { + RETURN(RC_WMORE); + } + } + if(((const char *)ptr)[0] == 0 + && ((const char *)ptr)[1] == 0) { + ADVANCE(2); + ctx->left++; + } else { + RETURN(RC_FAIL); + } + } + + PHASE_OUT(ctx); + } + + RETURN(RC_OK); +} + +/* + * The DER encoder of the SET OF type. + */ +asn_enc_rval_t +SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + size_t computed_size = 0; + ssize_t encoding_size = 0; + struct _el_buffer *encoded_els; + int edx; + + ASN_DEBUG("Estimating size for SET OF %s", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + asn_enc_rval_t erval = {0,0,0}; + + if(!memb_ptr) ASN__ENCODE_FAILED; + + erval = + elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); + if(erval.encoded == -1) return erval; + computed_size += erval.encoded; + } + + /* + * Encode the TLV for the sequence itself. + */ + encoding_size = + der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); + if(encoding_size < 0) { + ASN__ENCODE_FAILED; + } + computed_size += encoding_size; + + if(!cb || list->count == 0) { + asn_enc_rval_t erval = {0,0,0}; + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } + + ASN_DEBUG("Encoding members of %s SET OF", td->name); + + /* + * DER mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the + * encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); + + /* + * Report encoded elements to the application. + * Dispose of temporary sorted members table. + */ + for(edx = 0; edx < list->count; edx++) { + struct _el_buffer *encoded_el = &encoded_els[edx]; + /* Report encoded chunks to the application */ + if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { + break; + } else { + encoding_size += encoded_el->length; + } + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + if(edx == list->count) { + asn_enc_rval_t erval = {0,0,0}; + assert(computed_size == (size_t)encoding_size); + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } else { + ASN__ENCODE_FAILED; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SET_OF_jer.c b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_jer.c new file mode 100644 index 000000000..a0c2adc5e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_jer.c @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +typedef struct jer_tmp_enc_s { + void *buffer; + size_t offset; + size_t size; +} jer_tmp_enc_t; + +static int +SET_OF_encode_jer_callback(const void *buffer, size_t size, void *key) { + jer_tmp_enc_t *t = (jer_tmp_enc_t *)key; + if(t->offset + size >= t->size) { + size_t newsize = (t->size << 2) + size; + void *p = REALLOC(t->buffer, newsize); + if(!p) return -1; + t->buffer = p; + t->size = newsize; + } + memcpy((char *)t->buffer + t->offset, buffer, size); + t->offset += size; + return 0; +} + +static int +SET_OF_jer_order(const void *aptr, const void *bptr) { + const jer_tmp_enc_t *a = (const jer_tmp_enc_t *)aptr; + const jer_tmp_enc_t *b = (const jer_tmp_enc_t *)bptr; + size_t minlen = a->offset; + int ret; + if(b->offset < minlen) minlen = b->offset; + /* Well-formed UTF-8 has this nice lexicographical property... */ + ret = memcmp(a->buffer, b->buffer, minlen); + if(ret != 0) return ret; + if(a->offset == b->offset) + return 0; + if(a->offset == minlen) + return -1; + return 1; +} + +asn_enc_rval_t +SET_OF_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0,0,0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = 0; + jer_tmp_enc_t *encs = 0; + size_t encs_count = 0; + void *original_app_key = app_key; + asn_app_consume_bytes_f *original_cb = cb; + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + if(xcan) { + encs = (jer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); + if(!encs) ASN__ENCODE_FAILED; + cb = SET_OF_encode_jer_callback; + } + + er.encoded = 0; + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper = {0,0,0}; + + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(encs) { + memset(&encs[encs_count], 0, sizeof(encs[0])); + app_key = &encs[encs_count]; + encs_count++; + } + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("\"", 1, mname, mlen, "\": ", 3); + } + + if(!xcan && specs->as_XMLValueList == 1) + ASN__TEXT_INDENT(1, ilevel + 1); + tmper = elm->type->op->jer_encoder(elm->type, memb_ptr, + ilevel + (specs->as_XMLValueList != 2), + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + ASN__CALLBACK3("<", 1, name, len, "/>", 2); + } + + /* if(mname) { */ + /* ASN__CALLBACK3("", 1); */ + /* } */ + + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + if(encs) { + jer_tmp_enc_t *enc = encs; + jer_tmp_enc_t *end = encs + encs_count; + ssize_t control_size = 0; + + er.encoded = 0; + cb = original_cb; + app_key = original_app_key; + qsort(encs, encs_count, sizeof(encs[0]), SET_OF_jer_order); + + for(; enc < end; enc++) { + ASN__CALLBACK(enc->buffer, enc->offset); + FREEMEM(enc->buffer); + enc->buffer = 0; + control_size += enc->offset; + } + assert(control_size == er.encoded); + } + + goto cleanup; +cb_failed: + ASN__ENCODE_FAILED; +cleanup: + if(encs) { + size_t n; + for(n = 0; n < encs_count; n++) { + FREEMEM(encs[n].buffer); + } + FREEMEM(encs); + } + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SET_OF_oer.c b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_oer.c new file mode 100644 index 000000000..a0f0140dc --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_oer.c @@ -0,0 +1,281 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) \ + do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#undef SET_PHASE +#define SET_PHASE(ctx, value) \ + do { \ + ctx->phase = value; \ + ctx->step = 0; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t _rval; \ + _rval.code = _code; \ + _rval.consumed = consumed_myself; \ + return _rval; \ + } while(0) + +/* + * The SEQUENCE OF and SET OF values utilize a "quantity field". + * It is is a pointless combination of #8.6 (length determinant, capable + * of encoding tiny and huge numbers in the shortest possible number of octets) + * and the variable sized integer. What could have been encoded by #8.6 alone + * is required to be encoded by #8.6 followed by that number of unsigned octets. + * This doesn't make too much sense. It seems that the original version of OER + * standard have been using the unconstrained unsigned integer as a quantity + * field, and this legacy have gone through ISO/ITU-T standardization process. + */ +static ssize_t +oer_fetch_quantity(const void *ptr, size_t size, size_t *qty_r) { + const uint8_t *b; + const uint8_t *bend; + size_t len = 0; + size_t qty; + + ssize_t len_len = oer_fetch_length(ptr, size, &len); + if(len_len <= 0) { + *qty_r = 0; + return len_len; + } + + if((len_len + len) > size) { + *qty_r = 0; + return 0; + } + + b = (const uint8_t *)ptr + len_len; + bend = b + len; + + /* Skip the leading 0-bytes */ + for(; b < bend && *b == 0; b++) { + } + + if((bend - b) > (ssize_t)sizeof(size_t)) { + /* Length is not representable by the native size_t type */ + *qty_r = 0; + return -1; + } + + for(qty = 0; b < bend; b++) { + qty = (qty << 8) + *b; + } + + if(qty > RSIZE_MAX) { /* A bit of C11 validation */ + *qty_r = 0; + return -1; + } + + *qty_r = qty; + assert((size_t)len_len + len == (size_t)(bend - (const uint8_t *)ptr)); + return len_len + len; +} + +asn_dec_rval_t +SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **struct_ptr, + const void *ptr, size_t size) { + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + asn_dec_rval_t rval = {RC_OK, 0}; + void *st = *struct_ptr; /* Target structure */ + asn_struct_ctx_t *ctx; /* Decoder context */ + size_t consumed_myself = 0; /* Consumed bytes from ptr. */ + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously. + */ + switch(ctx->phase) { + case 0: { + /* + * Fetch number of elements to decode. + */ + size_t length = 0; + size_t len_size = oer_fetch_quantity(ptr, size, &length); + switch(len_size) { + case 0: + RETURN(RC_WMORE); + case -1: + RETURN(RC_FAIL); + default: + ADVANCE(len_size); + ctx->left = length; + } + } + NEXT_PHASE(ctx); + /* FALL THROUGH */ + case 1: { + /* Decode components of the extension root */ + asn_TYPE_member_t *elm = td->elements; + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + const void *base_ptr = ptr; + ber_tlv_len_t base_ctx_left = ctx->left; + + assert(td->elements_count == 1); + + ASN_DEBUG("OER SET OF %s Decoding PHASE 1", td->name); + + for(; ctx->left > 0; ctx->left--) { + asn_dec_rval_t rv = elm->type->op->oer_decoder( + opt_codec_ctx, elm->type, + elm->encoding_constraints.oer_constraints, &ctx->ptr, ptr, + size); + ADVANCE(rv.consumed); + switch(rv.code) { + case RC_OK: + if(ASN_SET_ADD(list, ctx->ptr) != 0) { + RETURN(RC_FAIL); + } else { + ctx->ptr = 0; + /* + * This check is to avoid compression bomb with + * specs like SEQUENCE/SET OF NULL which don't + * consume data at all. + */ + if(rv.consumed == 0 && base_ptr == ptr + && (base_ctx_left - ctx->left) > 200) { + ASN__DECODE_FAILED; + } + break; + } + case RC_WMORE: + RETURN(RC_WMORE); + case RC_FAIL: + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + SET_PHASE(ctx, 3); + RETURN(RC_FAIL); + } + } + /* Decoded decently. */ + NEXT_PHASE(ctx); + } + /* Fall through */ + case 2: + /* Ignore fully decoded */ + assert(ctx->left == 0); + RETURN(RC_OK); + case 3: + /* Failed to decode. */ + RETURN(RC_FAIL); + } + + return rval; +} + +static ssize_t +oer_put_quantity(size_t qty, asn_app_consume_bytes_f *cb, void *app_key) { + uint8_t buf[1 + sizeof(size_t)]; + uint8_t *b = &buf[sizeof(size_t)]; /* Last addressable */ + size_t encoded; + + do { + *b-- = qty; + qty >>= 8; + } while(qty); + + *b = sizeof(buf) - (b-buf) - 1; + encoded = sizeof(buf) - (b-buf); + if(cb(b, encoded, app_key) < 0) + return -1; + return encoded; +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +SET_OF_encode_oer(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_TYPE_member_t *elm; + const asn_anonymous_set_ *list; + size_t computed_size = 0; + ssize_t qty_len; + int n; + + (void)constraints; + + if(!sptr) ASN__ENCODE_FAILED; + + elm = td->elements; + list = _A_CSET_FROM_VOID(sptr); + + qty_len = oer_put_quantity(list->count, cb, app_key); + if(qty_len < 0) { + ASN__ENCODE_FAILED; + } + computed_size += qty_len; + + for(n = 0; n < list->count; n++) { + void *memb_ptr = list->array[n]; + asn_enc_rval_t er = {0,0,0}; + er = elm->type->op->oer_encoder( + elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, + app_key); + if(er.encoded < 0) { + return er; + } else { + computed_size += er.encoded; + } + } + + { + asn_enc_rval_t erval = {0,0,0}; + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SET_OF_print.c b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_print.c new file mode 100644 index 000000000..748dba767 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_print.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + int ret; + int i; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(i = 0; i < list->count; i++) { + const void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + _i_INDENT(1); + + ret = elm->type->op->print_struct(elm->type, memb_ptr, + ilevel + 1, cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SET_OF_rfill.c b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_rfill.c new file mode 100644 index 000000000..9b2ac5ed2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_rfill.c @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_SET_OF_specifics_t *specs = + (const asn_SET_OF_specifics_t *)td->specifics; + asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + const asn_TYPE_member_t *elm = td->elements; + void *st = *sptr; + long max_elements = 5; + long slb = 0; /* Lower size bound */ + long sub = 0; /* Upper size bound */ + size_t rnd_len; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (*sptr = CALLOC(1, specs->struct_size)); + if(st == NULL) { + return result_failed; + } + } + + switch(asn_random_between(0, 6)) { + case 0: max_elements = 0; break; + case 1: max_elements = 1; break; + case 2: max_elements = 5; break; + case 3: max_elements = max_length; break; + case 4: max_elements = max_length / 2; break; + case 5: max_elements = max_length / 4; break; + default: break; + } + sub = slb + max_elements; + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_SEMI_CONSTRAINED) { + slb = pc->lower_bound; + sub = pc->lower_bound + max_elements; + } else if(pc->flags & APC_CONSTRAINED) { + slb = pc->lower_bound; + sub = pc->upper_bound; + if(sub - slb > max_elements) sub = slb + max_elements; + } + } +#else + if(!constraints) constraints = &td->encoding_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + + /* Bias towards edges of allowed space */ + switch(asn_random_between(-1, 4)) { + default: + case -1: +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + /* Prepare lengths somewhat outside of constrained range. */ + if(constraints->per_constraints + && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { + switch(asn_random_between(0, 5)) { + default: + case 0: + rnd_len = 0; + break; + case 1: + if(slb > 0) { + rnd_len = slb - 1; + } else { + rnd_len = 0; + } + break; + case 2: + rnd_len = asn_random_between(0, slb); + break; + case 3: + if(sub < (ssize_t)max_length) { + rnd_len = sub + 1; + } else { + rnd_len = max_length; + } + break; + case 4: + if(sub < (ssize_t)max_length) { + rnd_len = asn_random_between(sub + 1, max_length); + } else { + rnd_len = max_length; + } + break; + case 5: + rnd_len = max_length; + break; + } + break; + } +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + /* Fall through */ + case 0: + rnd_len = asn_random_between(slb, sub); + break; + case 1: + if(slb < sub) { + rnd_len = asn_random_between(slb + 1, sub); + break; + } + /* Fall through */ + case 2: + rnd_len = asn_random_between(slb, slb); + break; + case 3: + if(slb < sub) { + rnd_len = asn_random_between(slb, sub - 1); + break; + } + /* Fall through */ + case 4: + rnd_len = asn_random_between(sub, sub); + break; + } + + for(; rnd_len > 0; rnd_len--) { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + void *ptr = 0; + asn_random_fill_result_t tmpres = elm->type->op->random_fill( + elm->type, &ptr, &elm->encoding_constraints, + (max_length > res_ok.length ? max_length - res_ok.length : 0) + / rnd_len); + switch(tmpres.code) { + case ARFILL_OK: + ASN_SET_ADD(list, ptr); + res_ok.length += tmpres.length; + break; + case ARFILL_SKIPPED: + break; + case ARFILL_FAILED: + assert(ptr == 0); + return tmpres; + } + } + + return res_ok; +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SET_OF_uper.c b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_uper.c new file mode 100644 index 000000000..b99a2449e --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_uper.c @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv = {RC_OK, 0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + void *st = *sptr; + asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + int repeat = 0; + ssize_t nelems; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + list = _A_SET_FROM_VOID(st); + + /* Figure out which constraints to use */ + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted! */ + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + nelems = per_get_few_bits(pd, ct->effective_bits); + ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", + (long)nelems, ct->lower_bound, td->name); + if(nelems < 0) ASN__DECODE_STARVED; + nelems += ct->lower_bound; + } else { + nelems = -1; + } + + do { + int i; + if(nelems < 0) { + nelems = uper_get_length(pd, -1, 0, &repeat); + ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", + nelems, (int)(ct ? ct->effective_bits : -1)); + if(nelems < 0) ASN__DECODE_STARVED; + } + + for(i = 0; i < nelems; i++) { + void *ptr = 0; + ASN_DEBUG("SET OF %s decoding", elm->type->name); + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + &ptr, pd); + ASN_DEBUG("%s SET OF %s decoded %d, %p", + td->name, elm->type->name, rv.code, ptr); + if(rv.code == RC_OK) { + if(ASN_SET_ADD(list, ptr) == 0) { + if(rv.consumed == 0 && nelems > 200) { + /* Protect from SET OF NULL compression bombs. */ + ASN__DECODE_FAILED; + } + continue; + } + ASN_DEBUG("Failed to add element into %s", + td->name); + /* Fall through */ + rv.code = RC_FAIL; + } else { + ASN_DEBUG("Failed decoding %s of %s (SET OF)", + elm->type->name, td->name); + } + if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); + return rv; + } + + nelems = -1; /* Allow uper_get_length() */ + } while(repeat); + + ASN_DEBUG("Decoded %s as SET OF", td->name); + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + +asn_enc_rval_t +SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + const asn_TYPE_member_t *elm = td->elements; + struct _el_buffer *encoded_els; + asn_enc_rval_t er = {0,0,0}; + size_t encoded_edx; + + if(!sptr) ASN__ENCODE_FAILED; + + list = _A_CSET_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; + } else if(list->count == 0) { + /* When the list is empty add only the length determinant + * X.691, #20.6 and #11.9.4.1 + */ + if (uper_put_length(po, 0, 0)) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } + + + /* + * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); + + for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { + ssize_t may_encode; + size_t edx; + int need_eom = 0; + + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + uper_put_length(po, list->count - encoded_edx, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { + const struct _el_buffer *el = &encoded_els[edx]; + if(asn_put_many_bits(po, el->buf, + (8 * el->length) - el->bits_unused) < 0) { + break; + } + } + + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + + encoded_edx += may_encode; + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + if((ssize_t)encoded_edx == list->count) { + ASN__ENCODED_OK(er); + } else { + ASN__ENCODE_FAILED; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_SET_OF_xer.c b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_xer.c new file mode 100644 index 000000000..1d97e5be3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_SET_OF_xer.c @@ -0,0 +1,314 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) \ + do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + return rval; \ + } while(0) + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + buf_ptr = ((const char *)buf_ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *element = td->elements; + const char *elm_tag; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * ... and parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval = {RC_OK, 0}; /* Return value from a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* Which tag is expected for the downstream */ + if(specs->as_XMLValueList) { + elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; + } else { + elm_tag = (*element->name) + ? element->name : element->type->xml_tag; + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + */ + for(; ctx->phase <= 2;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + + /* + * Go inside the inner member of a set. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval = {RC_OK, 0}; + + /* Invoke the inner type decoder, m.b. multiple times */ + ASN_DEBUG("XER/SET OF element [%s]", elm_tag); + tmprval = element->type->op->xer_decoder(opt_codec_ctx, + element->type, + &ctx->ptr, elm_tag, + buf_ptr, size); + if(tmprval.code == RC_OK) { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + if(ASN_SET_ADD(list, ctx->ptr) != 0) + RETURN(RC_FAIL); + ctx->ptr = 0; + XER_ADVANCE(tmprval.consumed); + } else { + XER_ADVANCE(tmprval.consumed); + RETURN(tmprval.code); + } + ctx->phase = 1; /* Back to body processing */ + ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); + /* Fall through */ + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, + buf_ptr, size, &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", + tcv, ctx->phase, xml_tag); + switch(tcv) { + case XCT_CLOSING: + if(ctx->phase == 0) break; + ctx->phase = 0; + /* Fall through */ + case XCT_BOTH: + if(ctx->phase == 0) { + /* No more things to decode */ + XER_ADVANCE(ch_size); + ctx->phase = 3; /* Phase out */ + RETURN(RC_OK); + } + /* Fall through */ + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); + if(ctx->phase == 1) { + /* + * Process a single possible member. + */ + ctx->phase = 2; + continue; + } + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag in SET OF"); + break; + } + + ctx->phase = 3; /* "Phase out" on hard failure */ + RETURN(RC_FAIL); +} + +typedef struct xer_tmp_enc_s { + void *buffer; + size_t offset; + size_t size; +} xer_tmp_enc_t; + +static int +SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { + xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; + if(t->offset + size >= t->size) { + size_t newsize = (t->size << 2) + size; + void *p = REALLOC(t->buffer, newsize); + if(!p) return -1; + t->buffer = p; + t->size = newsize; + } + memcpy((char *)t->buffer + t->offset, buffer, size); + t->offset += size; + return 0; +} + +static int +SET_OF_xer_order(const void *aptr, const void *bptr) { + const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; + const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; + size_t minlen = a->offset; + int ret; + if(b->offset < minlen) minlen = b->offset; + /* Well-formed UTF-8 has this nice lexicographical property... */ + ret = memcmp(a->buffer, b->buffer, minlen); + if(ret != 0) return ret; + if(a->offset == b->offset) + return 0; + if(a->offset == minlen) + return -1; + return 1; +} + +asn_enc_rval_t +SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0,0,0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = (flags & XER_F_CANONICAL); + xer_tmp_enc_t *encs = 0; + size_t encs_count = 0; + void *original_app_key = app_key; + asn_app_consume_bytes_f *original_cb = cb; + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + if(xcan) { + encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); + if(!encs) ASN__ENCODE_FAILED; + cb = SET_OF_encode_xer_callback; + } + + er.encoded = 0; + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper = {0,0,0}; + + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(encs) { + memset(&encs[encs_count], 0, sizeof(encs[0])); + app_key = &encs[encs_count]; + encs_count++; + } + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + } + + if(!xcan && specs->as_XMLValueList == 1) + ASN__TEXT_INDENT(1, ilevel + 1); + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, + ilevel + (specs->as_XMLValueList != 2), + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + ASN__CALLBACK3("<", 1, name, len, "/>", 2); + } + + if(mname) { + ASN__CALLBACK3("", 1); + } + + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + if(encs) { + xer_tmp_enc_t *enc = encs; + xer_tmp_enc_t *end = encs + encs_count; + ssize_t control_size = 0; + + er.encoded = 0; + cb = original_cb; + app_key = original_app_key; + qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); + + for(; enc < end; enc++) { + ASN__CALLBACK(enc->buffer, enc->offset); + FREEMEM(enc->buffer); + enc->buffer = 0; + control_size += enc->offset; + } + assert(control_size == er.encoded); + } + + goto cleanup; +cb_failed: + ASN__ENCODE_FAILED; +cleanup: + if(encs) { + size_t n; + for(n = 0; n < encs_count; n++) { + FREEMEM(encs[n].buffer); + } + FREEMEM(encs); + } + ASN__ENCODED_OK(er); +} diff --git a/src/tmx/Asn_J2735/src/2020/constr_TYPE.c b/src/tmx/Asn_J2735/src/2020/constr_TYPE.c new file mode 100644 index 000000000..e634e750f --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constr_TYPE.c @@ -0,0 +1,80 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Version of the ASN.1 infrastructure shipped with compiler. + */ +int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } + +static asn_app_consume_bytes_f _print2fp; + +/* + * Return the outmost tag of the type. + */ +ber_tlv_tag_t +asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { + + if(tag_mode) + return tag; + + if(type_descriptor->tags_count) + return type_descriptor->tags[0]; + + return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); +} + +/* + * Print the target language's structure in human readable form. + */ +int +asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, + const void *struct_ptr) { + if(!stream) stream = stdout; + if(!td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + /* Invoke type-specific printer */ + if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { + return -1; + } + + /* Terminate the output */ + if(_print2fp("\n", 1, stream)) { + return -1; + } + + return fflush(stream); +} + +/* Dump the data into the specified stdio stream */ +static int +_print2fp(const void *buffer, size_t size, void *app_key) { + FILE *stream = (FILE *)app_key; + + if(fwrite(buffer, 1, size, stream) != size) + return -1; + + return 0; +} + + +/* + * Some compilers do not support variable args macros. + * This function is a replacement of ASN_DEBUG() macro. + */ +void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); +void ASN_DEBUG_f(const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + fprintf(stderr, "\n"); + va_end(ap); +} diff --git a/src/tmx/Asn_J2735/src/2020/constraints.c b/src/tmx/Asn_J2735/src/2020/constraints.c new file mode 100644 index 000000000..72137cc5c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/constraints.c @@ -0,0 +1,94 @@ +#include +#include + +int +asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, + asn_app_constraint_failed_f *cb, void *key) { + (void)type_descriptor; /* Unused argument */ + (void)struct_ptr; /* Unused argument */ + (void)cb; /* Unused argument */ + (void)key; /* Unused argument */ + + /* Nothing to check */ + return 0; +} + +int +asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, + asn_app_constraint_failed_f *cb, void *key) { + (void)type_descriptor; /* Unused argument */ + (void)struct_ptr; /* Unused argument */ + (void)cb; /* Unused argument */ + (void)key; /* Unused argument */ + + /* Unknown how to check */ + return 0; +} + +struct errbufDesc { + const asn_TYPE_descriptor_t *failed_type; + const void *failed_struct_ptr; + char *errbuf; + size_t errlen; +}; + +static void +CC_PRINTFLIKE(4, 5) +_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, + const char *fmt, ...) { + struct errbufDesc *arg = key; + va_list ap; + ssize_t vlen; + ssize_t maxlen; + + arg->failed_type = td; + arg->failed_struct_ptr = sptr; + + maxlen = arg->errlen; + if(maxlen <= 0) + return; + + va_start(ap, fmt); + vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); + va_end(ap); + if(vlen >= maxlen) { + arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ + arg->errlen = maxlen - 1; /* Not counting termination */ + return; + } else if(vlen >= 0) { + arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ + arg->errlen = vlen; /* Not counting termination */ + } else { + /* + * The libc on this system is broken. + */ + vlen = sizeof("") - 1; + maxlen--; + arg->errlen = vlen < maxlen ? vlen : maxlen; + memcpy(arg->errbuf, "", arg->errlen); + arg->errbuf[arg->errlen] = 0; + } + + return; +} + +int +asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, char *errbuf, size_t *errlen) { + struct errbufDesc arg; + int ret; + + arg.failed_type = 0; + arg.failed_struct_ptr = 0; + arg.errbuf = errbuf; + arg.errlen = errlen ? *errlen : 0; + + ret = type_descriptor->encoding_constraints.general_constraints( + type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); + if(ret == -1 && errlen) *errlen = arg.errlen; + + return ret; +} + diff --git a/src/tmx/Asn_J2735/src/2020/der_encoder.c b/src/tmx/Asn_J2735/src/2020/der_encoder.c new file mode 100644 index 000000000..2c6a6f769 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/der_encoder.c @@ -0,0 +1,194 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, + asn_app_consume_bytes_f *cb, void *app_key, int constructed); + +/* + * The DER encoder of any type. + */ +asn_enc_rval_t +der_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, + asn_app_consume_bytes_f *consume_bytes, void *app_key) { + ASN_DEBUG("DER encoder invoked for %s", + type_descriptor->name); + + /* + * Invoke type-specific encoder. + */ + return type_descriptor->op->der_encoder( + type_descriptor, struct_ptr, /* Pointer to the destination structure */ + 0, 0, consume_bytes, app_key); +} + +/* + * Argument type and callback necessary for der_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +/* + * A variant of the der_encode() which encodes the data into the provided buffer + */ +asn_enc_rval_t +der_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg arg; + asn_enc_rval_t ec; + + arg.buffer = buffer; + arg.left = buffer_size; + + ec = type_descriptor->op->der_encoder(type_descriptor, + struct_ptr, /* Pointer to the destination structure */ + 0, 0, encode_to_buffer_cb, &arg); + if(ec.encoded != -1) { + assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); + /* Return the encoded contents size */ + } + return ec; +} + + +/* + * Write out leading TL[v] sequence according to the type definition. + */ +ssize_t +der_write_tags(const asn_TYPE_descriptor_t *sd, size_t struct_length, + int tag_mode, int last_tag_form, + ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */ + asn_app_consume_bytes_f *cb, void *app_key) { +#define ASN1_DER_MAX_TAGS_COUNT 4 + ber_tlv_tag_t + tags_buf_scratch[ASN1_DER_MAX_TAGS_COUNT * sizeof(ber_tlv_tag_t)]; + ssize_t lens[ASN1_DER_MAX_TAGS_COUNT * sizeof(ssize_t)]; + const ber_tlv_tag_t *tags; /* Copy of tags stream */ + int tags_count; /* Number of tags */ + size_t overall_length; + int i; + + ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)", + sd->name, tag_mode, sd->tags_count, + ber_tlv_tag_string(tag), + tag_mode + ?(sd->tags_count+1 + -((tag_mode == -1) && sd->tags_count)) + :sd->tags_count + ); + + if(sd->tags_count + 1 > ASN1_DER_MAX_TAGS_COUNT) { + ASN_DEBUG("System limit %d on tags count", ASN1_DER_MAX_TAGS_COUNT); + return -1; + } + + if(tag_mode) { + /* + * Instead of doing shaman dance like we do in ber_check_tags(), + * allocate a small array on the stack + * and initialize it appropriately. + */ + int stag_offset; + ber_tlv_tag_t *tags_buf = tags_buf_scratch; + tags_count = sd->tags_count + + 1 /* EXPLICIT or IMPLICIT tag is given */ + - ((tag_mode == -1) && sd->tags_count); + /* Copy tags over */ + tags_buf[0] = tag; + stag_offset = -1 + ((tag_mode == -1) && sd->tags_count); + for(i = 1; i < tags_count; i++) + tags_buf[i] = sd->tags[i + stag_offset]; + tags = tags_buf; + } else { + tags = sd->tags; + tags_count = sd->tags_count; + } + + /* No tags to write */ + if(tags_count == 0) + return 0; + + /* + * Array of tags is initialized. + * Now, compute the size of the TLV pairs, from right to left. + */ + overall_length = struct_length; + for(i = tags_count - 1; i >= 0; --i) { + lens[i] = der_write_TL(tags[i], overall_length, 0, 0, 0); + if(lens[i] == -1) return -1; + overall_length += lens[i]; + lens[i] = overall_length - lens[i]; + } + + if(!cb) return overall_length - struct_length; + + ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name, + tags_count); + + /* + * Encode the TL sequence for real. + */ + for(i = 0; i < tags_count; i++) { + ssize_t len; + int _constr; + + /* Check if this tag happens to be constructed */ + _constr = (last_tag_form || i < (tags_count - 1)); + + len = der_write_TL(tags[i], lens[i], cb, app_key, _constr); + if(len == -1) return -1; + } + + return overall_length - struct_length; +} + +static ssize_t +der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, + asn_app_consume_bytes_f *cb, void *app_key, + int constructed) { + uint8_t buf[32]; + size_t size = 0; + int buf_size = cb?sizeof(buf):0; + ssize_t tmp; + + /* Serialize tag (T from TLV) into possibly zero-length buffer */ + tmp = ber_tlv_tag_serialize(tag, buf, buf_size); + if(tmp == -1 || tmp > (ssize_t)sizeof(buf)) return -1; + size += tmp; + + /* Serialize length (L from TLV) into possibly zero-length buffer */ + tmp = der_tlv_length_serialize(len, buf+size, buf_size?buf_size-size:0); + if(tmp == -1) return -1; + size += tmp; + + if(size > sizeof(buf)) + return -1; + + /* + * If callback is specified, invoke it, and check its return value. + */ + if(cb) { + if(constructed) *buf |= 0x20; + if(cb(buf, size, app_key) < 0) + return -1; + } + + return size; +} diff --git a/src/tmx/Asn_J2735/src/2020/jer_encoder.c b/src/tmx/Asn_J2735/src/2020/jer_encoder.c new file mode 100644 index 000000000..4fe5ce3a2 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/jer_encoder.c @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * The JER encoder of any type. May be invoked by the application. + */ +asn_enc_rval_t +jer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + asn_enc_rval_t tmper; + const char *mname; + size_t mlen; + + if(!td || !sptr) goto cb_failed; + + mname = td->xml_tag; + mlen = strlen(mname); + + ASN__CALLBACK3("{\n\"", 3, mname, mlen, "\":", 2); + + int xFlag = 0; + tmper = td->op->jer_encoder(td, sptr, 1, xFlag, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK("}", 1); + // ASN__CALLBACK3("\n", xcan); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +/* + * This is a helper function for jer_fprint, which directs all incoming data + * into the provided file descriptor. + */ +static int +jer__print2fp(const void *buffer, size_t size, void *app_key) { + FILE *stream = (FILE *)app_key; + + if(fwrite(buffer, 1, size, stream) != size) + return -1; + + return 0; +} + +int +jer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { + asn_enc_rval_t er = {0,0,0}; + + if(!stream) stream = stdout; + if(!td || !sptr) + return -1; + + er = jer_encode(td, sptr, jer__print2fp, stream); + if(er.encoded == -1) + return -1; + + return fflush(stream); +} + diff --git a/src/tmx/Asn_J2735/src/2020/oer_decoder.c b/src/tmx/Asn_J2735/src/2020/oer_decoder.c new file mode 100644 index 000000000..070173826 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/oer_decoder.c @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * The OER decoder of any type. + */ +asn_dec_rval_t +oer_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + const void *ptr, size_t size) { + asn_codec_ctx_t s_codec_ctx; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* + * Invoke type-specific decoder. + */ + return type_descriptor->op->oer_decoder(opt_codec_ctx, type_descriptor, 0, + struct_ptr, /* Pointer to the destination structure */ + ptr, size /* Buffer and its size */ + ); +} + +/* + * Open Type is encoded as a length (#8.6) followed by that number of bytes. + * Since we're just skipping, reading the length would be enough. + */ +ssize_t +oer_open_type_skip(const void *bufptr, size_t size) { + size_t len = 0; + return oer_fetch_length(bufptr, size, &len); +} + +/* + * Read the Open Type (X.696 (08/2015), #30). + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + */ +ssize_t +oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *td, + const asn_oer_constraints_t *constraints, void **struct_ptr, + const void *bufptr, size_t size) { + asn_dec_rval_t dr; + size_t container_len = 0; + ssize_t len_len; + enum asn_struct_free_method dispose_method = + (*struct_ptr) ? ASFM_FREE_UNDERLYING_AND_RESET : ASFM_FREE_EVERYTHING; + + /* Get the size of a length determinant */ + len_len = oer_fetch_length(bufptr, size, &container_len); + if(len_len <= 0) { + return len_len; /* Error or more data expected */ + } + + /* + * len_len can't be bigger than size, but size without len_len + * should be bigger or equal to container length + */ + if(size - len_len < container_len) { + /* More data is expected */ + return 0; + } + + dr = td->op->oer_decoder(opt_codec_ctx, td, constraints, struct_ptr, + (const uint8_t *)bufptr + len_len, container_len); + if(dr.code == RC_OK) { + return len_len + container_len; + } else { + /* Even if RC_WMORE, we can't get more data into a closed container. */ + td->op->free_struct(td, *struct_ptr, dispose_method); + *struct_ptr = NULL; + return -1; + } +} + + +asn_dec_rval_t +oer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, void **sptr, + const void *ptr, size_t size) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; + asn_dec_rval_t rval = {RC_OK, 0}; + size_t expected_length = 0; + ssize_t len_len; + + (void)td; + (void)opt_codec_ctx; + (void)constraints; + + if(!st) { + st = (ASN__PRIMITIVE_TYPE_t *)(*sptr = CALLOC( + 1, sizeof(ASN__PRIMITIVE_TYPE_t))); + if(!st) ASN__DECODE_FAILED; + } + + + /* + * X.696 (08/2015) #27.2 + * Encode length determinant as _number of octets_, but only + * if upper bound is not equal to lower bound. + */ + len_len = oer_fetch_length(ptr, size, &expected_length); + if(len_len > 0) { + rval.consumed = len_len; + ptr = (const char *)ptr + len_len; + size -= len_len; + } else if(len_len == 0) { + ASN__DECODE_STARVED; + } else if(len_len < 0) { + ASN__DECODE_FAILED; + } + + if(size < expected_length) { + ASN__DECODE_STARVED; + } else { + uint8_t *buf = MALLOC(expected_length + 1); + if(buf == NULL) { + ASN__DECODE_FAILED; + } else { + memcpy(buf, ptr, expected_length); + buf[expected_length] = '\0'; + } + FREEMEM(st->buf); + st->buf = buf; + st->size = expected_length; + + rval.consumed += expected_length; + return rval; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/oer_encoder.c b/src/tmx/Asn_J2735/src/2020/oer_encoder.c new file mode 100644 index 000000000..a284cc2f3 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/oer_encoder.c @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * The OER encoder of any type. + */ +asn_enc_rval_t +oer_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, + asn_app_consume_bytes_f *consume_bytes, void *app_key) { + ASN_DEBUG("OER encoder invoked for %s", type_descriptor->name); + + /* + * Invoke type-specific encoder. + */ + return type_descriptor->op->oer_encoder( + type_descriptor, 0, + struct_ptr, /* Pointer to the destination structure */ + consume_bytes, app_key); +} + +/* + * Argument type and callback necessary for oer_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int +encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +/* + * A variant of the oer_encode() which encodes the data into the provided buffer + */ +asn_enc_rval_t +oer_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, + const asn_oer_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (maximum) */ +) { + enc_to_buf_arg arg; + asn_enc_rval_t ec; + + arg.buffer = buffer; + arg.left = buffer_size; + + if(type_descriptor->op->oer_encoder == NULL) { + ec.encoded = -1; + ec.failed_type = type_descriptor; + ec.structure_ptr = struct_ptr; + ASN_DEBUG("OER encoder is not defined for %s", + type_descriptor->name); + } else { + ec = type_descriptor->op->oer_encoder( + type_descriptor, constraints, + struct_ptr, /* Pointer to the destination structure */ + encode_to_buffer_cb, &arg); + if(ec.encoded != -1) { + assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); + /* Return the encoded contents size */ + } + } + return ec; +} + +asn_enc_rval_t +oer_encode_primitive(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + ssize_t ret; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s (%" ASN_PRI_SIZE " bytes)", td ? td->name : "", st->size); + + /* + * X.696 (08/2015) #27.2 + */ + ret = oer_serialize_length(st->size, cb, app_key); + if(ret < 0) { + ASN__ENCODE_FAILED; + } + er.encoded += ret; + + er.encoded += st->size; + if(cb(st->buf, st->size, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + ASN__ENCODED_OK(er); + } +} + +static int +oer__count_bytes(const void *buffer, size_t size, void *bytes_ptr) { + size_t *bytes = bytes_ptr; + (void)buffer; + *bytes += size; + return 0; +} + +ssize_t +oer_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_oer_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t serialized_byte_count = 0; + asn_enc_rval_t er = {0,0,0}; + ssize_t len_len; + + er = td->op->oer_encoder(td, constraints, sptr, oer__count_bytes, + &serialized_byte_count); + if(er.encoded < 0) return -1; + assert(serialized_byte_count == (size_t)er.encoded); + + len_len = oer_serialize_length(serialized_byte_count, cb, app_key); + if(len_len == -1) return -1; + + er = td->op->oer_encoder(td, constraints, sptr, cb, app_key); + if(er.encoded < 0) return -1; + assert(serialized_byte_count == (size_t)er.encoded); + + return len_len + er.encoded; +} + diff --git a/src/tmx/Asn_J2735/src/2020/oer_support.c b/src/tmx/Asn_J2735/src/2020/oer_support.c new file mode 100644 index 000000000..b15a3bc93 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/oer_support.c @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +#include + +/* + * Fetch the length determinant (X.696 08/2015, #8.6) into *len_r. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + */ +ssize_t +oer_fetch_length(const void *bufptr, size_t size, size_t *len_r) { + uint8_t first_byte; + size_t len_len; /* Length of the length determinant */ + const uint8_t *b; + const uint8_t *bend; + size_t len; + + if(size == 0) { + *len_r = 0; + return 0; + } + + first_byte = *(const uint8_t *)bufptr; + if((first_byte & 0x80) == 0) { /* Short form */ + *len_r = first_byte; /* 0..127 */ + return 1; + } + + len_len = (first_byte & 0x7f); + if((1 + len_len) > size) { + *len_r = 0; + return 0; + } + + b = (const uint8_t *)bufptr + 1; + bend = b + len_len; + + for(; b < bend && *b == 0; b++) { + /* Skip the leading 0-bytes */ + } + + if((bend - b) > (ssize_t)sizeof(size_t)) { + /* Length is not representable by the native size_t type */ + *len_r = 0; + return -1; + } + + for(len = 0; b < bend; b++) { + len = (len << 8) + *b; + } + + if(len > RSIZE_MAX) { /* A bit of C11 validation */ + *len_r = 0; + return -1; + } + + *len_r = len; + assert(len_len + 1 == (size_t)(bend - (const uint8_t *)bufptr)); + return len_len + 1; +} + + +/* + * Serialize OER length. Returns the number of bytes serialized + * or -1 if a given callback returned with negative result. + */ +ssize_t +oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, + void *app_key) { + uint8_t scratch[1 + sizeof(length)]; + uint8_t *sp = scratch; + int littleEndian = 1; /* Run-time detection */ + const uint8_t *pstart; + const uint8_t *pend; + const uint8_t *p; + int add; + + if(length <= 127) { + uint8_t b = length; + if(cb(&b, 1, app_key) < 0) { + return -1; + } + return 1; + } + + if(*(char *)&littleEndian) { + pstart = (const uint8_t *)&length + sizeof(length) - 1; + pend = (const uint8_t *)&length; + add = -1; + } else { + pstart = (const uint8_t *)&length; + pend = pstart + sizeof(length); + add = 1; + } + + for(p = pstart; p != pend; p += add) { + /* Skip leading zeros. */ + if(*p) break; + } + + for(sp = scratch + 1; ; p += add) { + *sp++ = *p; + if(p == pend) break; + } + assert((sp - scratch) - 1 <= 0x7f); + scratch[0] = 0x80 + ((sp - scratch) - 1); + + if(cb(scratch, sp - scratch, app_key) < 0) { + return -1; + } + + return sp - scratch; +} + diff --git a/src/tmx/Asn_J2735/src/2020/pdu_collection.c b/src/tmx/Asn_J2735/src/2020/pdu_collection.c new file mode 100644 index 000000000..f84f60a4a --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/pdu_collection.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +extern struct asn_TYPE_descriptor_s asn_DEF_AddGrpB_Angle; +extern struct asn_TYPE_descriptor_s asn_DEF_AddGrpB_MsgCount; +extern struct asn_TYPE_descriptor_s asn_DEF_AddGrpB_TimeMark; +extern struct asn_TYPE_descriptor_s asn_DEF_DDate; +extern struct asn_TYPE_descriptor_s asn_DEF_DFullTime; +extern struct asn_TYPE_descriptor_s asn_DEF_DMonthDay; +extern struct asn_TYPE_descriptor_s asn_DEF_DTime; +extern struct asn_TYPE_descriptor_s asn_DEF_DYearMonth; +extern struct asn_TYPE_descriptor_s asn_DEF_VerticalOffset; +extern struct asn_TYPE_descriptor_s asn_DEF_CodeWord; +extern struct asn_TYPE_descriptor_s asn_DEF_Count; +extern struct asn_TYPE_descriptor_s asn_DEF_Duration; +extern struct asn_TYPE_descriptor_s asn_DEF_Location_quality; +extern struct asn_TYPE_descriptor_s asn_DEF_Location_tech; +extern struct asn_TYPE_descriptor_s asn_DEF_MessageBLOB; +extern struct asn_TYPE_descriptor_s asn_DEF_PayloadData; +extern struct asn_TYPE_descriptor_s asn_DEF_SignalReqScheme; +extern struct asn_TYPE_descriptor_s asn_DEF_TransitStatus; +extern struct asn_TYPE_descriptor_s asn_DEF_URL_Link; +extern struct asn_TYPE_descriptor_s asn_DEF_MessageFrame; +extern struct asn_TYPE_descriptor_s asn_DEF_EXTERNAL; + + +struct asn_TYPE_descriptor_s *asn_pdu_collection[] = { + /* From module AddGrpB in J2735-AddGrpB.asn */ + &asn_DEF_AddGrpB_Angle, + &asn_DEF_AddGrpB_MsgCount, + &asn_DEF_AddGrpB_TimeMark, + /* From module Common in J2735-Common.asn */ + &asn_DEF_DDate, + &asn_DEF_DFullTime, + &asn_DEF_DMonthDay, + &asn_DEF_DTime, + &asn_DEF_DYearMonth, + &asn_DEF_VerticalOffset, + &asn_DEF_CodeWord, + &asn_DEF_Count, + &asn_DEF_Duration, + &asn_DEF_Location_quality, + &asn_DEF_Location_tech, + &asn_DEF_MessageBLOB, + &asn_DEF_PayloadData, + &asn_DEF_SignalReqScheme, + &asn_DEF_TransitStatus, + &asn_DEF_URL_Link, + /* From module MessageFrame in J2735-MessageFrame.asn */ + &asn_DEF_MessageFrame, + /* From module ASN1C-UsefulInformationObjectClasses in /usr/local/share/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1 */ + &asn_DEF_EXTERNAL, + 0 +}; + diff --git a/src/tmx/Asn_J2735/src/2020/per_decoder.c b/src/tmx/Asn_J2735/src/2020/per_decoder.c new file mode 100644 index 000000000..42b92cacd --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/per_decoder.c @@ -0,0 +1,5 @@ +#include +#include +#include + +// Absolutely nothing diff --git a/src/tmx/Asn_J2735/src/2020/per_encoder.c b/src/tmx/Asn_J2735/src/2020/per_encoder.c new file mode 100644 index 000000000..01ab70b06 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/per_encoder.c @@ -0,0 +1,35 @@ +#include +#include + +int +ignore_output(const void *data, size_t size, void *app_key) { + (void)data; + (void)size; + (void)app_key; + return 0; +} + +int +encode_dyn_cb(const void *buffer, size_t size, void *key) { + enc_dyn_arg *arg = key; + if(arg->length + size >= arg->allocated) { + size_t new_size = arg->allocated ? arg->allocated : 8; + void *p; + + do { + new_size <<= 2; + } while(arg->length + size >= new_size); + + p = REALLOC(arg->buffer, new_size); + if(!p) { + FREEMEM(arg->buffer); + memset(arg, 0, sizeof(*arg)); + return -1; + } + arg->buffer = p; + arg->allocated = new_size; + } + memcpy(((char *)arg->buffer) + arg->length, buffer, size); + arg->length += size; + return 0; +} diff --git a/src/tmx/Asn_J2735/src/2020/per_opentype.c b/src/tmx/Asn_J2735/src/2020/per_opentype.c new file mode 100644 index 000000000..5620c5bb9 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/per_opentype.c @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include + +/* + * Internal functions. + */ + +asn_dec_rval_t +uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + + (void)ctx; + (void)td; + (void)constraints; + (void)sptr; + + while(per_get_few_bits(pd, 1) >= 0); + + rv.code = RC_OK; + rv.consumed = pd->moved; + + return rv; +} diff --git a/src/tmx/Asn_J2735/src/2020/per_support.c b/src/tmx/Asn_J2735/src/2020/per_support.c new file mode 100644 index 000000000..62d343c74 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/per_support.c @@ -0,0 +1,9 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +// Absolutely nothing diff --git a/src/tmx/Asn_J2735/src/2020/uper_decoder.c b/src/tmx/Asn_J2735/src/2020/uper_decoder.c new file mode 100644 index 000000000..a88e95cfb --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/uper_decoder.c @@ -0,0 +1,96 @@ +#include +#include +#include + +/* + * Decode a "Production of a complete encoding", X.691#10.1. + * The complete encoding contains at least one byte, and is an integral + * multiple of 8 bytes. + */ +asn_dec_rval_t +uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buffer, size_t size) { + asn_dec_rval_t rval; + + rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); + if(rval.consumed) { + /* + * We've always given 8-aligned data, + * so convert bits to integral bytes. + */ + rval.consumed += 7; + rval.consumed >>= 3; + } else if(rval.code == RC_OK) { + if(size) { + if(((const uint8_t *)buffer)[0] == 0) { + rval.consumed = 1; /* 1 byte */ + } else { + ASN_DEBUG("Expecting single zeroed byte"); + rval.code = RC_FAIL; + } + } else { + /* Must contain at least 8 bits. */ + rval.code = RC_WMORE; + } + } + + return rval; +} + +asn_dec_rval_t +uper_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, + size_t size, int skip_bits, int unused_bits) { + asn_codec_ctx_t s_codec_ctx; + asn_dec_rval_t rval; + asn_per_data_t pd; + + if(skip_bits < 0 || skip_bits > 7 + || unused_bits < 0 || unused_bits > 7 + || (unused_bits > 0 && !size)) + ASN__DECODE_FAILED; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* Fill in the position indicator */ + memset(&pd, 0, sizeof(pd)); + pd.buffer = (const uint8_t *)buffer; + pd.nboff = skip_bits; + pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ + if(pd.nboff > pd.nbits) + ASN__DECODE_FAILED; + + /* + * Invoke type-specific decoder. + */ + if(!td->op->uper_decoder) + ASN__DECODE_FAILED; /* PER is not compiled in */ + rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); + if(rval.code == RC_OK) { + /* Return the number of consumed bits */ + rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) + + pd.nboff - skip_bits; + ASN_DEBUG("PER decoding consumed %ld, counted %ld", + (long)rval.consumed, (long)pd.moved); + assert(rval.consumed == pd.moved); + } else { + /* PER codec is not a restartable */ + rval.consumed = 0; + } + return rval; +} diff --git a/src/tmx/Asn_J2735/src/2020/uper_encoder.c b/src/tmx/Asn_J2735/src/2020/uper_encoder.c new file mode 100644 index 000000000..4c1d24a6c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/uper_encoder.c @@ -0,0 +1,127 @@ +#include +#include +#include + +static int _uper_encode_flush_outp(asn_per_outp_t *po); + +asn_enc_rval_t +uper_encode(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_per_outp_t po; + asn_enc_rval_t er = {0,0,0}; + + /* + * Invoke type-specific encoder. + */ + if(!td || !td->op->uper_encoder) + ASN__ENCODE_FAILED; /* PER is not compiled in */ + + po.buffer = po.tmpspace; + po.nboff = 0; + po.nbits = 8 * sizeof(po.tmpspace); + po.output = cb ? cb : ignore_output; + po.op_key = app_key; + po.flushed_bytes = 0; + + er = td->op->uper_encoder(td, constraints, sptr, &po); + if(er.encoded != -1) { + size_t bits_to_flush; + + bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; + + /* Set number of bits encoded to a firm value */ + er.encoded = (po.flushed_bytes << 3) + bits_to_flush; + + if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; + } + + return er; +} + +/* + * Argument type and callback necessary for uper_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +asn_enc_rval_t +uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg key; + + key.buffer = buffer; + key.left = buffer_size; + + if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); + + return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); +} + +ssize_t +uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void **buffer_r) { + asn_enc_rval_t er = {0,0,0}; + enc_dyn_arg key; + + memset(&key, 0, sizeof(key)); + + er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); + switch(er.encoded) { + case -1: + FREEMEM(key.buffer); + return -1; + case 0: + FREEMEM(key.buffer); + key.buffer = MALLOC(1); + if(key.buffer) { + *(char *)key.buffer = '\0'; + *buffer_r = key.buffer; + return 1; + } else { + return -1; + } + default: + *buffer_r = key.buffer; + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + return ((er.encoded + 7) >> 3); + } +} + +/* + * Internally useful functions. + */ + +/* Flush partially filled buffer */ +static int +_uper_encode_flush_outp(asn_per_outp_t *po) { + uint8_t *buf; + + if(po->nboff == 0 && po->buffer == po->tmpspace) + return 0; + + buf = po->buffer + (po->nboff >> 3); + /* Make sure we account for the last, partially filled */ + if(po->nboff & 0x07) { + buf[0] &= 0xff << (8 - (po->nboff & 0x07)); + buf++; + } + + return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); +} diff --git a/src/tmx/Asn_J2735/src/2020/uper_opentype.c b/src/tmx/Asn_J2735/src/2020/uper_opentype.c new file mode 100644 index 000000000..17ee06416 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/uper_opentype.c @@ -0,0 +1,372 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +typedef struct uper_ugot_key { + asn_per_data_t oldpd; /* Old per data source */ + size_t unclaimed; + size_t ot_moved; /* Number of bits moved by OT processing */ + int repeat; +} uper_ugot_key; + +static int uper_ugot_refill(asn_per_data_t *pd); +static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); + +/* + * Encode an "open type field". + * #10.1, #10.2 + */ +int +uper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + void *buf; + void *bptr; + ssize_t size; + + ASN_DEBUG("Open type put %s ...", td->name); + + size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); + if(size <= 0) return -1; + + ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, + size); + + bptr = buf; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE + " to %s and allowing to save %" ASN_PRI_SSIZE, + size, td->name, may_save); + if(may_save < 0) break; + if(per_put_many_bits(po, bptr, may_save * 8)) break; + bptr = (char *)bptr + may_save; + size -= may_save; + if(need_eom && uper_put_length(po, 0, 0)) { + FREEMEM(buf); + return -1; + } + } while(size); + + FREEMEM(buf); + if(size) return -1; + + return 0; +} + +static asn_dec_rval_t +uper_open_type_get_simple(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + ssize_t chunk_bytes; + int repeat; + uint8_t *buf = 0; + size_t bufLen = 0; + size_t bufSize = 0; + asn_per_data_t spd; + size_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s...", td->name); + + do { + chunk_bytes = uper_get_length(pd, -1, 0, &repeat); + if(chunk_bytes < 0) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + if(bufLen + chunk_bytes > bufSize) { + void *ptr; + bufSize = chunk_bytes + (bufSize << 2); + ptr = REALLOC(buf, bufSize); + if(!ptr) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + buf = ptr; + } + if(per_get_many_bits(pd, (buf == NULL)? NULL : buf + bufLen, 0, chunk_bytes << 3)) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + bufLen += chunk_bytes; + } while(repeat); + + ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, + (long)bufLen); + + memset(&spd, 0, sizeof(spd)); + spd.buffer = buf; + spd.nbits = bufLen << 3; + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); + ASN_DEBUG_INDENT_ADD(-4); + + if(rv.code == RC_OK) { + /* Check padding validity */ + padding = spd.nbits - spd.nboff; + if (((padding > 0 && padding < 8) || + /* X.691#10.1.3 */ + (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && + per_get_few_bits(&spd, padding) == 0) { + /* Everything is cool */ + FREEMEM(buf); + return rv; + } + FREEMEM(buf); + if(padding >= 8) { + ASN_DEBUG("Too large padding %d in open type", (int)padding); + ASN__DECODE_FAILED; + } else { + ASN_DEBUG("No padding"); + } + } else { + FREEMEM(buf); + /* rv.code could be RC_WMORE, nonsense in this context */ + rv.code = RC_FAIL; /* No one would give us more */ + } + + return rv; +} + +static asn_dec_rval_t CC_NOTUSED +uper_open_type_get_complex(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + uper_ugot_key arg; + asn_dec_rval_t rv; + ssize_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s from %s", td->name, + asn_bit_data_string(pd)); + arg.oldpd = *pd; + arg.unclaimed = 0; + arg.ot_moved = 0; + arg.repeat = 1; + pd->refill = uper_ugot_refill; + pd->refill_key = &arg; + pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ + pd->moved = 0; /* This now counts the open type size in bits */ + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); + ASN_DEBUG_INDENT_ADD(-4); + +#define UPDRESTOREPD do { \ + /* buffer and nboff are valid, preserve them. */ \ + pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ + pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ + pd->refill = arg.oldpd.refill; \ + pd->refill_key = arg.oldpd.refill_key; \ + } while(0) + + if(rv.code != RC_OK) { + UPDRESTOREPD; + return rv; + } + + ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, + asn_bit_data_string(pd), + asn_bit_data_string(&arg.oldpd), + (int)arg.unclaimed, (int)arg.repeat); + + padding = pd->moved % 8; + if(padding) { + int32_t pvalue; + if(padding > 7) { + ASN_DEBUG("Too large padding %d in open type", + (int)padding); + rv.code = RC_FAIL; + UPDRESTOREPD; + return rv; + } + padding = 8 - padding; + ASN_DEBUG("Getting padding of %d bits", (int)padding); + pvalue = per_get_few_bits(pd, padding); + switch(pvalue) { + case -1: + ASN_DEBUG("Padding skip failed"); + UPDRESTOREPD; + ASN__DECODE_STARVED; + case 0: break; + default: + ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", + (int)padding, (int)pvalue); + UPDRESTOREPD; + ASN__DECODE_FAILED; + } + } + if(pd->nboff != pd->nbits) { + ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, + asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); + if(1) { + UPDRESTOREPD; + ASN__DECODE_FAILED; + } else { + arg.unclaimed += pd->nbits - pd->nboff; + } + } + + /* Adjust pd back so it points to original data */ + UPDRESTOREPD; + + /* Skip data not consumed by the decoder */ + if(arg.unclaimed) { + ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); + switch(per_skip_bits(pd, arg.unclaimed)) { + case -1: + ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); + ASN__DECODE_STARVED; + case 0: + ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); + break; + default: + /* Padding must be blank */ + ASN_DEBUG("Non-blank unconsumed padding"); + ASN__DECODE_FAILED; + } + arg.unclaimed = 0; + } + + if(arg.repeat) { + ASN_DEBUG("Not consumed the whole thing"); + rv.code = RC_FAIL; + return rv; + } + + return rv; +} + + +asn_dec_rval_t +uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); +} + +int +uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { + asn_TYPE_descriptor_t s_td; + asn_TYPE_operation_t s_op; + asn_dec_rval_t rv; + + s_td.name = ""; + s_td.op = &s_op; + s_op.uper_decoder = uper_sot_suck; + + rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); + if(rv.code != RC_OK) + return -1; + else + return 0; +} + +/* + * Internal functions. + */ + +static int +uper_ugot_refill(asn_per_data_t *pd) { + uper_ugot_key *arg = pd->refill_key; + ssize_t next_chunk_bytes, next_chunk_bits; + ssize_t avail; + + asn_per_data_t *oldpd = &arg->oldpd; + + ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", + (long)pd->moved, (long)oldpd->moved); + + /* Advance our position to where pd is */ + oldpd->buffer = pd->buffer; + oldpd->nboff = pd->nboff; + oldpd->nbits -= pd->moved - arg->ot_moved; + oldpd->moved += pd->moved - arg->ot_moved; + arg->ot_moved = pd->moved; + + if(arg->unclaimed) { + /* Refill the container */ + if(per_get_few_bits(oldpd, 1)) + return -1; + if(oldpd->nboff == 0) { + assert(0); + return -1; + } + pd->buffer = oldpd->buffer; + pd->nboff = oldpd->nboff - 1; + pd->nbits = oldpd->nbits; + ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", + (long)pd->moved); + return 0; + } + + if(!arg->repeat) { + ASN_DEBUG("Want more but refill doesn't have it"); + return -1; + } + + next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); + ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", + (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); + if(next_chunk_bytes < 0) return -1; + if(next_chunk_bytes == 0) { + pd->refill = 0; /* No more refills, naturally */ + assert(!arg->repeat); /* Implementation guarantee */ + } + next_chunk_bits = next_chunk_bytes << 3; + avail = oldpd->nbits - oldpd->nboff; + if(avail >= next_chunk_bits) { + pd->nbits = oldpd->nboff + next_chunk_bits; + arg->unclaimed = 0; + ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", + (long)next_chunk_bits, (long)oldpd->moved, + (long)oldpd->nboff, (long)oldpd->nbits, + (long)(oldpd->nbits - oldpd->nboff)); + } else { + pd->nbits = oldpd->nbits; + arg->unclaimed = next_chunk_bits - avail; + ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", + (long)avail, (long)next_chunk_bits, + (long)arg->unclaimed); + } + pd->buffer = oldpd->buffer; + pd->nboff = oldpd->nboff; + ASN_DEBUG("Refilled pd%s old%s", + asn_bit_data_string(pd), asn_bit_data_string(oldpd)); + return 0; +} + +static int +per_skip_bits(asn_per_data_t *pd, int skip_nbits) { + int hasNonZeroBits = 0; + while(skip_nbits > 0) { + int skip; + + /* per_get_few_bits() is more efficient when nbits <= 24 */ + if(skip_nbits < 24) + skip = skip_nbits; + else + skip = 24; + skip_nbits -= skip; + + switch(per_get_few_bits(pd, skip)) { + case -1: return -1; /* Starving */ + case 0: continue; /* Skipped empty space */ + default: hasNonZeroBits = 1; continue; + } + } + return hasNonZeroBits; +} diff --git a/src/tmx/Asn_J2735/src/2020/uper_support.c b/src/tmx/Asn_J2735/src/2020/uper_support.c new file mode 100644 index 000000000..ce8adc5e7 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/uper_support.c @@ -0,0 +1,311 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * X.691-201508 #10.9 General rules for encoding a length determinant. + * Get the optionally constrained length "n" from the stream. + */ +ssize_t +uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, + int *repeat) { + ssize_t value; + + *repeat = 0; + + /* #11.9.4.1 Encoding if constrained (according to effective bits) */ + if(ebits >= 0 && ebits <= 16) { + value = per_get_few_bits(pd, ebits); + if(value >= 0) value += lower_bound; + return value; + } + + value = per_get_few_bits(pd, 8); + if((value & 0x80) == 0) { /* #11.9.3.6 */ + return (value & 0x7F); + } else if((value & 0x40) == 0) { /* #11.9.3.7 */ + /* bit 8 ... set to 1 and bit 7 ... set to zero */ + value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); + return value; /* potential -1 from per_get_few_bits passes through. */ + } else if(value < 0) { + ASN_DEBUG("END of stream reached for PER"); + return -1; + } + value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ + if(value < 1 || value > 4) { + return -1; /* Prohibited by #11.9.3.8 */ + } + *repeat = 1; + return (16384 * value); +} + +/* + * Get the normally small length "n". + * This procedure used to decode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +ssize_t +uper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%d", (int)length); + return length; + } else { + int repeat; + length = uper_get_length(pd, -1, 0, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +/* + * Get the normally small non-negative whole number. + * X.691, #10.6 + */ +ssize_t +uper_get_nsnnwn(asn_per_data_t *pd) { + ssize_t value; + + value = per_get_few_bits(pd, 7); + if(value & 64) { /* implicit (value < 0) */ + value &= 63; + value <<= 2; + value |= per_get_few_bits(pd, 2); + if(value & 128) /* implicit (value < 0) */ + return -1; + if(value == 0) + return 0; + if(value >= 3) + return -1; + value = per_get_few_bits(pd, 8 * value); + return value; + } + + return value; +} + +/* + * X.691-11/2008, #11.6 + * Encoding of a normally small non-negative whole number + */ +int +uper_put_nsnnwn(asn_per_outp_t *po, int n) { + int bytes; + + if(n <= 63) { + if(n < 0) return -1; + return per_put_few_bits(po, n, 7); + } + if(n < 256) + bytes = 1; + else if(n < 65536) + bytes = 2; + else if(n < 256 * 65536) + bytes = 3; + else + return -1; /* This is not a "normally small" value */ + if(per_put_few_bits(po, bytes, 8)) + return -1; + + return per_put_few_bits(po, n, 8 * bytes); +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, uintmax_t *out_value, int nbits) { + uintmax_t lhalf; /* Lower half of the number*/ + intmax_t half; + + if(nbits <= 31) { + half = per_get_few_bits(pd, nbits); + if(half < 0) return -1; + *out_value = half; + return 0; + } + + if((size_t)nbits > 8 * sizeof(*out_value)) + return -1; /* RANGE */ + + half = per_get_few_bits(pd, 31); + if(half < 0) return -1; + + if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) + return -1; + + *out_value = ((uintmax_t)half << (nbits - 31)) | lhalf; + return 0; +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int +uper_put_constrained_whole_number_u(asn_per_outp_t *po, uintmax_t v, + int nbits) { + if(nbits <= 31) { + return per_put_few_bits(po, v, nbits); + } else { + /* Put higher portion first, followed by lower 31-bit */ + if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) + return -1; + return per_put_few_bits(po, v, 31); + } +} + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "n" (or part of it) into the stream. + */ +ssize_t +uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { + int dummy = 0; + if(!need_eom) need_eom = &dummy; + + if(length <= 127) { /* #11.9.3.6 */ + *need_eom = 0; + return per_put_few_bits(po, length, 8) + ? -1 : (ssize_t)length; + } else if(length < 16384) { /* #10.9.3.7 */ + *need_eom = 0; + return per_put_few_bits(po, length|0x8000, 16) + ? -1 : (ssize_t)length; + } + + *need_eom = 0 == (length & 16383); + length >>= 14; + if(length > 4) { + *need_eom = 0; + length = 4; + } + + return per_put_few_bits(po, 0xC0 | length, 8) + ? -1 : (ssize_t)(length << 14); + +} + + +/* + * Put the normally small length "n" into the stream. + * This procedure used to encode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +int +uper_put_nslength(asn_per_outp_t *po, size_t length) { + if(length <= 64) { + /* #11.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length - 1, 7) ? -1 : 0; + } else { + int need_eom = 0; + if(uper_put_length(po, length, &need_eom) != (ssize_t)length + || need_eom) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +static int +per__imax_range(intmax_t lb, intmax_t ub, uintmax_t *range_r) { + uintmax_t bounds_range; + if((ub < 0) == (lb < 0)) { + bounds_range = ub - lb; + } else if(lb < 0) { + assert(ub >= 0); + bounds_range = 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); + } else { + assert(!"Unreachable"); + return -1; + } + *range_r = bounds_range; + return 0; +} + +int +per_imax_range_rebase(intmax_t v, intmax_t lb, intmax_t ub, uintmax_t *output) { + uintmax_t range; + + assert(lb <= ub); + + if(v < lb || v > ub || per__imax_range(lb, ub, &range) < 0) { + /* Range error. */ + return -1; + } + + /* + * Fundamentally what we're doing is returning (v-lb). + * However, this triggers undefined behavior when the word width + * of signed (v) is the same as the size of unsigned (*output). + * In practice, it triggers the UndefinedSanitizer. Therefore we shall + * compute the ranges accurately to avoid C's undefined behavior. + */ + if((v < 0) == (lb < 0)) { + *output = v-lb; + return 0; + } else if(v < 0) { + uintmax_t rebased = 1 + (uintmax_t)-(v+1) + (uintmax_t)lb; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else if(lb < 0) { + uintmax_t rebased = 1 + (uintmax_t)-(lb+1) + (uintmax_t)v; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else { + assert(!"Unreachable"); + return -1; + } +} + +int +per_long_range_rebase(long v, intmax_t lb, intmax_t ub, unsigned long *output) { + uintmax_t tmp = *output; + int rc = per_imax_range_rebase((intmax_t)v, lb, ub, &tmp); + *output = tmp; + return rc; +} + +int +per_imax_range_unrebase(uintmax_t inp, intmax_t lb, intmax_t ub, intmax_t *outp) { + uintmax_t range; + + if(per__imax_range(lb, ub, &range) != 0) { + return -1; + } + + if(inp > range) { + /* + * We can encode something in the given number of bits that technically + * exceeds the range. This is an avenue for security errors, + * so we don't allow that. + */ + return -1; + } + + if(inp <= INTMAX_MAX) { + *outp = (intmax_t)inp + lb; + } else { + *outp = (lb + INTMAX_MAX + 1) + (intmax_t)((inp - INTMAX_MAX) - 1); + } + + return 0; +} + +int +per_long_range_unrebase(unsigned long inp, intmax_t lb, intmax_t ub, long *outp) { + intmax_t tmp = *outp; + int rc = per_imax_range_unrebase((uintmax_t)inp, lb, ub, &tmp); + *outp = tmp; + return rc; +} diff --git a/src/tmx/Asn_J2735/src/2020/xer_decoder.c b/src/tmx/Asn_J2735/src/2020/xer_decoder.c new file mode 100644 index 000000000..2a14557a6 --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/xer_decoder.c @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* XER/XML parsing support */ + + +/* + * Decode the XER encoding of a given type. + */ +asn_dec_rval_t +xer_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *buffer, size_t size) { + asn_codec_ctx_t s_codec_ctx; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* + * Invoke type-specific decoder. + */ + return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); +} + + + +struct xer__cb_arg { + pxml_chunk_type_e chunk_type; + size_t chunk_size; + const void *chunk_buf; + int callback_not_invoked; +}; + +static int +xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { + struct xer__cb_arg *arg = (struct xer__cb_arg *)key; + arg->chunk_type = type; + arg->chunk_size = _chunk_size; + arg->chunk_buf = _chunk_data; + arg->callback_not_invoked = 0; + return -1; /* Terminate the XML parsing */ +} + +/* + * Fetch the next token from the XER/XML stream. + */ +ssize_t +xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { + struct xer__cb_arg arg; + int new_stateContext = *stateContext; + ssize_t ret; + + arg.callback_not_invoked = 1; + ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); + if(ret < 0) return -1; + if(arg.callback_not_invoked) { + assert(ret == 0); /* No data was consumed */ + *ch_type = PXER_WMORE; + return 0; /* Try again with more data */ + } else { + assert(arg.chunk_size); + assert(arg.chunk_buf == buffer); + } + + /* + * Translate the XML chunk types into more convenient ones. + */ + switch(arg.chunk_type) { + case PXML_TEXT: + *ch_type = PXER_TEXT; + break; + case PXML_TAG: + *ch_type = PXER_WMORE; + return 0; /* Want more */ + case PXML_TAG_END: + *ch_type = PXER_TAG; + break; + case PXML_COMMENT: + case PXML_COMMENT_END: + *ch_type = PXER_COMMENT; + break; + } + + *stateContext = new_stateContext; + return arg.chunk_size; +} + +#define CSLASH 0x2f /* '/' */ +#define LANGLE 0x3c /* '<' */ +#define RANGLE 0x3e /* '>' */ + +xer_check_tag_e +xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { + const char *buf = (const char *)buf_ptr; + const char *end; + xer_check_tag_e ct = XCT_OPENING; + + if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { + if(size >= 2) + ASN_DEBUG("Broken XML tag: \"%c...%c\"", + buf[0], buf[size - 1]); + return XCT_BROKEN; + } + + /* + * Determine the tag class. + */ + if(buf[1] == CSLASH) { + buf += 2; /* advance past "" */ + ct = XCT_CLOSING; + if(size > 0 && buf[size-1] == CSLASH) + return XCT_BROKEN; /* */ + } else { + buf++; /* advance past "<" */ + size -= 2; /* strip "<" and ">" */ + if(size > 0 && buf[size-1] == CSLASH) { + ct = XCT_BOTH; + size--; /* One more, for "/" */ + } + } + + /* Sometimes we don't care about the tag */ + if(!need_tag || !*need_tag) + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + + /* + * Determine the tag name. + */ + for(end = buf + size; buf < end; buf++, need_tag++) { + int b = *buf, n = *need_tag; + if(b != n) { + if(n == 0) { + switch(b) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* "": whitespace is normal */ + return ct; + } + } + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + } + if(b == 0) + return XCT_BROKEN; /* Embedded 0 in buf?! */ + } + if(*need_tag) + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + + return ct; +} + + +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = (num_bytes); \ + buf_ptr = ((const char *)buf_ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + if(rval.code != RC_OK) \ + ASN_DEBUG("Failed with %d", rval.code); \ + return rval; \ + } while(0) + +#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ + ssize_t converted_size = body_receiver \ + (struct_key, chunk_buf, chunk_size, \ + (size_t)chunk_size < size); \ + if(converted_size == -1) RETURN(RC_FAIL); \ + if(converted_size == 0 \ + && size == (size_t)chunk_size) \ + RETURN(RC_WMORE); \ + chunk_size = converted_size; \ + } while(0) +#define XER_GOT_EMPTY() do { \ + if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ + RETURN(RC_FAIL); \ + } while(0) + +/* + * Generalized function for decoding the primitive values. + */ +asn_dec_rval_t +xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, + asn_struct_ctx_t *ctx, /* Type decoder context */ + void *struct_key, + const char *xml_tag, /* Expected XML tag */ + const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder) + (void *struct_key, const void *chunk_buf, size_t chunk_size), + ssize_t (*body_receiver) + (void *struct_key, const void *chunk_buf, size_t chunk_size, + int have_more) + ) { + + asn_dec_rval_t rval; + ssize_t consumed_myself = 0; + + (void)opt_codec_ctx; + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + */ + if(ctx->phase > 1) RETURN(RC_FAIL); + for(;;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, buf_ptr, size, + &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TEXT: + if(ctx->phase == 0) { + /* + * We have to ignore whitespace here, + * but in order to be forward compatible + * with EXTENDED-XER (EMBED-VALUES, #25) + * any text is just ignored here. + */ + } else { + XER_GOT_BODY(buf_ptr, ch_size, size); + } + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + assert(ch_type == PXER_TAG && size); + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + /* + * Phase 0: + * Expecting the opening tag + * for the type being processed. + * Phase 1: + * Waiting for the closing XML tag. + */ + switch(tcv) { + case XCT_BOTH: + if(ctx->phase) break; + /* Finished decoding of an empty element */ + XER_GOT_EMPTY(); + ADVANCE(ch_size); + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + case XCT_OPENING: + if(ctx->phase) break; + ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + case XCT_CLOSING: + if(!ctx->phase) break; + ADVANCE(ch_size); + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + case XCT_UNKNOWN_BO: + /* + * Certain tags in the body may be expected. + */ + if(opt_unexpected_tag_decoder + && opt_unexpected_tag_decoder(struct_key, + buf_ptr, ch_size) >= 0) { + /* Tag's processed fine */ + ADVANCE(ch_size); + if(!ctx->phase) { + /* We are not expecting + * the closing tag anymore. */ + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + } + continue; + } + /* Fall through */ + default: + break; /* Unexpected tag */ + } + + ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); + break; /* Dark and mysterious things have just happened */ + } + + RETURN(RC_FAIL); +} + + +size_t +xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { + const char *p = (const char *)chunk_buf; + const char *pend = (p == NULL)? NULL : p + chunk_size; + + for(; p < pend; p++) { + switch(*p) { + /* X.693, #8.1.4 + * HORISONTAL TAB (9) + * LINE FEED (10) + * CARRIAGE RETURN (13) + * SPACE (32) + */ + case 0x09: case 0x0a: case 0x0d: case 0x20: + continue; + default: + break; + } + break; + } + return (p - (const char *)chunk_buf); +} + +/* + * This is a vastly simplified, non-validating XML tree skipper. + */ +int +xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { + assert(*depth > 0); + switch(tcv) { + case XCT_BOTH: + case XCT_UNKNOWN_BO: + /* These negate each other. */ + return 0; + case XCT_OPENING: + case XCT_UNKNOWN_OP: + ++(*depth); + return 0; + case XCT_CLOSING: + case XCT_UNKNOWN_CL: + if(--(*depth) == 0) + return (tcv == XCT_CLOSING) ? 2 : 1; + return 0; + default: + return -1; + } +} diff --git a/src/tmx/Asn_J2735/src/2020/xer_encoder.c b/src/tmx/Asn_J2735/src/2020/xer_encoder.c new file mode 100644 index 000000000..4177ede5c --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/xer_encoder.c @@ -0,0 +1,237 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * The XER encoder of any type. May be invoked by the application. + */ +asn_enc_rval_t +xer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, + enum xer_encoder_flags_e xer_flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + asn_enc_rval_t tmper; + const char *mname; + size_t mlen; + int xcan = (xer_flags & XER_F_CANONICAL) ? 1 : 2; + + if(!td || !sptr) goto cb_failed; + + mname = td->xml_tag; + mlen = strlen(mname); + + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + tmper = td->op->xer_encoder(td, sptr, 1, xer_flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("\n", xcan); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +/* + * This is a helper function for xer_fprint, which directs all incoming data + * into the provided file descriptor. + */ +static int +xer__print2fp(const void *buffer, size_t size, void *app_key) { + FILE *stream = (FILE *)app_key; + + if(fwrite(buffer, 1, size, stream) != size) + return -1; + + return 0; +} + +int +xer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { + asn_enc_rval_t er = {0,0,0}; + + if(!stream) stream = stdout; + if(!td || !sptr) + return -1; + + er = xer_encode(td, sptr, XER_F_BASIC, xer__print2fp, stream); + if(er.encoded == -1) + return -1; + + return fflush(stream); +} + +struct xer_buffer { + char *buffer; + size_t buffer_size; + size_t allocated_size; +}; + +static int +xer__buffer_append(const void *buffer, size_t size, void *app_key) { + struct xer_buffer *xb = app_key; + + while(xb->buffer_size + size + 1 > xb->allocated_size) { + size_t new_size = 2 * (xb->allocated_size ? xb->allocated_size : 64); + char *new_buf = MALLOC(new_size); + if(!new_buf) return -1; + if (xb->buffer) { + memcpy(new_buf, xb->buffer, xb->buffer_size); + } + FREEMEM(xb->buffer); + xb->buffer = new_buf; + xb->allocated_size = new_size; + } + + memcpy(xb->buffer + xb->buffer_size, buffer, size); + xb->buffer_size += size; + xb->buffer[xb->buffer_size] = '\0'; + return 0; +} + +enum xer_equivalence_e +xer_equivalent(const struct asn_TYPE_descriptor_s *td, const void *struct1, + const void *struct2, FILE *opt_debug_stream) { + struct xer_buffer xb1 = {0, 0, 0}; + struct xer_buffer xb2 = {0, 0, 0}; + asn_enc_rval_t e1, e2; + asn_dec_rval_t rval; + void *sptr = NULL; + + if(!td || !struct1 || !struct2) { + if(opt_debug_stream) { + if(!td) fprintf(opt_debug_stream, "Type descriptor missing\n"); + if(!struct1) fprintf(opt_debug_stream, "Structure 1 missing\n"); + if(!struct2) fprintf(opt_debug_stream, "Structure 2 missing\n"); + } + return XEQ_FAILURE; + } + + e1 = xer_encode(td, struct1, XER_F_BASIC, xer__buffer_append, &xb1); + if(e1.encoded == -1) { + if(opt_debug_stream) { + fprintf(stderr, "XER Encoding of %s failed\n", td->name); + } + FREEMEM(xb1.buffer); + return XEQ_ENCODE1_FAILED; + } + + e2 = xer_encode(td, struct2, XER_F_BASIC, xer__buffer_append, &xb2); + if(e2.encoded == -1) { + if(opt_debug_stream) { + fprintf(stderr, "XER Encoding of %s failed\n", td->name); + } + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ENCODE1_FAILED; + } + + if(xb1.buffer_size != xb2.buffer_size + || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Structures XER-encoded into different byte streams:\n=== " + "Structure 1 ===\n%s\n=== Structure 2 ===\n%s\n", + xb1.buffer, xb2.buffer); + } + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_DIFFERENT; + } else { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Both structures encoded into the same XER byte stream " + "of size %" ASN_PRI_SIZE ":\n%s", + xb1.buffer_size, xb1.buffer); + } + } + + rval = xer_decode(NULL, td, (void **)&sptr, xb1.buffer, + xb1.buffer_size); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Structure %s XER decode unexpectedly requires " + "more data:\n%s\n", + td->name, xb1.buffer); + } + /* Fall through */ + case RC_FAIL: + default: + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Structure %s XER decoding resulted in failure.\n", + td->name); + } + ASN_STRUCT_FREE(*td, sptr); + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_DECODE_FAILED; + } + + if(rval.consumed != xb1.buffer_size + && ((rval.consumed > xb1.buffer_size) + || xer_whitespace_span(xb1.buffer + rval.consumed, + xb1.buffer_size - rval.consumed) + != (xb1.buffer_size - rval.consumed))) { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Round-trip decode of %s required less bytes (%" ASN_PRI_SIZE ") than " + "encoded (%" ASN_PRI_SIZE ")\n", + td->name, rval.consumed, xb1.buffer_size); + } + ASN_STRUCT_FREE(*td, sptr); + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ROUND_TRIP_FAILED; + } + + /* + * Reuse xb2 to encode newly decoded structure. + */ + FREEMEM(xb2.buffer); + memset(&xb2, 0, sizeof(xb2)); + + e2 = xer_encode(td, sptr, XER_F_BASIC, xer__buffer_append, &xb2); + if(e2.encoded == -1) { + if(opt_debug_stream) { + fprintf(stderr, "XER Encoding of round-trip decode of %s failed\n", + td->name); + } + ASN_STRUCT_FREE(*td, sptr); + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ROUND_TRIP_FAILED; + } + + ASN_STRUCT_FREE(*td, sptr); + sptr = 0; + + if(xb1.buffer_size != xb2.buffer_size + || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "XER Encoding of round-trip decode of %s resulted in " + "different byte stream:\n" + "=== Original ===\n%s\n" + "=== Round-tripped ===\n%s\n", + xb1.buffer, xb2.buffer, td->name); + } + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ROUND_TRIP_FAILED; + } + + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_SUCCESS; +} + diff --git a/src/tmx/Asn_J2735/src/2020/xer_support.c b/src/tmx/Asn_J2735/src/2020/xer_support.c new file mode 100644 index 000000000..36b4bfbfc --- /dev/null +++ b/src/tmx/Asn_J2735/src/2020/xer_support.c @@ -0,0 +1,227 @@ +/* + * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. + * Copyright (c) 2003, 2004, 2005 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* Parser states */ +typedef enum { + ST_TEXT, + ST_TAG_START, + ST_TAG_BODY, + ST_TAG_QUOTE_WAIT, + ST_TAG_QUOTED_STRING, + ST_TAG_UNQUOTED_STRING, + ST_COMMENT_WAIT_DASH1, /* ""[0] */ + ST_COMMENT_CLO_RT /* "-->"[1] */ +} pstate_e; + +static const int +_charclass[256] = { + 0,0,0,0,0,0,0,0, 0,1,1,0,1,1,0,0, + 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, + 2,2,2,2,2,2,2,2, 2,2,0,0,0,0,0,0, /* 01234567 89 */ + 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* ABCDEFG HIJKLMNO */ + 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0, /* PQRSTUVW XYZ */ + 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* abcdefg hijklmno */ + 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0 /* pqrstuvw xyz */ +}; +#define WHITESPACE(c) (_charclass[(unsigned char)(c)] == 1) +#define ALNUM(c) (_charclass[(unsigned char)(c)] >= 2) +#define ALPHA(c) (_charclass[(unsigned char)(c)] == 3) + +/* Aliases for characters, ASCII/UTF-8 */ +#define EXCLAM 0x21 /* '!' */ +#define CQUOTE 0x22 /* '"' */ +#define CDASH 0x2d /* '-' */ +#define CSLASH 0x2f /* '/' */ +#define LANGLE 0x3c /* '<' */ +#define CEQUAL 0x3d /* '=' */ +#define RANGLE 0x3e /* '>' */ +#define CQUEST 0x3f /* '?' */ + +/* Invoke token callback */ +#define TOKEN_CB_CALL(type, _ns, _current_too, _final) do { \ + int _ret; \ + pstate_e ns = _ns; \ + ssize_t _sz = (p - chunk_start) + _current_too; \ + if (!_sz) { \ + /* Shortcut */ \ + state = _ns; \ + break; \ + } \ + _ret = cb(type, chunk_start, _sz, key); \ + if(_ret < _sz) { \ + if(_current_too && _ret == -1) \ + state = ns; \ + goto finish; \ + } \ + chunk_start = p + _current_too; \ + state = ns; \ + } while(0) + +#define TOKEN_CB(_type, _ns, _current_too) \ + TOKEN_CB_CALL(_type, _ns, _current_too, 0) + +#define PXML_TAG_FINAL_CHUNK_TYPE PXML_TAG_END +#define PXML_COMMENT_FINAL_CHUNK_TYPE PXML_COMMENT_END + +#define TOKEN_CB_FINAL(_type, _ns, _current_too) \ + TOKEN_CB_CALL( _type ## _FINAL_CHUNK_TYPE , _ns, _current_too, 1) + +/* + * Parser itself + */ +ssize_t pxml_parse(int *stateContext, const void *xmlbuf, size_t size, pxml_callback_f *cb, void *key) { + pstate_e state = (pstate_e)*stateContext; + const char *chunk_start = (const char *)xmlbuf; + const char *p = chunk_start; + const char *end = p + size; + + for(; p < end; p++) { + int C = *(const unsigned char *)p; + switch(state) { + case ST_TEXT: + /* + * Initial state: we're in the middle of some text, + * or just have started. + */ + if (C == LANGLE) + /* We're now in the tag, probably */ + TOKEN_CB(PXML_TEXT, ST_TAG_START, 0); + break; + case ST_TAG_START: + if (ALPHA(C) || (C == CSLASH)) + state = ST_TAG_BODY; + else if (C == EXCLAM) + state = ST_COMMENT_WAIT_DASH1; + else + /* + * Not characters and not whitespace. + * Must be something like "3 < 4". + */ + TOKEN_CB(PXML_TEXT, ST_TEXT, 1);/* Flush as data */ + break; + case ST_TAG_BODY: + switch(C) { + case RANGLE: + /* End of the tag */ + TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); + break; + case LANGLE: + /* + * The previous tag wasn't completed, but still + * recognized as valid. (Mozilla-compatible) + */ + TOKEN_CB_FINAL(PXML_TAG, ST_TAG_START, 0); + break; + case CEQUAL: + state = ST_TAG_QUOTE_WAIT; + break; + } + break; + case ST_TAG_QUOTE_WAIT: + /* + * State after the equal sign ("=") in the tag. + */ + switch(C) { + case CQUOTE: + state = ST_TAG_QUOTED_STRING; + break; + case RANGLE: + /* End of the tag */ + TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); + break; + default: + if(!WHITESPACE(C)) + /* Unquoted string value */ + state = ST_TAG_UNQUOTED_STRING; + } + break; + case ST_TAG_QUOTED_STRING: + /* + * Tag attribute's string value in quotes. + */ + if(C == CQUOTE) { + /* Return back to the tag state */ + state = ST_TAG_BODY; + } + break; + case ST_TAG_UNQUOTED_STRING: + if(C == RANGLE) { + /* End of the tag */ + TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); + } else if(WHITESPACE(C)) { + /* Return back to the tag state */ + state = ST_TAG_BODY; + } + break; + case ST_COMMENT_WAIT_DASH1: + if(C == CDASH) { + state = ST_COMMENT_WAIT_DASH2; + } else { + /* Some ordinary tag. */ + state = ST_TAG_BODY; + } + break; + case ST_COMMENT_WAIT_DASH2: + if(C == CDASH) { + /* Seen "<--" */ + state = ST_COMMENT; + } else { + /* Some ordinary tag */ + state = ST_TAG_BODY; + } + break; + case ST_COMMENT: + if(C == CDASH) { + state = ST_COMMENT_CLO_DASH2; + } + break; + case ST_COMMENT_CLO_DASH2: + if(C == CDASH) { + state = ST_COMMENT_CLO_RT; + } else { + /* This is not an end of a comment */ + state = ST_COMMENT; + } + break; + case ST_COMMENT_CLO_RT: + if(C == RANGLE) { + TOKEN_CB_FINAL(PXML_COMMENT, ST_TEXT, 1); + } else if(C == CDASH) { + /* Maintain current state, still waiting for '>' */ + } else { + state = ST_COMMENT; + } + break; + } /* switch(*ptr) */ + } /* for() */ + + /* + * Flush the partially processed chunk, state permitting. + */ + if(p - chunk_start) { + switch (state) { + case ST_COMMENT: + TOKEN_CB(PXML_COMMENT, state, 0); + break; + case ST_TEXT: + TOKEN_CB(PXML_TEXT, state, 0); + break; + default: break; /* a no-op */ + } + } + +finish: + *stateContext = (int)state; + return chunk_start - (const char *)xmlbuf; +} +